第十四屆 優選

web
30個遊戲程設的錦囊妙計
小哈片刻

系列文章

DAY 11

Trick 10: 向量的旋轉原來要歪看正著

不管是2D還是3D,幾乎沒有遊戲能離得開向量,小至幾何繪圖、動畫旋轉等像素操作,大至光跡追蹤、路徑搜尋等邏輯演算,向量都在其中扮演著重量級的魔王,擋在遊戲開發的...

DAY 12

Trick 11: 站在彈道上的女孩-圓與線的碰撞問題

射擊遊戲的程式需要一個很重要的功能-檢測彈道與角色是否發生碰撞的能力。有同學說,我把子彈用一個圓形圍起來,遊戲中的角色也用圓形圍起來,那麼只要檢查兩個圓形有沒有...

DAY 13

Trick 12: 直男與硬漢的交點-兩條線段的碰撞問題

昨天我們學會了怎麼用內積檢測角色圓與彈道的碰撞,用這個方法可以完整搜集一個飛得很快的物件和遊戲中一般物件的碰撞事件。不過在一些較為少見的情況下,遊戲也可能需要知...

DAY 14

Trick 13: 網頁遊戲的基礎建設-更新循環系統

從多年前開始寫遊戲就發現了,不管是用C寫GBA卡帶遊戲、用C++寫3D戰略遊戲、用Flash寫RPG、用Java寫Applet、用Unity寫VR、還是用Typ...

DAY 15

Trick 14: 為什麼要寫自己的亂數產生器

今天的標題可能會讓人很困惑,明明JavaScript就提供了Math.random(),現成的亂數產生器為什麼放著不用,要自己瞎搞一個出來? 九成以上的遊戲都藉...

DAY 16

Trick 15: 把Hash函數帶進遊戲玩

哈希函數(Hash)對我而言是個熟悉卻又陌生的老朋友,因為在開發各種系統與遊戲的人生中,一直少不了它的陪伴,但始終沒有親手實作這些函數。 Hash Funct...

DAY 17

Trick 16: 用MD5亂數產生器當個造物主

前天提到亂數產生器,以一個看似單純卻聚集了數學精要的演算法自製亂數產生器。 昨天講了哈希雜湊,列舉了雜湊在遊戲裏能夠施展的各種能力。 那麼今天我們來試著讓MD5...

DAY 18

Trick 17: 綿延不絕的隨機地形是咋做出來的?

不管你喜不喜歡沙盒遊戲,都無法否認我的世界(Minecraft)、泰拉瑞亞(Terraria)這些屹立了十多年仍然立於頂端的遊戲類型有多麼吸引玩家。 類似的沙盒...

DAY 19

Trick 19: 事件驅動的程式設計

在早期還是新手程式設計師的我,一直搞不懂事件驅動的程式風格到底有什麼好處,也因此走了一些冤枉路,更糟的是我繞了遠路還不自知。因此希望能藉今天這篇文章,讓同學們能...

DAY 20

Trick 18: 收下我的承諾,遲早給你個交待-I Promise

在寫遊戲流程的時候,常常會遇到需要等待某件事情發生,接著再去做另一件事的情況。比如說城內守衛要巡邏,那是不是要先規畫好巡邏站一二三,然後先設定目標為第一站,逛逛...