iT邦幫忙

鐵人檔案

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

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

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

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

Day 1 | 前言: 我為什麼決定用 C++ 做一個 第一人稱視角 遊戲?

簡介 各位初見~這裡是鐵匠史密斯,是一個非本科生,是的,是一個轉職仔。本科為光電系,光學模擬、繞射光學是學生時代的回憶,轉職後歷經2年的折磨,變成一個基本功不夠...

DAY 2

Day 2 | 用 wchar_t* 畫畫?Console 也能做遊戲畫面!Part 1

這裡是鐵匠史密斯,最初被C++大神 javidx9 的影片吸引的地方就是:使用Console主控台呈現遊戲畫面! Console 呈現畫面? 不是使用Open...

DAY 3

Day 3 | 用 wchar_t* 畫畫?Console 也能做遊戲畫面!Part 2

嗨大家好,這裡是鐵匠史密斯! 昨天我們建立了一塊畫布(wchar_t* screen),今天我要正式把這塊畫布「貼」到 Console 畫面上! 說真的,我對...

DAY 4

Day 4 | 解析 map:用 wstring 寫迷宮地圖

Alright, Alright, 這裡是鐵匠史密斯~ 前兩天我們處理了畫布 screen ,以及將其畫在設置成作用中緩衝區的 hConsole 上,使得 C...

DAY 5

Day 5 | Ray Casting 前置 : fPlayerX、fPlayerY ─ 空間座標與陣列的對應關係

大家好,這裡是鐵匠史密斯~今日我會介紹一些Ray Casting 算法的前置作業,不會寫到code在開始演算法之前,我們需要定義所需的基礎,才可以了解每個現象的...

DAY 6

Day 6 | Ray Casting 前置 : screen ─ 玩家視野

Greetings~ 這裡是鐵匠史密斯,昨日講述到了 玩家資訊 ─ 座標: fXPlayer 、 fYPlayer ,今天就要來看看這些座標「映射到畫面」上後,...

DAY 7

Day 7 | Ray Casting 前置 : fPlayerA, AoV ─ 玩家方向 及 視野範圍

大家好啊~ 這裡是鐵匠史密斯,既然我們已經知道了玩家的位置 fXPlayer 、 fYPlayer 以及其視野 screen那接下來就要介紹: 玩家的視野方向...

DAY 8

Day 8 | Ray Casting 前置 : fPlayerA ─ 如何改變玩家方向

Hey~ 這裡是鐵匠史密斯,昨天我們聊到玩家的視線方向 fPlayerA 和視野範圍 AoV,但只知道方向還不夠,今天我們要探討——方向的正負定義,以及如何用它...

DAY 9

Day 9 | Ray Casting : 玩家畫面 screen 以及 視野範圍 AoV 的關係

假日好~ 這裡是史密斯8/9號(六)了,大家昨天有沒有過爸爸節阿~祝大家週末愉快~ 昨天我們已經分別認識了 screen 與 AoV,但光知道它們是什麼還不夠,...

DAY 10

Day 10 | Ray Casting 前置階段回顧 ─ 從地圖到玩家視野的基礎鋪墊

大家好~ 這裡是鐵匠史密斯,今天是鐵人賽的第十天,我們先稍微喘口氣,來回顧一下 Day 1 ~ Day 9 的進度與收穫。也讓第一次看到這系列的朋友,能快速了解...