哈囉哈囉,這裡是鐵匠史密斯~
我們已經完成地板的渲染了,接下來就是解決角色橫移的問題了
fPlayerA
又上用場了~我們還是上個簡單的圖,讓大家記得計算機圖學的座標以及旋轉時角度的 +/- 規則:
目前訂定的規則是:
fPlayerA = 0
的左邊(逆時針)為 +
fPlayerA = 0
的右邊(順時針)為 -
所以呢,如果我們角色要向左橫移,必須要找到當下 fPlayerA + pi/2
的單位向量
反之亦然,向右橫移,必續找到當下 fPlayerA - pi/2
的單位向量
我們再藉由 GetAsyncKeyState()
的功能,來偵測 A
/ D
按鍵,供 左 / 右 橫移使用
得出:
// Move Left&Right in the map
if (GetAsyncKeyState((unsigned short)'A') & 0x8000)
{
fPlayerX += cosf(fPlayerA) * fElaspedTime * 5;
fPlayerY -= sinf(fPlayerA) * fElaspedTime * 5;
}
if (GetAsyncKeyState((unsigned short)'D') & 0x8000)
{
fPlayerX -= cosf(fPlayerA) * fElaspedTime * 5;
fPlayerY += sinf(fPlayerA) * fElaspedTime * 5;
}
這樣我們就可以讓角色進行左右橫移了!
W
/ S
按鍵 : 進行左 / 右 橫移fPlayerA + pi/2
以及 fPlayerA - pi/2
的單位向量明天我們會討論一下如何找到玩家 左 / 右 的單位向量
讓我們繼續走下去~