草庐IT

collision-detection

全部标签

c# - 在运行时更新网格对撞机的替代方案?

我正在开发用户在运行时(一直)生成网格的游戏,因此网格有很多顶点,同时有一个GameObject-玩家需要在它位于生成的区域时触发事件运行时网格。游戏中的相机是3D的,但生成的网格是平面的。在我的附图中,我在顶View中显示了它,以更好地展示它的外观。现在我每隔几秒就更新一次MeshCollider,但是在生成的网格有越来越多的顶点后它非常慢。我相信这是一种非常简单的碰撞方法,所以也许有任何其他方法可以检测到这种情况,而不是附加到动态生成的网格的网格碰撞器?更新#1我知道MeshCollider很慢,不应该在运行时更新。我也知道应该使用像boxcollider这样的原语的想法。但是在这

c# - 将 Enumerable.ToDictionary 与扩展方法一起使用时为 "CLR detected an Invalid Program"

一位同事向我传递了一个有趣的代码示例,该示例在运行时因InvalidProgramException(“CLR检测到无效程序”)而崩溃。这个问题似乎发生在JIT时间,因为它编译得很好,但就在调用带有“违规”行的方法之前抛出异常-我猜是因为它正在被JIT。有问题的行是调用Enumerable.ToDictionary并将Func作为第二个参数传递。如果Func参数完全用lambda指定,它就可以工作;如果指定为方法组,如果失败。这两者一定是等价的吧?这让我(以及发现它的同事!)感到难过-这看起来确实像是一个JIT错误。[编辑:抱歉-我在代码示例中以错误的方式得到了通过和失败的情况-现在已

C# XNA : Optimizing Collision Detection?

我正在开发一个简单的碰撞检测演示,其中仅包含一堆在窗口中弹跳的对象。(目标是查看游戏一次可以处理多少个对象而不会丢帧。)存在重力,所以物体要么移动要么与墙壁碰撞。天真的解决方案是O(n^2):foreachCollidablec1:foreachCollidablec2:checkCollision(c1,c2);这很糟糕。因此,我设置了CollisionCell对象,它维护有关屏幕一部分的信息。这个想法是每个Collidable只需要检查其单元格中的其他对象。对于60像素x60像素的单元格,这产生了近10倍的改进,但我想进一步插入它。分析器显示,代码将50%的时间花在每个单元格用来获

c# - 线与 AABB 矩形相交?

最好不要使用任何类型的循环,因为这将在游戏中使用。我希望将一条线与任意大小的矩形相交。但我也希望返回交点[s]。这是可能的,我已经做了一些谷歌搜索,但仍然没有解决。直线是使用(x1,y1,x2,y2)定义的。矩形也有这两点。 最佳答案 我建议简单地对构成矩形的每条线段(边)进行线段线段相交检查。这是我很久以前写的线段相交检测算法,是从我的一个旧XNA项目中挖掘出来的://a1isline1start,a2isline1end,b1isline2start,b2isline2endstaticboolIntersects(Vector

c# - 如何预测船舶与人体在二维影响范围内的相遇

长期倾听者,第一次来访者。我正在XNA中制作一个业余爱好游戏,它是关于太空中的运输船,类似于海上的容器船。我需要能够预测船舶与行星/卫星之间的相遇gravitationalsphereofinfluence在受限的2D环境中。Ship和planet/moon,简称Body在时间上的位置由keplerianorbitalelements确定。.飞船和车身都围绕同一个引力中心运行。到目前为止,我设计的方法是首先对远拱点和近拱点(距离吸引力中心最远和最近的点)进行一些初步检查,看看是否有可能相遇。在这样的检查之间,如果船舶的轨道是开放的(双曲线,我将抛物线情况近似为双曲线),它可以排除许多不

javascript - 查询/JS : Detect user's scroll attempt without any window overflow to scroll to

我正在制作一个转换网站,虽然我想使用用户的滚动尝试作为转换启动器,但我不希望有一个窗口滚动条。现在,我只是检测到用户使用jquery滚动(我已经使我的窗口大小比用户的滚动条屏幕高1px,尽管这是我试图避免的)使用jquery.scroll(function)方法,并使用它来转换我的页面,但是我想检测用户的滚动尝试,而不必让我的页面溢出一个像素,从而显示滚动条如何做到这一点?我所知道的乱码可能性:将窗口定位在外部包装器内,并将滚动条隐藏在包装器的溢出中。这是一个修补工作,而不是解决方案。它会导致页面内容偏离中心,因为并非所有浏览器都使用相同的滚动条宽度。 最佳

javascript - 检测矩形与圆形的碰撞

实际上,我试图在以下代码中检测矩形与圆的碰撞:-functioncheckCollision(){//checkingoftheCollisionif(ry+rh>cy-radius&&rx+rw>cx-radius&&rx+rw这也是我代码的一部分:-varrx=50;//distancefromthex-axisoftheRect.varry=50;//distancefromthey-axisoftheRect.varrw=80;//widthoftheRectvarrh=30;//HeightoftheRect.//DistancetomovedoftheRect.vardx=

javascript - 渐进式 Web 应用程序 : How to detect and handle when connection is up again

使用PWA,我们可以在离线模式下处理设备连接断开的情况。但是我们如何检测固定网络连接并自动重新加载/重新激活应用程序? 最佳答案 您可以监控offlineandonlineevents,这是widelysupported.此外,您可以通过尝试从目标服务器URL获取HEAD来测试连接性://Testthisbyrunningthecodesnippetbelowandthen//usethe"Offline"checkboxinDevToolsNetworkpanelwindow.addEventListener('online',h

javascript - Chrome 扩展 : how to detect that content script is already loaded into a tab?

我的后台脚本中有以下代码:chrome.tabs.onUpdated.addListener(function(tabId,changeinfo,tab){if(changeinfo.status!=='complete')return;if(!matchesUrlFilters(tab.url))return;chrome.tabs.executeScript(tabId,{file:"jquery-1.7.1.min.js"},function(){chrome.tabs.executeScript(tabId,{file:"enhance.js"});});});但是,在某些情况

javascript - jQuery/JavaScript : Detecting scroll direction - code structure issue

我需要检测用户滚动的方向——“向上”或“向下”。基于此答案中的代码:HowcanIdeterminethedirectionofajQueryscrollevent?我试图将它包装在一个函数中,这样它就更有区别了——但不幸的是,它不起作用。我认为这与我返回值的方式有关,但方向始终是“向上”。作为JavaScript的新手,我在解决这个问题时遇到了问题。代码如下:$(document).ready(function(){'usestrict';varlastScrollTop=0,st,direction;functiondetectDirection(){st=window.pageY