iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
自我挑戰組

翻車機率極高的2D平台遊戲(2D Platformer)製作系列 第 27

[Day27] 測試場景與角色

今天意外順利,把預設要做的東西都有做出來 ^_^

今日目標

  • 搭建測試場景
  • 建立角色在場景上

搭建場景 & 角色 & Debug

場景

小改了一個地方,然後就完成了~每個方塊可以依照2D陣列製成的地圖畫出來。

改的地方如下:

// 在iron_render_window.c的DrawRectangle

// 原本
    V2f top_right = V2F_ZERO;
    top_right.x = sz.x / 2.0f;
    top_right.y = sz.y / 2.0f;
    V4f v0 = { top_right.x, top_right.y, 0.0f, 1.0f };
    v0 = Mat4MulV4f(rotate_matrix, v0);
    top_right.x = v0.x + pos.x;
    top_right.y = v0.y + pos.y;

// 修改後
   V2f top_right = V2F_ZERO;
    top_right.x = sz.x;
    top_right.y = sz.y;
    V4f v0 = { top_right.x, top_right.y, 0.0f, 1.0f };
    v0 = Mat4MulV4f(rotate_matrix, v0);
    top_right.x = v0.x + pos.x;
    top_right.y = v0.y + pos.y;

其實就是把每個頂點都往正的方向0.5,畫出來的方塊就全都會在視角內了,記得是要全部頂點

角色

接下來,建立一個簡單的結構,存放角色的資訊

static struct {
    V2f pos;
    V2f dir;
    Color c;
    V2f speed;
} PLAYER;

然後可以在game loop中加入輸入控制,根據speeddelta time來移動。

Debug

最後用了之前寫的其他功能,在視窗上畫出更多資訊,幫助我們Debug,以下是我目前加的東西

  1. 角色在地圖的座標 與 實際繪畫的座標
  2. 方塊都加上邊框,提高視覺上的便利性
  3. 角色的位移方向加上線段,可以知道目前的移動方向

然後這是目前的成果

最後也把今天的成果上傳到github


上一篇
[Day26] 製作測試場景
下一篇
[Day28] 再訪碰撞偵測與解析 (一) - 需要的資料
系列文
翻車機率極高的2D平台遊戲(2D Platformer)製作33

尚未有邦友留言

立即登入留言