#3
by みけCAT » 7年前
そうめん さんが書きました:変数xとy(プレイヤーの座標)の場所と変数aとb(爆弾の座標)があるとしてボタンを押したときにx!=aのようにして爆弾を離して操作キャラだけを移動させる方法とボタンを離した後もそこに爆弾を表示する方法
「x!=aのようにして」という条件は満たしていないと思いますが、例えばこんな感じで普通にプログラムを書いて実行すればできるでしょう。
コード:
#include <DxLib.h>
int key[256];
int updateKey(void) {
char rawKey[256];
if (GetHitKeyStateAll(rawKey) != 0) return 0;
for (int i = 0; i < 256; i++) key[i] = rawKey[i] ? key[i] + 1 : 0;
return 1;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1;
SetDrawScreen(DX_SCREEN_BACK);
int x = 100, y = 100;
int a = 0, b = 0;
int bomb_alive = 0;
while (ProcessMessage() == 0 && ClearDrawScreen() == 0 && updateKey()) {
// 操作キャラの移動
if (key[KEY_INPUT_LEFT] && x > 10) x -= 5;
if (key[KEY_INPUT_RIGHT] && x < 530) x += 5;
if (key[KEY_INPUT_UP] && y > 10) y -= 5;
if (key[KEY_INPUT_DOWN] && y < 440) y += 5;
if (key[KEY_INPUT_Z] == 1) {
// 操作キャラと同じ座標に爆弾を出す
a = x;
b = y;
bomb_alive = 1;
}
// 爆弾の描画
if (bomb_alive) {
DrawString(a, b, "爆弾の画像", GetColor(255, 128, 128));
}
// 操作キャラの描画
DrawString(x, y, "操作キャラ", GetColor(255, 255, 255));
ScreenFlip();
}
DxLib_End();
return 0;
}
[quote="そうめん" id=3,19061,144646]変数xとy(プレイヤーの座標)の場所と変数aとb(爆弾の座標)があるとしてボタンを押したときにx!=aのようにして爆弾を離して操作キャラだけを移動させる方法とボタンを離した後もそこに爆弾を表示する方法[/quote]
「x!=aのようにして」という条件は満たしていないと思いますが、例えばこんな感じで普通にプログラムを書いて実行すればできるでしょう。
[code=cpp]
#include <DxLib.h>
int key[256];
int updateKey(void) {
char rawKey[256];
if (GetHitKeyStateAll(rawKey) != 0) return 0;
for (int i = 0; i < 256; i++) key[i] = rawKey[i] ? key[i] + 1 : 0;
return 1;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1;
SetDrawScreen(DX_SCREEN_BACK);
int x = 100, y = 100;
int a = 0, b = 0;
int bomb_alive = 0;
while (ProcessMessage() == 0 && ClearDrawScreen() == 0 && updateKey()) {
// 操作キャラの移動
if (key[KEY_INPUT_LEFT] && x > 10) x -= 5;
if (key[KEY_INPUT_RIGHT] && x < 530) x += 5;
if (key[KEY_INPUT_UP] && y > 10) y -= 5;
if (key[KEY_INPUT_DOWN] && y < 440) y += 5;
if (key[KEY_INPUT_Z] == 1) {
// 操作キャラと同じ座標に爆弾を出す
a = x;
b = y;
bomb_alive = 1;
}
// 爆弾の描画
if (bomb_alive) {
DrawString(a, b, "爆弾の画像", GetColor(255, 128, 128));
}
// 操作キャラの描画
DrawString(x, y, "操作キャラ", GetColor(255, 255, 255));
ScreenFlip();
}
DxLib_End();
return 0;
}
[/code]