キャラクターのジャンプ処理
Posted: 2011年4月01日(金) 03:02
キャラクターをジャンプさせる処理を物理計算を用いずに再現してみようと思いました
ゲームプログラミングの館の各単元を読んで理解はしているものの、自身で考えたものをプログラムに治すことはまだ慣れていないので、まずキャラクターを上昇させ、一定の座標に達したら降下し元の位置に戻る、速度の変化などはナシで挑戦してみることにしました。
そこで書いたプログラムがこちらです。
エンターを押すことでジャンプ処理が実行され、まず上昇処理のwhileに入ります。
一定の座標に達したらbreakし、下降処理のwhileに入ります。
下降しきったところで一連の流れが終了します。
大雑把になりますが、上記のような動作をさせたいのですが、実行すると 応答なしのまま動作しません。
エラーはでないのですが、プログラム上に問題があるのでしょうか?
ご教示いただけると幸いです。
□追記□
プログラムを添付していたのですが、短いプログラムなので質問に直接のせました。
ゲームプログラミングの館の各単元を読んで理解はしているものの、自身で考えたものをプログラムに治すことはまだ慣れていないので、まずキャラクターを上昇させ、一定の座標に達したら降下し元の位置に戻る、速度の変化などはナシで挑戦してみることにしました。
そこで書いたプログラムがこちらです。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
int x=320,y=448,flag=0,image[16];
char Key[256];
LoadDivGraph("char.png",16,4,4,32,32,image) ; //画像を分割してimage配列に保存
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了
if( Key[ KEY_INPUT_RETURN ] == 1 ) //エンターキーが押された
flag=1;
while(1){ //ジャンプ上昇処理
if(flag=1){//flagが1なら上昇
if(y>=240){
DrawGraph(x,y, image[10] , TRUE ) ;//画像を描画
y-=20;
}else{
flag=0; //flagを0に初期化
break;
}
}
}
while(1){ //ジャンプ下降処理
if(flag=0){
if(y<=448){
DrawGraph(x,y, image[10] , TRUE ) ;//画像を描画
y+=20;
}else{
break;
}
}
}
ScreenFlip();//裏画面を表画面に反映
}
WaitKey();
DxLib_End();
return 0 ;
}
一定の座標に達したらbreakし、下降処理のwhileに入ります。
下降しきったところで一連の流れが終了します。
大雑把になりますが、上記のような動作をさせたいのですが、実行すると 応答なしのまま動作しません。
エラーはでないのですが、プログラム上に問題があるのでしょうか?
ご教示いただけると幸いです。
□追記□
プログラムを添付していたのですが、短いプログラムなので質問に直接のせました。