タイトルの実装について

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

タイトルの実装について

#1

投稿記事 by サンタクロース » 15年前

こんばんわ、いつもお世話になっております

今回は3つ質問があります

・タイトルは東方の作品を参考にして
START→武器選択→キャラ選択→キャラの性能?選択→ゲーム開始
という流れなのですがSTARTを押した瞬間いきなりゲーム開始してしまうのです
if(CheckStatePad(configpad.shot)>0){//決定ボタンが押されたら
という条件にしてあるのですが、いきなりゲーム開始してしまわないようにはどのような
条件にすればよいのでしょうか?

・STARTやPRACTICEなどの選択肢が一定時間たつと左右に少し動くように
したいのですが「一定時間かつどのくらいの間」の条件が思い浮かばないのですが
どのようにすればよいのでしょうか

・今回、一から手探りで作ってみたのでいろいろとソースに無駄があると思います
なのでその点を指摘してもらえると今後の役に大いに立つと思うので出来ればお願いします。
void title_main(){
    switch(title_state){
      case 0:
          title0();
          break;
           case 1:         
          title1();
          break; 
      case 2:                  
          title2();
          break; 
      case 3:
          title3();
          break; 
      case 4:        
          title4();
          break; 
      case 5:          
          title5();
          break;       
      case 6: 
          title6();
          break; 
      case 7:
          title7();
          break; 
      case 8:
          title_select();
          break;
    }
}



void title0(){//一番初めのやつ
    static int i=0;
    static int x=120,y=-120;
    int cnt=title_count;
    if(title_count==0)
        bgm_flag[0]=1;

    if(title_count<=60)
        x=120-2*cnt,y=-120+2*cnt;

             DrawGraph(0,0,img_title_back[1],TRUE);//タイトルの背景
                  DrawGraph(10,0+y,img_title_back[2],TRUE);//東方妖々夢のロゴ
            
        DrawGraph(250+x,100,img_title[0],TRUE);//START
        DrawGraph(260+x,120,img_title[2],TRUE);//EXTRA
        DrawGraph(270+x,140,img_title[4],TRUE);//PRACTICE
        DrawGraph(280+x,160,img_title[6],TRUE);//REPLAY
        DrawGraph(290+x,180,img_title[8],TRUE);//RESULT    
        DrawGraph(300+x,200,img_title[10],TRUE);//RESULT
        DrawGraph(310+x,220,img_title[12],TRUE);//OPTION
        DrawGraph(320+x,240,img_title[14],TRUE);//QUIT

        DrawGraph(250+i*10+x,100+i*20,img_title[i*2+1],TRUE);//画像を光らせる
                   
    if(CheckStatePad(configpad.down)==1 || (CheckStatePad(configpad.down)%6==0 && CheckStatePad(configpad.down)>30)){//下に移動
        i+=1;//ひとつ下にいく 
        if(i==8)i-=8;//一番下なら上へ
        se_flag[11]=1;//カーソル音
    } 

    if(CheckStatePad(configpad.up)==1 || (CheckStatePad(configpad.up)%6==0 && CheckStatePad(configpad.up)>30)){//上に移動
        i-=1;//一つ上にいく
        if(i==-1) i+=8;//一番上なら下へ
            se_flag[11]=1;
    }  

        
    if(CheckStatePad(configpad.shot)>0){//決定ボタンが押されたら
        title_count=0;
        se_flag[10]=1;
        i=0;
        if(i==0){//STARTならば
            title_state=8;
    }
        if(i==1)
        if(i==2)
        if(i==3)
             if(i==4)
             if(i==5)
        if(i==6)
        if(i==7)//EXITならば
    }  
}

パコネコ

Re:タイトルの実装について

#2

投稿記事 by パコネコ » 15年前

>>if(CheckStatePad(configpad.shot)>0){//決定ボタンが押されたら
決定キーが押されているときにカウントさせる形ですか?
それなら「>0」→「==1」でなんとかなると思います。
違うならボタンを離すまで待つとかの処理がいると思います。
残りは時間ないんでわからないです…

シエル

Re:タイトルの実装について

#3

投稿記事 by シエル » 15年前

決定キーが押されたら、あるフラグを立てる。
フラグが立ったら、あるカウントを増やすようにする。
そのカウントが一定まで達したら、ゲームを開始する。

閉鎖

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