← Back to list

【UU-A系列】遊戲開發(2)-基本框架

Game…

channel · 2021-01-30 02:03 · 0 claps · 4.5 min read
#auu #arduboy
Open on Medium ↗

【UU-A系列】遊戲開發(2)-基本框架

Photo by Kelly Sikkema on Unsplash

Photo by Kelly Sikkema on Unsplash

Game Framework,是的。。這個就是我們今天要來分享名叫遊戲框架的東西,何謂遊戲框架?簡單解釋就是在程式開發前我們會先勾畫出一個程式架構,敘述程式中那個區域或函數的用途,基本的不外乎是初始、主迴圈、輸入、邏輯、繪圖等等這些程式的規劃,更複雜的如一些專業的遊戲引擎還會有一些物理系統、AI系統的規劃,只要照著框架使用會讓我們的遊戲開發變得更容易一些,效能也會比較好,不過我們今天先不講那麼複雜的專業遊戲框架,先從我常用的UU-A1基本遊戲框架開始,以下列出我常用的框架程式碼,大家可以先參考上篇文章(【UU-A系列】遊戲開發(1)-線上開發)將程式碼複製進ProjectABE執行看看,執行後會看到畫面一片漆黑,這是正常的請不用擔心:

[embed]

17~25:程式一執行會先進入setup()函數,所以可以在這邊執行只需在程式一開始到程式結束只需執行一次的變數或函數。

27~74:程式執行完setup()函數後會立馬進入loop()函數,而且會一直無限此循環執行,直到程式結束。

31~33:等待下一帧時間到才進入繼續執行.

35~57:這個區段主要判斷玩家輸入並執行輸入後的相關程式碼運作

59~62:這個區段主要寫入跟遊戲有關的邏輯運算程式碼

64~73:這個區段主要寫入跟繪製圖形到畫面有關的程式碼

以下介紹以上框架程式使用到的Arduboy2函數功能說明:

功能:初始 arduboy

說明:初始化arduboy,如初始硬體,顯示一開始arduboy Logo等

arduboy.begin()

功能: 設定遊戲更新率

說明:rate為要設定的更新數值

arduboy.setFrameRate(uint8_t rate)

功能:回傳是否可以開始喧染下一幀 .

說明:回傳true表示開始喧染下一幀,false表示尚未開始喧染下一幀

arduboy.nextFrame()

功能:保存按鈕狀態

說明:保存按鈕狀態以供justPressed、justReleased使用

arduboy.pollButtons()

功能:按下後持續執行

說明:buttons為按鈕常數

arduboy.pressed (uint8_t buttons)

功能:按下後只執行一次

說明:button為按鈕常數

arduboy.justPressed(uint8_t button)

功能:清除畫面

說明:將畫面清為黑色

arduboy.clear()

功能:更新畫面

說明:將緩衝區的內容複製到畫面上

arduboy.display()

以上基本框架,是每次寫遊戲時都會複製過來用的,然後再依照遊戲的邏輯不同在修修改改程式碼,接下來我們就來將基本框架修改成UU-A1隨機附贈的測試程式,一樣先列出程式碼如下,後面會在針對新增的程式碼作解說:

[embed]

17~19: 宣告游標X、Y變數並初始數值

21~22: 宣告字串並初始內容

47~54: 判斷按下左右按鈕後處理遞增或遞減變數X

55~62:判斷按下上下按鈕後處理遞增或遞減變數Y

63~66:判斷按下A按鈕後將游標改變成O

67~70:判斷按下B按鈕後將游標改變成X

72~79:判斷讓游標不要超出左右上下邊界

87~92:在左上角顯示游標的X、Y位置

94~97:顯示游標

以下介紹以上測試程式使用到的Arduboy2函數功能說明:

功能:設定游標位置

說明:X、Y為要設定游標的位置

arduboy.setCursor(int16_t x,int16_t y)

功能:在畫面上印出字串或數值

說明:主要運作原理為將字串或數值寫入屏幕緩衝區,print有多種用法實際使用方式請參考Arduboy2線上說明文件

arduboy.print(...)

ProjectABE執行畫面

ProjectABE執行畫面

將測試程式燒錄進UU-A1掌機

將測試程式燒錄進UU-A1掌機

這篇先簡單的介紹了一下遊戲框架,下篇開始我們會使用一些小遊戲為例子,並從發想、設計、原理到程式設計來說明如何將一款遊戲研發出來,敬請期待。

  • 作者其他文章

[embed]【UU-A系列】遊戲開發(1)-線上開發 Arduboy是我非常喜歡的一台小掌機,當初在kickstarter集資上線第一天就立馬下定了,同時在看過硬體規格後利用空嫌時間開始研究如何也作一台相容機,經過一段時間的努力就把UU-A0的原型給搞出來了,然後又在玩了一段時間後發現在麵包板…uupgrade.medium.com

  • 無限升級露天賣場

[embed]【無限升級】 | 露天拍賣 專賣自製硬體或零件包,歡迎有問題隨時留言給我們。。謝謝 。5個商品販售中www.ruten.com.tw

  • Facebook紛絲團

[embed]Log into Facebook Log into Facebook to start sharing and connecting with your friends, family, and people you know.www.facebook.com


메타데이터
post_id
2ec7a07dc4df
slug
uu-a系列-遊戲開發-2-基本框架-2ec7a07dc4df
url
https://medium.com/@uupgrade/uu-a%E7%B3%BB%E5%88%97-%E9%81%8A%E6%88%B2%E9%96%8B%E7%99%BC-2-%E5%9F%BA%E6%9C%AC%E6%A1%86%E6%9E%B6-2ec7a07dc4df
canonical_url
https://medium.com/@uupgrade/uu-a%E7%B3%BB%E5%88%97-%E9%81%8A%E6%88%B2%E9%96%8B%E7%99%BC-2-%E5%9F%BA%E6%9C%AC%E6%A1%86%E6%9E%B6-2ec7a07dc4df
author_url
https://medium.com/@uupgrade
status
ok
fetched_at
2026-07-28 13:47:05