Dxライブラリで、モグラたたき風のミニゲームを作っているのですが、画面に配置されているモンスターが動くようにしたいです。
#define GHOST_NUM 10 struct Ghost{ int x,y,r,hit,width,height; }; int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC) { const int n = GHOST_NUM; struct Ghost enermy[GHOST_NUM], player; ChangeWindowMode(TRUE); if (DxLib_Init() == -1) return -1; SetDrawScreen(DX_SCREEN_BACK); srand((unsigned int)time(NULL)); SetMouseDispFlag(TRUE); for (i = 0; i < n; i++) { enermy[i].x = rand() % 640; enermy[i].y = rand() % 480; enermy[i].r = 30; enermy[i].hit = 0; enermy[i].width = 80; enermy[i].height = 40; } player.r = 55; player.width = 100; player.height = 110; GetMousePoint(&player.x, &player.y); mouseInput = GetMouseInput(); if ((mouseInput & MOUSE_INPUT_LEFT) != 0) { for (i = 0; i < n; i++) { if (enermy[i].hit == 0) { d[0] = player.r + enermy[i].r; d[1] = player.x - enermy[i].x; d[2] = player.y - enermy[i].y; if (d[0] * d[0] >= d[1] * d[1] + d[2] * d[2]) { enermy[i].hit = 1; count++; PlaySoundMem(hitSound, DX_PLAYTYPE_BACK); } } } for (i = 0; i < n; i++) { if (enermy[i].hit == 0) { DrawRotaGraph(enermy[i].x - enermy[i].width / 2, enermy[i].y - enermy[i].height / 2, 0.15,0.15,ghostImg, TRUE); } }
現在のソースはこんな感じです。長くなってしまうため、背景やBGMの設定などその他細かい部分は省略しました。
現在、ghostImgがランダムに10匹ただ配置されているだけの状態です。これを、ghostImgが移動するようにしたいです。左右でも上下でも、動けば何でも大丈夫です。
動かすことは可能でしょうか? また、動いたときに一緒に当たり判定も動いてくれるのでしょうか?
おわかりになる方いましたらお教えいただけるとありがたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。