iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
自我挑戰組

用 C++ 實作簡易第一人稱視角遊戲:從入門到理解 Ray Casting 系列

本系列紀錄我這位 C++ 新手,如何一步步打造出簡易的第一人稱視角遊戲。透過拆解 ray casting 程式碼,我會分享從語法、邏輯、數學到畫面渲染的學習過程。希望讓也想學 C++ 或想做遊戲的朋友,看到即使是新手也能做出自己的小遊戲!

鐵人鍊成 | 共 30 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 | Ray Casting : 從第一道光開始解析

Greetings~ 鐵匠史密斯在此,前十天我們奠定了畫面、玩家、地圖等基礎後,終於要進入重頭戲 - Ray Casting還記得Day 9 的 screen...

DAY 12

Day 12 | Ray Casting : 光如何前進? Part 1

大家好~ 這裡是鐵匠史密斯~我發覺在世界地圖、方向的定義上,似乎有不一致,混淆的地方日後挑戰玩30天鐵人賽後,會把不懂的,釐清的事情再回來更新但是,大致上的方向...

DAY 13

Day 13 | Ray Casting : 光如何前進? Part 2

大家好,這裡是鐵匠史密斯8/13 (三) 楊柳颱風來襲,風真的好大,大家注意安全~ 驚人發現! 我突破我自己的盲點了!目前已經把世界地圖、玩家方向的定義都統一了...

DAY 14

Day 14 | Ray Casting : 光如何前進? Part 3

嘿~ 鐵匠史密斯又來啦經過前兩天的推導,我們已經讓光線能夠依照方向一步步地走,並且記錄它的座標。今天要聊的,是光在不同情況下該怎麼處理: 光走到地圖外 光還在...

DAY 15

Day 15 | Ray Casting : 距離決定牆壁的高矮 - Part 1

大家好~我是鐵匠史密斯今天我們終於要從「光如何前進」的推導,走到它的第一個實際應用 —— 決定牆壁的高度!是的,接下來的程式碼,將把光線走過的距離,轉換成牆壁在...

DAY 16

Day 16 | Ray Casting : 距離決定牆壁的高矮 - Part 2

大家好~這裡鐵匠史密斯實在抱歉,這周末的三篇文章會在後面重新整理~而且,目前來說,找不出天花板、地板渲染的原理,公式以及其相關文獻日後會再找出,明日再嘗試以我的...

DAY 17

Day 17 | Ray Casting : 距離決定牆壁的高矮 - Part 3

周末好~ 鐵匠史密斯在此。8/17 (日),美好的周末~ 大家過得如何呢~? 總而言之,直接切入正題,關於 javidx9 大神提到的 nCeiling 以及...

DAY 18

Day 18 | Ray Casting : 視角的轉動 - Part 1

大家好,這裡是鐵匠史密斯前兩天初步推論與驗證 javidx9 提供的式子,確認距離與牆壁高矮的關係(反比)我們之前的code在編譯、執行過後,可以看到角色在世界...

DAY 19

Day19 | Ray Casting: 視角的轉動 - Part 2

這裡是鐵匠史密斯,How is it going?昨日知道如何旋轉玩家方向 fPlayerA但是目前只使用常數 0.1f 來增加角度,是轉動得非常快的!我們需要...

DAY 20

Day20 | Ray Casting: 視角的轉動 - Part 3

鐵匠史密斯在此~昨日已經知道了視角的轉動速率與硬體規格,也就是影格刷新速率(frame rate = fps) 有關我們今天直接上Code吧~ 使用C++ 標準...