貪喫蛇還能怎樣玩?

上一篇介紹了簡單的貪喫蛇遊戲設計,那麼貪喫蛇還能怎樣玩呢?
###1.創新玩法:
看到一位同學的想法很新奇,就拿出來分享啦。我們可以將二維平面轉化爲三維空間,把蛇放在444的籠子裏(太大會不會爆啊),操作鍵位如下:“↑” “↓” ”←“ ”→“與經典模式相同,控制蛇頭前進方向。“W” “A” “D” “S” 則控制籠子繞軸旋轉,因爲我們看到的還是一個二維平面在顯示屏上,(對於蛇來說它還是在一個二維空間運動)所以需要通過將籠子進行翻轉達到增加一維的目的。
###2.食物設置:
可以讓食物每五秒就刷新一次,如果蛇還沒有喫到食物的話,食物的位置就會改變。爲了實現這個功能,就要設置一個定時器。
例如,啓動一個windows的定時器:

UINT iTimerID = SetTimer (NULL, 0, 10000, mycallback) ; // 10秒以後調用mycallback函數
這樣10秒後你的mycallback函數就會被調用到。所以你還得寫一個mycallback函數:
void CALLBACK mycallback(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
// 這個函數裏面,你要去檢查食物是否已經被喫掉了,判斷要不要改變食物顯示的位置
}

###3.食物分類:
可以每隔5個小食物就出現一個大食物,和小食物並存,喫到大食物的分數較多,喫到小食物的分數較少。我們可以把所有的食物放在一個結構數組或者鏈表中,結構中包含其存在時間,永久存在的小食物的存在時間可以設置爲-1;大食物的存在時間可以設置爲倒計時描述。然後每隔1秒鐘就檢查這個鏈表,更新時間值,到0 了就刪掉。
###4.障礙設置:
爲了增加遊戲的難度,我們可以適當地增加一些障礙(也是牆)。在地圖的某些區域內輸出類似於圍牆的方塊即可。

/*開始畫面,左上角座標爲(50,40),右下角座標爲(610,460)的圍牆*/
void DrawK(void)
{
/*setbkcolor(LIGHTGREEN);*/
   setcolor(11);
   setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設置線型*/
   for(i=50;i<=600;i+=10)/*畫圍牆*/
   {
      rectangle(i,40,i+10,49); /*上邊*/
      rectangle(i,451,i+10,460);/*下邊*/
   }
  for(i=40;i<=450;i+=10)
  {
     rectangle(50,i,59,i+10); /*左邊*/
     rectangle(601,i,610,i+10);/*右邊*/
  }
}

以上就是一些特別增加的功能,同時也增加了玩遊戲的樂趣和挑戰性,有些僅僅提供思路啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章