[Day29] 再访碰撞侦测与解析(二) - AABB碰撞侦测

今日目标

  • 实现AABB碰撞侦测
  • 视觉上的debug效果

Entity与其相关功能

我把昨天的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

最近在做的事,事实上都是把之前再做一遍,比期之前现在开始做了一些视觉上的功能方便我们Debug,老实说,或者是对我来说,这样才比较对,明明都是以视觉为核心去制作,但却不用视觉上的工具帮忙我们开发...

然後这是新的碰撞效果,跟昨天差没多少,因为大部分的时间都在处理AABB,之前Day14写的AABB好像有错误,於是跑回去翻Learn OpenGL才解决了问题。

参考

最後!把今天的成果上传到github


<<:  <Day24> 什麽是上市、上柜、兴柜?什麽是ROD、IOC、FOK?

>>:  学习架构

Day 21 - 背景 Gradient 使用

欢乐的时光总是过得特别快,不知不觉连假就要结束了,不过威尔猪也太悲催,为了铁人赛,中秋节还要在电脑...

D8 - 你不知道Combo : 甜点用一杯 Mojito 解释 直译器、编译器

前言 吃了前菜、主餐,没有饭後甜点怎麽可以呢! 你不知道 Combo 套餐系列最後一道,以一杯 Mo...

Day 1 - JavaScript Drum Kit

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

Day36 - 「登愣登愣,登愣登登登」~ 隐挑战 Day12 ─ 果然我的青春写扣喜剧搞错了。完

重复是学习之母。继续写是完赛之母。 继续写是完赛之母XDDDDDDDDDDD 这会不会太符合我现况...

[Day28] 实战 - 波段创新高

影片在这里 分类:选股 波段 重点整理 目的: 大盘或景气表现不好时,价格还能创新高。表示背後有特别...