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(分:秒)。
-時鐘的顯示會被地盤顏色蓋住。
下週目標:
-開始做貼圖。(兩位玩家角色的貼圖,房子的貼圖)。



沒有留言:
張貼留言