草庐IT

java - 多边形碰撞检测

我想知道是否有人可以告诉我如何首先实现一个类来定义多边形,其次如何使用此类检测两个多边形之间的碰撞。更具体地说,我在Android上使用Java,尽管我也可以将NDK用于C/C++。我认为要定义我的多边形,我只需要一个顶点数组,对吗?当我进行碰撞检测时,我阅读了有关分离轴定理和GJK算法的内容。这是正确的方法吗,还是我把它弄得太复杂了。只是想朝着正确的方向开始。谢谢! 最佳答案 听起来您对这类事情还很陌生,这可能是您意识到的一个更大的问题。我认为您最好首先定义要尝试解决的问题,然后找到解决该问题的解决方案。让我问你一些符合条件的问题

java - 在不使用 Box2D 的情况下在 LibGDX 中制作具有碰撞和重力的游戏

我想在LibGDX中制作一个游戏,我想在其中加入一些重力,当然还有物体之间的碰撞。我可以不用Box2D吗? 最佳答案 是的,你可以。尝试为世界设置一个Vector2重力,为每个对象设置一个Vector2速度。然后每一帧使用重力修改速度。然后是使用速度的位置(例如它开始下降)。Vector2gravity=newVector2(0,-1);myobject.velocity.add(gravity);myobject.position.add(myobject.velocity.x*delta,myobject.velocity.y*

android - 检查 Canvas android中线条和圆圈的碰撞

我正在尝试检查线和圆之间的碰撞,如果圆碰到线,它会将bool值更改为true,一旦它没有被触及,它就会将其改回false。我正在使用Canvas和表面View。这是我用于检查碰撞的代码,它不起作用并最终出错:@Overridepublicvoidrun(){while(runnable){if(!holder.getSurface().isValid()){continue;}CanvasmCanvas=holder.lockCanvas();update(mCanvas);values=newValues(mCanvas);createPaints();drawBackground(

java - android中2个 View 之间的碰撞

我在android中有2个View,它们是可拖动的。我想检测它们之间的碰撞。目前我正在使用此代码来检测碰撞,但我认为它不起作用。请建议需要检查碰撞的内容。publicbooleanonTouch(Viewview,MotionEventevent){finalintX=(int)event.getRawX();finalintY=(int)event.getRawY();switch(event.getAction()&MotionEvent.ACTION_MASK){caseMotionEvent.ACTION_DOWN:RelativeLayout.LayoutParamslPar

android - 快速移动的物体有时会错过 Box2d 和 AndEngine 中的碰撞

我有一个快速移动的物体(A),它是动态的。它应该与另一个Body(B)发生碰撞。A与B发生碰撞,但有时它会在没有碰撞的情况下通过BodyB。这是完全随机的行为。我必须有那个碰撞。请指导它为什么会随机出现这种情况。 最佳答案 由于单个时间步长内的大幅度移动,一个物体穿过另一个物体的效果称为隧道效应。Box2D使用动态和静态对象之间的连续碰撞检测来解决这个问题。但是,您的情况(动态与动态)不会自动处理,因此无论您的对象恰好在评估碰撞的确切时刻处于碰撞位置,这只是一个随机掷骰子。来自Box2dManual:NormallyCCDisnot

android - 如何绘制/渲染 Bullet Physics 碰撞体/形状?

我已经使用NDK在我的android程序中实现了BulletPhysics引擎(我正在使用Vuforia'simagetarget示例forandroid),并且它已设置并正常工作,但是我想渲染/绘制我的碰撞框/planes查看我的刚体(btRigidBody)/碰撞形状(btCollisionShape),我很肯定这是可能的,但我找不到任何关于如何做的教程!我参加了helloworldBulletphysicstutorialontheirwikipage并对其进行修改以将从下落的物理体到我在opengles2.0中查看碰撞体的3d对象的转换应用,这是我用来渲染对象的代码:voidd

java - 如何检查两个 Box2d 物体是否在任何时候碰撞/重叠?

如何检查2个物体(两个物体都带有1个夹具)是否发生碰撞(重叠)?我知道ContactListener会在碰撞开始和停止时触发一个方法。但是有没有办法在任何给定时刻检查它?喜欢:if(body1.overlaps(body2))...其他细节,其中之一是传感器。这是在libgdx中。 最佳答案 您可以将setContactlistner应用于您的世界对象,例如world.setContactListener(newContactListener(){@OverridepublicvoidbeginContact(Contactcont

java - 自定义 View 和 ImageView 之间的像素完美碰撞检测

我有一个自定义View和一个ImageView。CustomView是一个在屏幕上移动并从墙壁上弹开的球。图像是一个四分之一圆,您可以在触摸时旋转一个圆圈。我正在尝试制作我的游戏,以便当来自CustomView的填充像素与来自ImageView的填充像素交叉路径时检测到碰撞。我遇到的问题是我不知道如何检索每个View中填充像素的位置。这是我的XML代码我的主要ActivitypublicclassMainActivityextendsAppCompatActivity{privatestaticBitmapimageOriginal,imageScaled;privatestaticM

android - 球碰撞 : Balls Stick Together

我按照http://www.emanueleferonato.com/2007/08/19/managing-ball-vs-ball-collision-with-flash/的示例进行操作在Android上创建球碰撞,我的代码组织如下:intN=6;//numberofballsfor(inti=0;i但是,有时我的蛋蛋可能会粘在一起(重叠)。例子中没有出现同样的情况。为什么?我需要为每个球启动一个线程吗? 最佳答案 当两个球以足够的速度碰撞以致在随后的Action循环中它们无法完全分开时,就会出现此问题。我发现处理此问题的最佳

android - Android下OpenGLES 2.0基于像素的碰撞检测问题

这是我在这里的第一篇文章,因此对于任何错误表示歉意。我正在使用OpenGLES2.0和Android2.3开发一个简单的Action游戏。我目前正在开发的游戏框架基于存在于三维世界中的二维Sprite。当然,我的世界实体拥有想象世界中的位置、float[]矩阵形式的旋转值、OpenGL纹理句柄以及Android的位图句柄等信息(我不确定后者是否必要,因为我正在做使用OpenGl机器的光栅化,但为了我的方便,暂时就在那里)。这是简要的背景,现在是有问题的问题。目前我坚持使用基于像素的碰撞检测,因为我不确定我需要采样哪个对象(这里是OGL纹理或Android位图)。我的意思是,我已经尝试过