シューティングゲームの館

今日 昨日


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.