Skip to content

e8035669/Final_Project_Slither_lite_allegro

Repository files navigation

Final_Project_Slither_lite_allegro

##設計理念 小時候相信有不少人都有玩過貪吃蛇,但隨著時間的流逝,漸漸的大家也覺得貪吃蛇無趣。後來我們無意間在網路上看到一款遊戲-Slither,與傳統的貪吃蛇的概念相似,吃到食物會變長。但是又多了許多新想法,例如,多人連線、結束遊戲的條件是碰撞到其他蛇的身體或碰撞到地圖邊界。因此貪吃蛇不再是單一畫面、孤獨的一條蛇在手機螢幕上跑,而是有許多玩家一起遊戲。而遊戲名稱當初組員在投票時,「育仁育仁育仁」及「貪吃蛇的危機」為最高票。 ##主要場景

  1. 開始畫面
  2. 輸入名字
    • 用一個event去判斷是否有人輸入名字,有的話就將該字元儲存在字元陣列裡,並顯示在螢幕上,按Backspace就將一個字元刪掉,並在螢幕上更新按Backspace後該出現的畫面。
  3. Play、版權聲明、排行榜按鈕
    • 滑鼠只要移動到任一按鈕附近,按鈕就會變亮,點擊該按鈕連到相對應的畫面。
    • 如果選擇Play會進入三個關卡的選擇,1是簡單,2是普通,3是困難。
  4. 錯誤訊息
    • 如果使用者誤刪遊戲所必需之檔案(例如:刪掉icon照片),會跳出警告訊息,建議使用者重新安裝。
  5. 地圖
  6. 背景地圖 背景地圖是由一張10000*10000pixel的圖片,切成5*5,在蛇移動到哪,就載入那附近的那幾張圖片,這樣計算量會比一口氣載入10000*10000pixel圖片的運算量還要少很多。
  7. 身體長度、亮點數…等資訊
    1. FPS:現在每秒繪製多少張圖
    2. POS:現在頭的位置
    3. Length:身體長度
    4. Lsp:畫面上所剩的亮點數
    5. LspSize:目前記憶體最多可放的亮點數
    6. Snake:現在是處於第幾條蛇
    7. remainSnake:地圖中還剩下多少隻AI蛇(不包括自己)    8. Play Mode/Observe Mode:現在是處於玩家模式或是處於觀察模式
  8. 亮點(蛇的食物) 蛇的頭靠近亮點時,亮點會被蛇吸引並吃掉。亮點每1/60秒會有30%機率會產生一個。
  9. 判斷地圖有沒有蛇蛇相撞 每一條蛇都去判斷自己的頭是否與某一條蛇的身體距離太接近,如果太接近表示自己撞到別人了。
  10. 視角切換 輸入你想觀察之蛇的編號(要先將輸入法切換成英文模式),切到其他蛇時,地頭蛇會變成AI模式。在地頭蛇模式時,如果按Space鍵,地頭蛇也可以變成AI模式。
  11. icon 在遊戲視窗的左上角及下方工作列區出現一個小小的圖標。而遊戲名稱當初組員在投票時,「育仁育仁育仁」(圖二)及「貪吃蛇的危機」(圖三)為最高票,因此將張育仁的頭像整合在圖標上。但因為考量圖標顯示在視窗時會太小,因此實際顯示在遊戲中的圖標僅呈現「育仁育仁育仁」(圖三)的部分。
  12. 地頭蛇
  13. 移動:蛇會朝著玩家的滑鼠由標方向移動
  14. 轉彎:根據滑鼠的移動轉彎,會有一定的旋轉半徑
  15. 吃亮點:吃掉亮點時身體會變長
  16. 加速:點擊滑鼠左鍵,蛇會加速
  17. 死掉:蛇撞到地圖邊界,或者撞到其他蛇的身體就會死亡,死亡後蛇的屍體會化成亮點
  18. AI蛇 所有條件與主蛇相同,但AI蛇轉彎方向是根據「亂數產生之虛擬滑鼠」座標轉彎,且AI蛇不會加速。AI蛇死後,每1/60秒會判斷螢幕每秒更新速度(FPS)是否有達到每秒60張,以及eventQueue是否已經處理完目前所有發生的事件,如果皆是的話表示電腦還應付得過來,不會太忙碌,就復活50條蛇,持續監控電腦狀態並復活更多的AI來威脅地頭蛇,直到原本AI蛇應有的數量。各個關卡的AI蛇及特色還有如以下:
  19. 第一關: AI蛇100隻,一開始亮點2000個。AI蛇隨機亂跑。
  20. 第二關: AI蛇300隻,一開始亮點6000個。AI蛇跟地頭蛇的身體小於某個距離時,AI蛇會轉彎。
  21. 第三關: AI蛇500隻,一開始沒有亮點。在地頭蛇頭的方圓1000pixel裡的AI蛇會朝著地頭蛇的頭正前方移動,意圖攔截地頭蛇。
  22. 排行榜
  23. 排序前十名之成績
  24. 開始畫面有排行榜的選項可以選擇,遊戲結束畫面會直接進入排行榜
  25. 可選擇是否繼續遊戲(Replay)