原创 從零實現3D圖像引擎:(2)畫2D直線不簡單

1. 數學分析 1) 畫直線的問題 本來我以爲畫直線會很容易,隨便拿個直線公式,遍歷X求Y畫出來不就完了麼,但事實並非如此。以2D直線爲例,因爲3D直線也只是多引入了個Z座標而已。關鍵的問題:我們在數學中所學的直線是基於實數域的,而在計算

原创 32BPP窗口模式下24位位圖的像素操作(2)

等測距卷軸的邏輯寫的差不多了,結果發現之前寫的位圖至顯示錶面的代碼有些問題,所以重寫了一個函數,給定一個表面,基於表面的尺寸和傳入的座標,直接在BITMAP24_PTR上取圖,取圖後的表面直接就可用,先給出完整代碼: int PickBi

原创 從零實現3D圖像引擎:(5)3D座標系函數庫

1. 數學分析 1) 2D笛卡爾座標系與2D極座標系 2D笛卡爾座標系就是平面直角座標系,不說了。 2D極座標系,是用方向和距離來定義2D空間中的點,而非x,y座標,如下圖: 其中極座標的參數用紅色表示,笛卡爾座標的參數用藍色字表示。

原创 從零開始重寫KOK1(萬王之王1) —— (4)遮擋、阻擋與尋路

0. 上篇文章,人物已經可以正確的朝向和移動了,這次我們要添加幾個石頭,並且達到以下效果 1) 人物和石頭根據站位可以正確產生遮擋效果 2) 人物被石頭阻擋住,即不能穿過石頭 3) 當鼠標點擊石頭後面時,人物可以自動繞過石頭走過去 效果截

原创 實現一個均勻Tile的卷軸顯示引擎

遊戲的卷軸效果主要有兩種形式,一種是將遊戲分爲若干個場景的頁面卷軸,比如FC上的洛克人,當人物走到邊緣時,就會切換整個場景;一種就是魂鬥羅式的那種均勻平鋪的卷軸,這種捲動更爲平滑。因爲我要用在2.5D顯示引擎中,只能選擇第二種卷軸技術——

原创 C++對某些特性的貶斥

0. 問題的引入 一直覺得我的3DLIB裏面的.h文件的這段代碼很彆扭: namespace _CPPYIN_3DLib { // 全局變量 static IDirect3DDevice9* pDevice = 0; static

原创 從零開始重寫KOK1(萬王之王1) —— (1)讓人物可在地圖上使用鼠標跑動

從飛信裸辭已經2個月了,因爲對遊戲的愛,和做出好玩的遊戲這個夢想。《Windows遊戲編程大師技巧》(以下簡稱《大師》)這書已經讀完,DEMO也都搞清楚了,爲了確實的掌握2D遊戲的技術,決定完成一個完整的KOK1咒術師打錢坑的DEMO,也

原创 從零開始重寫KOK1(萬王之王1) —— (2)優化地圖加載

本來想在第2篇說明物體遮擋與尋路的開發過程,但是因爲我把這問題想簡單了,現在已經完成了遮擋與尋路,但是中間的過程非常多,第一篇文章的系統結構需要做一些修改纔可以,這裏先說一下地圖加載的相關問題。   首先是效果圖:   可直接運行版本下

原创 確定窗口實際用戶區的一些問題

1.RECT的兩個座標屬性不同於索引 一個左上角在0,0點,寬度爲400,長度爲300的窗口,他的RECT就是{0,0,400,300},而不是{0,0,399,299},因爲x軸上從0到399的寬度是399而不是400。 爲什麼說這個問

原创 當你的程序在朋友的機器上顯示丟失msvcr100d.dll的時候

0. 給朋友發了個DEMO,收到提示:丟失 msvcr100d.dll   1. 一看是運行庫文件,趕緊讓朋友下載並安裝vc++ 2010 redistribution,朋友反饋還是提示丟失這個dll文件   2. 把我本地的這個dll拷

原创 從零實現3D圖像引擎:(3)超級重要的2D矩形裁剪

1. 數學分析 爲什麼我們要畫2D直線,要做2D的直線-矩形裁剪?原因很簡單,無論遊戲世界是2D的還是3D的,最終都要投影到玩家的屏幕上,3D的東西最終要是要投影到視平面上。所以3D遊戲仍然有很多東西要在2D視平面上做。對於3D遊戲的裁剪

原创 從零實現3D圖像引擎:(1)環境配置與項目框架

0. 要學懂3D程序設計,必然要精通3D相關的線性代數、3D幾何、複分析等相關知識,我也因爲如此纔開始這個博客系列的寫作,不自己實現,就不是自己的東西,從今天開始,將會把所學的數學知識,從數學推導到代碼實現的心得全部記錄於此。最終得到一個

原创 Diablo世界觀與劇情綜合說明

研究了幾天Diablo2的技術,今天突然對劇情產生了濃厚的興趣,雖然從1代,到地獄火,到2代,再到破壞之王一路玩下來,但一直沒有太明白劇情,今天各處搜索學習,終於稍稍有所瞭解,所有的文章內容均爲轉貼,我將他們按順序編排了一下,我找到的文章

原创 從零開始重寫KOK1(萬王之王1) —— (3)優化玩家移動與精確8方向朝向

0. 回顧與分析 在第1篇文章中,我們是對移動目標與玩家座標做差,然後按照各個方向的可能性進行if判斷,來決定人物的方向,在第一篇的DEMO中,可以發現,只有當人物正好在正斜方(45度的4個斜方向,或者說是n*pi/4時),人物纔會斜着站

原创 裸辭三月之癢

    剛起,昨晚很晚才睡,和父親談了很久。     都說婚姻有七年之癢,我覺得裸辭也有三月之癢。     當初爲了做遊戲,一點雜念都沒有,立刻辭職,當天我就寫下了爲找下一份工作的求職信,只爲記住這份心情:   {     遊戲是一個行業