Tag: 碰撞检测

在Sprite Kit中执行你自己的物理计算

我试图使用Sprite Kit来设置一些弹性碰撞。 在Sprite Kit物理碰撞问题中我问到了多个物体彼此靠近的情况 我很困惑碰撞的时机。 我试图在-didBeginContact: delegate方法中设置dynamic为NO ,计算最终速度,然后在-didEndContact:将dynamic设置为YES ,然后正确设置速度。 我希望它在碰撞之外是dynamic的原因是因为我想要摩擦/重力等等。 订单/逻辑有什么问题? 我看着-didSimulatePhysics方法,但它似乎不是要走的路。

碰撞检测的圈数很多

检查大量圈子的碰撞的最佳方法是什么? 检测两个圆之间的碰撞非常容易,但是如果我们检查每个组合,那么它就是O(n 2 ) ,这绝对不是最优解。 我们可以假设圆对象具有以下属性: 坐标 半径 速度 方向 速度是不变的,但方向可以改变。 我已经提出了两个解决scheme,但也许有一些更好的解决scheme。 解决scheme1 把整个空间分成重叠的方格,只检查同一方格中的圆。 方格需要重叠,所以当一个圆从一个方格移动到另一个方格时不会有问题。 解决scheme2 开始时需要计算每对圆之间的距离。 如果距离很小,那么这些对存储在一个列表中,每次更新都需要检查是否有冲突。 如果距离很大,那么在更新之后我们会存储一个碰撞(可以计算出来,因为我们知道距离和速度)。 它需要存储在某种优先级队列中。 之前计算的更新距离数量需要再次检查后,然后我们执行相同的程序 – 把它放在列表中或再次在优先级队列中。 马克·拜尔斯问题的答案 这是一款游戏吗? 这是为了模拟,但它也可以被视为一个游戏 你是否想每n毫秒重新计算一次新的位置,此时还要检查碰撞情况? 是的,更新之间的时间是恒定的。 你想find发生第一次/每次碰撞的时间? 不,我想find每一个碰撞,并发生“事情”发生。 准确度有多重要? 这取决于你的准确性是什么。 我需要检测所有的碰撞。 如果很小的快速移动的圈子偶尔可以相互传递,这是一个大问题吗? 可以认为速度很小,不会发生。

3D碰撞/物体检测如何工作?

我一直在想这个。 在像GTA那样有数千个物品的游戏中,一旦你在健康包里,游戏是如何知道的? 每个对象都不可能有一个事件监听器? 迭代也不好? 我只是想知道如何实际完成。

IOS:validation一个点是否在一个矩形内

有没有办法来validationCGPoint是否在一个特定的CGRect 。 例如:我拖动一个UIImageView ,我想validation它的中心点CGPoint是否在另一个UIImageView内,我该怎么办?

Java球对象不会像它应该绘制的矩形一样反弹。

对不起,这个可怕的标题。 Java applet的目的就是这样:一个球在屏幕上跳动。 这个球的大小和速度可以通过滚动条来改变。 用户可以在屏幕上按下并拖动鼠标来绘制矩形。 球也会反弹离开这些矩形。 这些矩形的边界存储在一个向量中。 当一个矩形被点击时,它(和那个点上的所有其他矩形)将从vector(和屏幕)中被移除。 我遇到的问题有两个方面:一是当我点击一个矩形去除它时,它不会被删除,但是可以在以后解决。 二:球不像它应该反弹的矩形。 当我在与球相同的行或列中绘制矩形时,球会在一个小矩形内弹起,就像卡住了一样。 这里是我的代码来检测球是否在applet或任何矩形的边界: public void move() { //if it will hit the right or left boundary, flip the x direction and set it if (loc.x+size >= boundx || loc.x <= 0) { dx *= -1; } //if it will hit the top or bottom boundray, flip […]

检查形状与JavaFX的碰撞

我正在尝试做一些碰撞检测。 对于这个testing,我使用简单的矩形Shape ,并检查它们的Bound ,来判断它们是否相互碰撞。 虽然检测不能按预期工作。 我试图用不同的方式来移动对象(relocate,setLayoutX,Y)和不同的绑定检查(boundsInLocal,boundsInParrent等),但我仍然无法得到这个工作。 正如你所看到的,检测只适用于一个对象,即使你有三个对象只有一个检测到碰撞。 这是一些演示问题的工作代码: import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Cursor; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import java.util.ArrayList; public class CollisionTester extends Application { private ArrayList<Rectangle> rectangleArrayList; public static void main(String[] args) { launch(args); } public void start(Stage primaryStage) { primaryStage.setTitle("The test"); Group root = […]

提高交错列等距网格上点击检测的性能

我正在研究一个等距游戏引擎,并且已经创build了一个像素完美点击检测algorithm。 访问该项目,并注意点击检测能够检测到磁贴的哪个边缘被点击。 它也检查y指数点击最​​前面的瓷砖。 我目前的algorithm解释: 等轴网格由100 * 65像素的平铺图像组成。 TileW=100, TileL=50, tileH=15 地图由三维数组map[z][y][x] 。 平铺中心点(x,y)计算如下: //x, y, z are the position of the tile if(y%2===0) { x-=-0.5; } //To accommodate the offset found in even rows this.centerX = (x*tileW) + (tileW/2); this.centerY = (y*tileL) – y*((tileL)/2) + ((tileL)/2) + (tileH/2) – (z*tileH); 确定鼠标是否位于贴图上给定区域内的原型函数: Tile.prototype.allContainsMouse = function() { […]

HashTables如何处理冲突?

我听说在我的学位课程中,如果新的密钥条目与另一个条目相冲突,则HashTable会将新条目放入“下一个可用”存储桶中。 如果在使用碰撞键调用一个背面时发生碰撞, HashTable将如何返回正确的值? 我假设Keys是Stringtypes,并且hashCode()返回通过说Java产生的默认值。 如果我实现自己的散列函数并将其用作查找表(即HashMap或Dictionary )的一部分,那么处理冲突的策略是什么? 我甚至看到有关素数的笔记! Googlesearch中的信息不太清楚。

圆圈碰撞

我要开发一个两个球(圆圈)相撞的二维球类游戏。 现在我有确定碰撞点的问题(实际上,确定它们是否在X轴/ Y轴上碰撞)。 我有一个想法,当两个球的y坐标之间的差异大于x坐标差时,他们碰撞他们的y轴,否则,他们碰撞在他们的x轴。 我的想法是否正确? 我在游戏中实现了这个东西。 通常它运作良好,但有时它失败。 谁能告诉我,我的想法是对的? 如果没有,那么为什么,还有更好的办法? 通过x轴的碰撞,我的意思是圆的第1,第4,第5或第8个八分圆,y轴表示圆的第2,3,6或7个八分圆。 提前致谢!

Javascript:碰撞检测

有人能帮我理解碰撞检测如何在JS中工作吗? 我不能使用jQuery或gameQuery – 已经使用原型 – 所以,我正在寻找一些非常简单的东西。 不要求完整的解决scheme,只要指向正确的方向。 假设有: <div id="ball"></div> and <div id="someobject0"></div> 现在球正在移动(任何方向)。 “Someobject”(0-X)已经预先定义好了,其中有20-60个像这样随机定位: #someobject {position: absolute; top: RNDpx; left: RNDpx;} 我可以用“someobject(X)”的位置创build一个数组,并在“球”正在移动时testing碰撞…类似于: for(var c=0; c<objposArray.length; c++){ …….. and code to check ball's current position vs all objects one by one…. } 但我想这将是一个“noob”解决scheme,它看起来很慢。 有更好的吗?