2023年11月30日 星期四

week12 期中

 Week12


確定完要使用貪食蛇作為主題,在網路上找了一推資料

最後找到一個之前有人做過的貪食蛇程式碼作為主體

https://github.com/paper/processing-snake/blob/master/snake/snake.pde




他寫出

1.執行程式就直接開始遊戲

2.劃出蛇、食物

3.吃到紅點蛇會加長並分數會增加

4.蛇碰到自己身體會死掉

5.蛇碰到邊緣會死掉

6.進入死亡介面有你這場的分數和歷史上最高的分數

7.進入死亡介面按R重新開始新的一局


我就先以第一點改進

執行程式後不是直接開始遊戲,而是進入開始遊戲的介面,讓玩家去按方向鍵來開始遊戲


我就先去問ChatGPT,他就跟我說先新增一個布林值gameStared來判斷遊戲是否開始

 void draw()

{

...

    image(img,0,0);

    rectMode(CENTER);

    if (!start.isPlaying()) {

    start.play();//這是音樂

}



void keyPressed() {

  if (!gameStarted) {

    gameStarted = true; // 遊戲開始

     // 初始化遊戲狀態,生成蛇和食物等

  }

  if (start.isPlaying() ) {

    start.stop();//這是音樂

  }

}



第二點

蛇:我一直想要調整蛇的速度,他我找到的方法只有調整FrameRate()//調整幀率

後來我也就沒辦法只能已改變幀率來調整速度

第三點

食物:我之後為了調整難度,吃到食物後,增加幀率來增加蛇的速度,來改變遊戲的難度

但是我覺得畫面上太單調了,所以增加了一些障礙物,只要蛇一吃到一個食物就增加一個障礙物,之後我有覺得應該隨著時間增加難度,所以我以獲得多少score來增加吃到一個食物,增加不只一個障礙物。

 // 如果蛇吃了食物

  if( snakeHeadX == foodX && snakeHeadY == foodY ){

...

    frameRate(frame+(score/5));

}


我還有在遊戲開始後的介面增加現在所獲得的分數和難易度顯示


難易度是以一次增加幾個的障礙物來計算





















沒有留言:

張貼留言