ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 快速移动的身体有时会在Box2d,AndEngine中错过碰撞

2019-06-10 02:27:31  阅读:192  来源: 互联网

标签:android box2d andengine


我有一个动态的快速移动体(A).它应该与另一个身体(B)发生碰撞. A与B碰撞,但有时它会在没有碰撞的情况下通过B体.这是完全随机的行为.我必须有这种碰撞.请随意指导它为什么这样做.

解决方法:

由于在单个时间步长中的大运动,一个物体穿过另一个物体的效果被称为隧道效应.

Box2D使用动态和静态对象之间的连续碰撞检测来解决此问题.但是,你的情况(动态v.s.动态)不是自动处理的,所以在碰撞被评估的确切时刻,你的对象是否恰好处于碰撞位置,这只是一个随机骰子.

Box2d Manual

Normally CCD is not used between dynamic bodies. This is done to keep
performance reasonable. In some game scenarios you need dynamic bodies
to use CCD. For example, you may want to shoot a high speed bullet at
a stack of dynamic bricks. Without CCD, the bullet might tunnel
through the bricks.

Fast moving objects in Box2D can be labeled as bullets. Bullets will
perform CCD with both static and dynamic bodies. You should decide
what bodies should be bullets based on your game design. If you decide
a body should be treated as a bullet, use the following setting.

bodyDef.bullet = true;

The bullet flag only affects dynamic bodies.

Box2D performs continuous collision sequentially, so bullets may miss
fast moving bodies.

标签:android,box2d,andengine
来源: https://codeday.me/bug/20190610/1209067.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有