- エフェクトの例です。
- slash_ice.png (1.49 KiB) 閲覧数: 1830 回
読み込んだエフェクトを順番に表示する方法
読み込んだエフェクトを順番に表示する方法
二度目の投稿になります。以前、2Dの衝突判定を質問したものです。現在、DXライブラリで2Dのゲームを制作しています。Xキーを押すとエフェクトを表示する、というプログラムを作成しているのですが、LoadDivGraphで読み込んだエフェクト画像をパラパラ漫画のように表示する方法が分からなくてつまずいてしまいました。for文で繰り返して表示するのか、または別の方法があるのか、初歩的な質問ですがどうか教えてください。
Re: 読み込んだエフェクトを順番に表示する方法
エフェクト表示の残り時間によって表示する画像を切り替えるといいと思います。
#include <DxLib.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1;
SetDrawScreen(DX_SCREEN_BACK);
const int effectNum = 3;
const int effectFramePerKoma = 5;
int effect[effectNum];
LoadDivGraph("slash_ice.png", effectNum, effectNum, 1, 82, 73, effect);
int effectTime = 0;
bool xFlag = false;
while (ProcessMessage() == 0 && ClearDrawScreen() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
if (CheckHitKey(KEY_INPUT_X) == 1) {
if (!xFlag) effectTime = effectFramePerKoma * effectNum;
xFlag = true;
} else {
xFlag = false;
}
if (effectTime > 0) {
effectTime--;
int effectIndex = effectNum - 1 - effectTime / effectFramePerKoma;
if (effectIndex < 0 || effectIndex >= effectNum) effectIndex = 0; // 念のためガード
DrawGraph(100, 100, effect[effectIndex], TRUE);
}
ScreenFlip();
}
DxLib_End();
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 読み込んだエフェクトを順番に表示する方法
みけCATさん、お早い返答ありがとうございます!
教えていただいた方法で別のエフェクトも表示することができました。
自分でも理解するよう努力します。今回もありがとうございました!
教えていただいた方法で別のエフェクトも表示することができました。
自分でも理解するよう努力します。今回もありがとうございました!