我把昨天的Entity結構獨立出來,然後新增了這三個function方便之後使用,目前只開這些,之後有需要再加。
typedef struct Entity {
V2f pos;
V2f sz;
V2f dir;
Rect rec;
V2f center_pos;
} Entity;
// 建立
void EntityCreate(Entity* e, V2f pos, V2f sz);
// 更新移動
void EntityMoveOffset(Entity* e, float xoffset, float yoffset);
// 偵測碰撞
bool EntityIsCollided(Entity* e1, Entity* e2);
然後有把一些結構中的變數刪除,因為事實上這些變數,可以說是多的,老實說,在寫的時候還是感覺可以精簡化,但之後再處理了,我想先把碰撞偵測與解析做出來。
可以把Enitiy
的功能,對應成其他引擎中的Transform
元件,但我的目前可以做到的事更少,因為我基本上是需要甚麼功能,先暴力的寫出來,之後看有沒有重複或是額外的需要,再重構出來成獨立的功能。
最近在做的事,事實上都是把之前再做一遍,比期之前現在開始做了一些視覺上的功能方便我們Debug,老實說,或者是對我來說,這樣才比較對,明明都是以視覺為核心去製作,但卻不用視覺上的工具幫忙我們開發...
然後這是新的碰撞效果,跟昨天差沒多少,因為大部分的時間都在處理AABB,之前Day14寫的AABB好像有錯誤,於是跑回去翻Learn OpenGL才解決了問題。