このソースをエンターを押すたびにジャンプさせていきたいのですが。。
Posted: 2009年10月29日(木) 17:25
一人がジャンプ中にもう一度エンターを押すと追加でジャンプする。。
というのを作りたいのですが、ジャンプ途中で押すとそのキャラが消えてしまいます。
どうしたらいいのでしょうか?
というのを作りたいのですが、ジャンプ途中で押すとそのキャラが消えてしまいます。
どうしたらいいのでしょうか?
#include "DxLib.h"
#include <math.h>
#define g 9.8067
#define y_max 2.000
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; //DXライブラリ初期化 エラーが起きたら終了
int x=320,y=480,image[16],time1,time2,flag=0;
double t;
char Key[256];
SetDrawScreen( DX_SCREEN_BACK ) ;//描画先を裏画面に設定
LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ;//画像を分割してimage配列に保存
while(1){
ClearDrawScreen();//裏画面のデータを全て削除
GetHitKeyStateAll( Key ) ; // すべてのキーの状態を得る
if( ProcessMessage() == -1 ) break ; //異常がおきたら終了
if( Key[ KEY_INPUT_RETURN ] == 1 ){ //エンターが押されたら
time1 = GetNowCount(); //time1にエンターが押された時の時間を格納
flag++; //飛び上がりフラグを立てる。
}
if(flag>1){
time2 = GetNowCount() ; // 現在経過時間を得る
t = (double)(time2 - time1) / 1000.000; // ミリ秒を秒に変換して、エンターが押されてからの経過時間を計算
y = (int)((sqrt ( 2.000 * g * y_max) * t - 0.500 * g * t * t ) * 480.000 / y_max);//y座標を計算
if(y>=0) // 1回目に回って来たか、画面内にy座標がある時
DrawGraph( x , 480-y , image[8] , TRUE );//画像を描画
else
flag=-1; // 画面外に来ると、飛び上がりフラグを戻す
}
if( Key[ KEY_INPUT_ESCAPE ] == 1 ) break; //Escボタンが押されたらブレイク
ScreenFlip() ; //裏画面データを表画面へ反映
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}