7. プレイヤーを動かす。
キーボード十字キーの左を押しているかどうかは Key[KEY_INPUT_LEFT] が0か1で判定できます。
これが1の時、左を押している状態ですから、この時、プレイヤーのx座標を左に移動させたらいいわけです。
今回は1処理につき、3ずつ動かしてみましょう。
if(Key[KEY_INPUT_LEFT]==1)
Player.x-=3.0f;
このように書けばいいわけです。
しかし、この条件だけでは、左を教えている時は、画面外まで移動してしまおうが関係なく、
左に移動してしまいます。ですから条件をもう一つ加えます。
if(Key[KEY_INPUT_LEFT]==1){
Player.x-=4.0f;
if(Player.x<10.0)
Player.x=10.0;
}
移動した座標が、表示すべき画面外になってしまったら戻しています。
不定の座標から4ずつ進んでいるので、if文一つに条件文をまとめることが出来ません。
これを4方向書いた記述が以下のサンプルです。
今回はPlayer.cppファイル内だけ変更したので、Player.cppファイル内の内容だけ記述します。
/* player.cpp*/
/* 素材 ver1.00以上必要*/
#include "DxLib.h" #include "ExternGV.h" void PlayerControl(){ if(Key[KEY_INPUT_LEFT]==1){ Player.x-=4.0f; if(Player.x<10.0) Player.x=10.0; } if(Key[KEY_INPUT_RIGHT]==1){ Player.x+=4.0f; if(Player.x>409.0) Player.x=409.0; } if(Key[KEY_INPUT_UP]){ Player.y-=4.0f; if(Player.y<15.0) Player.y=15.0; } if(Key[KEY_INPUT_DOWN]==1){ Player.y+=4.0f; if(Player.y>465.0) Player.y=465.0; } DrawGraph((int)Player.x-15,(int)Player.y-24,img_player[0],TRUE); }
実行画面
DXライブラリ著作権表示
DX Library Copyright (C) 2001-2006 Takumi
Yamada.