C言語を勉強し始めたばかりで、このHPを参考に簡単なシューティングゲームを作ってみてるのですが、玉の発射でつまずいてしまいました。
特にエラーなどはでないのですが、どこを変えればいいでしょうか。
アドバイスや、ご指摘などよろしくお願いします。
OS WindowsXP
コンパイラ VC++ 2008EE
#include "DxLib.h"
#define MAX_FIELD_X 550
#define MAX_FIELD_Y 450
#define MIN_FIELD_X 10
#define MIN_FIELD_Y 10
#define PLAYER_SPEED 2*2
struct PlayerData{
int x;
int y;
int image;
int flag;
};
//プロトタイプ宣言
void PlayerShot();
//グローバル変数
struct PlayerData player_move;
struct PlayerData player_shot;
int WINAPI WinMain(HINSTANCE hI,HINSTANCE hP,LPSTR lpC,int nC)
{
ChangeWindowMode(TRUE); //ウィンドウモードで起動
if(DxLib_Init()==-1)return(-1); //DXライブラリ初期化
player_move.image=LoadGraph("image/neko.png");
player_move.x=MAX_FIELD_X/2;
player_move.y=MAX_FIELD_Y;
player_shot.image=LoadGraph("image/shot.png");
SetDrawScreen(DX_SCREEN_BACK);
while(ProcessMessage()==0&&CheckHitKey(KEY_INPUT_ESCAPE)==0){
ClsDrawScreen();
//自キャラ移動
if(CheckHitKey(KEY_INPUT_RIGHT)>0)
{
if(player_move.x>=MAX_FIELD_X)
{
player_move.x=MAX_FIELD_X;
}
else {
player_move.x+=PLAYER_SPEED;
}
}
if(CheckHitKey(KEY_INPUT_LEFT)>0)
{
if(player_move.x<=MIN_FIELD_X)
{
player_move.x=MIN_FIELD_X;
}
else {
player_move.x-=PLAYER_SPEED;
}
}
DrawGraph(player_move.x,player_move.y,player_move.image,TRUE);
ScreenFlip();
}
DxLib_End();
return(0);
}
/*-------------------------------------------------------------------*/
/* プレイヤー攻撃 */
/*-------------------------------------------------------------------*/
void PlayerShot(){
//発射
if(CheckHitKey(KEY_INPUT_Z)>0)
{
if(player_shot.flag==0)
{
player_shot.flag=1;
player_shot.x=player_move.x-12;
player_shot.y=player_move.y+6;
}
}
if(player_shot.flag==1)
{
player_shot.y-=12;
DrawGraph(player_shot.x,player_shot.y,player_shot.image,TRUE);
if(player_shot.y<MIN_FIELD_Y)
{
player_shot.flag=0;
}
}
}