2022年11月21日 星期一

*嗚嗚* Week12

 week12

上課內容:

-網路連線方法。


爆爆王Version 3:

這週目標:

-場景切換的步驟設計:

    場景大致分成stage1 & stage2 & stage3。

    stage1=開始畫面。包含提示:按下滑鼠就開始遊戲。

    stage2=遊戲畫面。遊戲畫面和計時器(遊戲剩餘時間)

    stage3=結束畫面。包含顯示贏家為哪一位玩家。

    stage1:


    stage2:


    stage3:



-敵人的炸彈炸到自己,地盤會歸零。

    例:玩家一的炸彈炸到玩家二,玩家二的地盤則歸零。

  if(i+1<8 && map[i+1][j]==map[playerI2][playerJ2] ) {

      player2died();

  if(i+1<8 && map[i+1][j]==map[playerI1][playerJ1] ) {

      player1died();


void player2died(){

  for(int i=0;i<8;i++){

   for(int j=0;j<11;j++){

     if(map[i][j]!=-3){

       if(map[i][j]==8)map[i][j]=0;

     }

   }

  }

}

void player1died(){

  for(int i=0;i<8;i++){

   for(int j=0;j<11;j++){

     if(map[i][j]!=8){

       if(map[i][j]==-3)map[i][j]=0;

     }

   }

  }

}


-玩家們不能互踩或穿越。

  if(playerI1+y==playerI2 && playerJ1+x==playerJ2)return false;

  if(playerI2+y==playerI1 && playerJ2+x==playerJ1) return false;


-遊戲時間(計時器),時間結束,即結束。

    #利用上課教的stage的技巧和millis()函數。

    #解決遊戲時間問題:切換到場景二才開始計時。

    -先設定如果滑鼠按下,從場景一切換至場景二時,利用millis()去紀錄場景二開始的時間。(startTime)。

    void mousePressed(){

      if(stage==1){stage=2;

      startTime=millis();}

    }

    -把millis()函數所記錄現在的總時間與startTime去做減法。

    如果時間結束:切換至stage3(遊戲結束!)。

         if(millis()-startTime>=20000){

       stage=3;

       counting();

     }else if(millis()-startTime<=20000){

      text(millis()-startTime%Time_minute,210,30);

     }

-計算出陣列裡兩位玩家的地盤總數後,比大小,並在遊戲結束(stage3)顯示最後贏家。

void counting(){

    for(int i=0;i<8;i++){

    for(int j=0;j<11;j++){

        if(map[i][j]==-3)Score1++;

        if(map[i][j]==8)Score2++;

      }

    }

}


發現的問題:

-時間的顯示調整。例:00:00(分:秒)。

-時鐘的顯示會被地盤顏色蓋住。

下週目標:

-開始做貼圖。(兩位玩家角色的貼圖,房子的貼圖)。


沒有留言:

張貼留言