キャラを一区間歩かせたいのですが自分が歩いてほしい画像が表示しません
21節をコピペしてプログラムの館のchar.pngなら一区間に歩いてくれるのですが、自分が歩いてほしい画像は表示しません。
表示して歩かせる方法を知りたいです。
21節の説明もちゃんと見て色々試してみたのですができなかったので教えてほしいです。
画像を張っておきます><
キャラを一区間歩かせたいのですができません。
Re: キャラを一区間歩かせたいのですができません。
正しいコードを書き、コンパイルして実行すればいいでしょう。
今のソースコードを載せていただければ、どこを修正すればいいかわかるかもしれません。
今のソースコードを載せていただければ、どこを修正すればいいかわかるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: キャラを一区間歩かせたいのですができません。
間違っていると思いますが張っておきます。
#include "DxLib.h"
typedef struct {
int x, y, img;
}ch_t;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
int image[12];
char Key[256];
ch_t ch;
if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1) return -1; //ウィンドウ化と初期化処理
ch.x = 320;
ch.y = 240;
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に設定
LoadDivGraph("けい.png", 12, 3, 4, 64, 64, image);//画像を分割してimage配列に保存
while (!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll(Key) && !Key[KEY_INPUT_ESCAPE]) {
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了
if (Key[KEY_INPUT_RIGHT] == 1) //右ボタンが押されたら
ch.x++; //xの値を1増やす
else if (ch.x % 64 != 0)
ch.x++;
ch.img = image[(ch.x % 64) / 8 + 12]; //現在のx座標にあった画像を指定
DrawGraph(ch.x, ch.y, ch.img, TRUE);//画像を描画
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End();
return 0;
}
Re: キャラを一区間歩かせたいのですができません。
全力で確保された範囲の外にアクセスしていますね…
右に歩く画像は6番目~8番目(0-origin)なので、例えば とか とかにするといいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: キャラを一区間歩かせたいのですができません。
座標が負になる可能性がある場合は、負の数を正の数で割った余りは負の数になることがあるので、この計算式ではまずいですね。
(C++03では処理系定義、C++11では負の数を正の数で割った余りは0以下になる)
C++の剰余の定義 - ここは匣
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: キャラを一区間歩かせたいのですができません。
みけCATさんが教えてくれたコードをすべて試してみましたができませんでした
どうすればいいでしょうか・・・
どうすればいいでしょうか・・・
Re: キャラを一区間歩かせたいのですができません。
こちらで試した所、どちらもうまく動きました。
作りたい挙動と、観測される挙動を具体的に教えてください。
作りたい挙動と、観測される挙動を具体的に教えてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)