-
spring bird
構思由以上flappy bird所產生,並在此基礎上做了某些改變,為了簡化設計上的工程,使用了irvine的library。
-
曾經遇到的困難
-
隨機生成場景元素
為了生成隨機的場景,使用了4個變數去控制,分別是管寬、 管間的寬度、管開口的寬度、管開口的位置,再利用隨機函數randomRange去生成水管。
-
定位
實質的利用變數去儲存位置,讓使用者的輸入與時間去改變位置, 並將結果印在遊戲視窗中,以此方式也較方便做碰撞判定。
-
製造移動效果
用兩層迴圈把整個場景向左移動一格,來達到像鳥向前走的視覺效果。
-
讀取使用者輸入
當單純使用readchar或readint時會出現 需要等待輸入完成程式才會進入下一步動作的情形, 這並不符合該遊戲的模式,因為當沒有輸入時鳥依然需要自然掉落, 所以必須要使用readkey,來確保程式不需要等待使用者,且為了使遊戲操作更加順暢, 使用了多重的readkey。
-
-
心得
大概就像這樣,由於組合語言本身是一個較底層的語言,當要做出比較複雜的操作時, 所需要自己實作的東西就會比較多,也讓程式碼維護與更新變得更加艱辛, 所以必須把每個區塊分割好,再加上很多的註解,才能完成這個小遊戲 雖然這是一個蠻大的缺點,但是組合語言相對於其他較高階的語言來說, 執行速度十分快速,在做某些操作時可以直接用暴力法完成,而不會影響到使用者的體驗。 總而言之,本次小專題是人生中第一次製作遊戲,在過程中充滿了期待與新奇感, 於是整體開發時間也非常快速,也了解到要製作出一個能玩的遊戲需要顧慮許多部份, 算是一個很不錯的學習經歷,雖然希望未來別再碰到組語就是了zzz。
-
實際遊玩畫面
-
彩蛋
當然為了增加遊戲樂趣,也有設計彩蛋,在輸入名字時可以觸發,不過檔案無法放上來, 大概也只有我知道了吧。