请教人物攻击的时候是怎样实现碰撞检测计算伤害的呢?

如下图,黑色是人物,白色是武器,挥动武器的时候白色的位置和形状是会变的,那是怎么实现碰撞的呢?

啥游戏需要这么精确的碰撞,精确碰撞就只能添加碰撞盒了

1赞

不需要很精确,因为没有做过,现在是这样想的,不知道是什么效果。有不添加碰撞盒的实现方法吗?如果添加碰撞盒,是推荐添加一个包围整个的攻击范围的碰撞盒吗?

一般的做法是定一个攻击帧吧,就是武器挥动到某一帧时,创建一个包围盒用以判断是否攻击到敌人

3赞

不根据动画检测,只根据范围检测

顶一个范围,然后根据朝向计算范围的具体坐标,再去做相应的碰撞检测。

不是很精确的话,发射一个点,比如一个子弹,点和矩形碰撞就可以,效率很高。
子弹有速度,有距离,想让它什么时候碰到就什么时候碰到。数据与渲染分离,很难出bug.

看到这个我好像悟了,就是不知道你说的发射一个点,然后点和矩阵碰撞的代码具体是怎么写的,用什么发射点呢?碰撞就用坐标判断吗?


点和矩形碰撞
bullet.zip (4.2 KB)
你可以参考一下,不能直接用的
//比如你砍刀的时候从角色中心向刀砍的方向发射一颗子弹,0.5秒后刀动作帧应该可以劈到人,0.5秒后子弹消失,如果碰到障碍物,就可以做后续的操作,如果没碰到,子弹自动消失回收就可以了。