このソースをエンターを押すたびにジャンプさせていきたいのですが。。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
LisetteLander

このソースをエンターを押すたびにジャンプさせていきたいのですが。。

#1

投稿記事 by LisetteLander » 15年前

一人がジャンプ中にもう一度エンターを押すと追加でジャンプする。。
というのを作りたいのですが、ジャンプ途中で押すとそのキャラが消えてしまいます。
どうしたらいいのでしょうか?
#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 ;                                       // ソフトの終了
}

kazuoni

Re:このソースをエンターを押すたびにジャンプさせていきたいのですが。。

#2

投稿記事 by kazuoni » 15年前

こんな感じですかね?
適当に、10体用意しておいて、
添え字の若い順にジャンプさせてます。
とりあえず、重要なのは、各キャラクターの状態(今回は構造体Chara)
を保持する必要があることです。

なるべくゲームプログラミングの館にそうようにしました。

LisetteLander

Re:このソースをエンターを押すたびにジャンプさせていきたいのですが。。

#3

投稿記事 by LisetteLander » 15年前

ありがとうございます。
参考になりました!

閉鎖

“C言語何でも質問掲示板” へ戻る