今ボンバーマンのようなゲームを作っているのですが、ボタンが押されたときに操作キャラと同じ座標に爆弾の画像を出しボタンを離した後でも同じ場所に表示する方法
が思いつきません。何がわからないかと言うと、変数xとy(プレイヤーの座標)の場所と変数aとb(爆弾の座標)があるとしてボタンを押したときにx!=aのようにして爆弾を離して操作キャラだけを移動させる方法とボタンを離した後もそこに爆弾を表示する方法がわかりません。
説明下手ですみませんが熟練者の方よろしくお願いします!
設置
Re: 設置
条件を緩和したプログラム(爆弾を離さず操作キャラと一緒に移動する、ボタンを離したら爆弾の表示をやめるなど)を提示していただければ、それをもとに改造することで答えやすいですが、提示はできないですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 設置
「x!=aのようにして」という条件は満たしていないと思いますが、例えばこんな感じで普通にプログラムを書いて実行すればできるでしょう。そうめん さんが書きました:変数xとy(プレイヤーの座標)の場所と変数aとb(爆弾の座標)があるとしてボタンを押したときに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;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)