草庐IT

ios - SpriteKit SKPhysicsBody 像一扇门一样在一个方向上碰撞,你只能通过而不能返回

在SpriteKitSKPhysicsBody中,是否可以有一个对象可以通过但不能返回。他们的想法是他们在一个方向上没有碰撞,所以你可以通过而不是返回,就像一扇活板门。 最佳答案 我不太确定某种物理方式是可行的,但您应该能够在游戏运行时弄乱物理体的碰撞位掩码以实现类似的效果。所以你的门处于打开状态,当它检测到玩家正在触摸它时*,它会更改位掩码,以便玩家与其发生碰撞。这应该允许玩家通过一种方式,但不能返回。*实际上,让门检测玩家何时不再通过玩家的物理body接触门,并根据是否测试x或y位置这是活板门,或普通门。如果位置离门足够远,则更

objective-c - iOS中不规则形状的碰撞检测

我正在为iPad开发拖放事件。我有一个矩形PNG图像(请参阅名为obj2的图像)。当我仅将obj1拖动到矩形的黑色部分时,它应该会使用react。if(CGRectIntersectsRect(obj1.frame,obj2.frame)){NSLog(@"hittestdone!!");}此时,这段代码甚至在透明区域上也进行了HitTest。如何防止这种情况发生? 最佳答案 对于像您的具体示例(三角形和圆形)这样简单的东西,DavidRönnqvist提供的链接非常有用。您绝对应该查看它以了解一些可用的工具。但对于一般情况,最好的

ios - SpriteKit - 确定正方形碰撞的一侧

所以对于我正在开发的应用程序,我有两个立方体发生碰撞。我以标准方式检查这个。当它们在我的“didBeginContact”方法中发生碰撞时,该应用程序会告诉我。-(void)didBeginContact:(SKPhysicsContact*)contact{if(contact.bodyA.categoryBitMask==WALL_CATEGORY&&contact.bodyB.categoryBitMask==CHARACTER_CATEGORY){CGPointpoint=contact.contactPoint;}}所以我知道碰撞发生的位置,但因为它是两个正方形,所以它可以在

ios - 如何识别两个 ImageView 在动画移动时的碰撞?

我致力于在两个View发生碰撞时获得警报,这里我使用了两个朝不同方向移动的ImageView,它们将在一个点上发生碰撞。我使用基本的动画代码在各自的方向上移动这些图像。(注意:-不仅像下图一样,但是如果它们在方面发生碰撞,我们需要显示警报) 最佳答案 如果使用标准View动画(例如基于block的animateWithDuration),您可以设置一个CADisplayLink(有点像计时器,但每次显示时调用已更新),然后比较两个View的frame值,看看它们是否相交。不过,诀窍在于,在动画期间,View的frame是“最终目的地

c++ - Cocos2dx 中的像素完美碰撞检测

我正在尝试在Cocos2d-x中移植像素完美碰撞检测,原始版本是为Cocos2D制作的,可以在这里找到:http://www.cocos2d-iphone.org/forums/topic/pixel-perfect-collision-detection-using-color-blending/这是我的Cocos2d-x版本的代码boolCollisionDetection::areTheSpritesColliding(cocos2d::CCSprite*spr1,cocos2d::CCSprite*spr2,boolpp,CCRenderTexture*_rt){boolisC

ios - 在 iOS 9 中设置 UIView 的碰撞边界路径

在iOS9中,Apple将collisionBoundsType引入了UIKit-Dynamics。设置此UIDynamicItemCollisionBoundsTypeRectangle或将其设置为UIDynamicItemCollisionBoundsTypeEllipse时没有问题。下面的屏幕截图来self正在制作的游戏,其中玩家的collisionBoundsType设置为矩形,球设置为椭圆:但是,当我将玩家的collisionBoundsType设置为路径时,我会出现奇怪的行为,如下所示:View看起来比它应该的高,碰撞体在它应该在的地方的右边。目前我将collisionBo

iphone - iOS - 拖放碰撞检测如何检测您选择的项目何时拖过另一个 subview ?

我们正在将拖放功能添加到一个为玩家提供位置的运动场中。位置是使用InterfaceBuilder映射出来的,每个位置都是一个单独的UIImageView。我们希望能够将球员图像从屏幕一侧的板凳位置拖到场上的位置上。我们如何才能最好地检测正在移动的选定玩家何时与现有gamePositionimageView发生碰撞?我们正在寻找一种方法来检测当前位置下是否有View或ImageView。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[[eventallTouches]anyObject

ios - swift:未检测到 Sprite 套件碰撞和位掩码

我对以下sprite工具包代码有疑问。我正在尝试检测飞球何时与一条线发生碰撞。然而,当两者碰撞时什么也没有发生。但是,当球击中场景边缘时,会打印出以下内容:联系人1位掩码1:4294967295位掩码2:4294967295问题1:为什么没有检测到线和球的碰撞?问题2:为什么在边缘碰撞时两个位掩码相同?如果我不知道哪个是哪个,我就无法处理这些尸体。structPhysicsCategory{staticletNone:UInt32=0staticletAll:UInt32=UInt32.maxstaticletBall:UInt32=0b1//1staticletLine:UInt32

ios - 玩家与物体碰撞时如何更改 View Controller ?

当您的播放器与对象发生碰撞时,我无法弄清楚如何更改ViewController。我想弹出一个菜单,显示一个菜单按钮和一个重播按钮,还有一些此时不重要的额外按钮。我不确定其中一些游戏结束菜单是如何制作的,我正在考虑切换ViewController,如果您确切知道它们是如何制作的,请告诉我。这是我目前的代码,它唯一做的就是显示一个标签,表明游戏已经结束,当点击该标签时,游戏将重新开始:importFoundationimportAVFoundationimportSpriteKitclassGameScene:SKScene,SKPhysicsContactDelegate{varmovi

swift - Scenekit Physics - 防止碰撞时旋转

在我的项目中,我有一个节点在触摸开始时向前移动(通过applyForce)。我希望物体只在一个方向(z)上移动并且从不旋转(x)。然而,当物体撞击与其成一定角度的物体时,它会以一定角度弹回,这在正常物理学中是可以预期的。理想情况下,我希望它在碰撞时停止移动而不旋转。我已经将物理体的恢复设置为0以防止弹跳(但它仍然弹跳),并将其角度阻尼设置为1.0以防止旋转(但它仍然旋转。)关于如何防止旋转的任何其他想法物体碰撞?cubeNode.physicsBody?.restitution=0cubeNode.physicsBody?.angularDamping=1.0