jjzjj

Collision

全部标签

ios - 与顶部和底部碰撞但不与侧面碰撞? (iOS 8)

我制作了一个球从屏幕上弹起的简单效果。它只适用于顶部和底部边缘,但我不知道为什么。此外,当我在iOS7SpriteKit模板中的initwithsize方法中尝试这段代码时,它起作用了。这是错误还是什么?#import"GameScene.h"@implementationGameScene-(void)didMoveToView:(SKView*)view{self.backgroundColor=[SKColorwhiteColor];SKSpriteNode*ball=[SKSpriteNodespriteNodeWithImageNamed:@"ball"];ball.posi

ios - Sprite Kit 的 "Category Mask"和 "Collision Mask"是什么?

我遵循SpriteKit指南,在场景编辑器中它要求我将类别mask设置为32,将碰撞mask设置为11。这些数字有什么关系? 最佳答案 Category位掩码告诉Sprite-Kit这是什么类型的对象。Collision位掩码告诉SpriteKit这个对象是什么对象碰撞(即会撞击并弹开)。ContactTest位掩码告诉Sprite-Kit你想要什么接触收到通知,即当此对象接触到另一个对象时。碰撞由Sprite-Kit游戏引擎自动处理;联系人由您的代码处理-当发生您感兴趣的联系人时,您的代码(didBeginContact'对于Sw

ios - 错误 ITMS-90685 : "CFBundleIdentifier Collision. There is more than one bundle"

当我尝试将我的应用提交到应用商店时,出现错误:ERRORITMS-90685:"CFBundleIdentifierCollision.ThereismorethanonebundlewiththeCFBundleIdentifiervaluecom.companyname.projectNameundertheapplicationProjectName.app"谁能帮帮我? 最佳答案 原因如果您的HostApp嵌入了一个框架,而该框架也嵌入了一些框架,而这些框架也嵌入了HostApp,就会发生这种情况。例如,宿主H嵌入框架F1和

ios - 在 SpriteKit 中更改 contactTestBitMask 后检测接触

我目前正在使用SpriteKit在Swift中创建一个2D游戏,但我在碰撞检测方面遇到了问题。假设我在游戏中有SKSpriteNodeFoo。然后假设SKSpriteNodeBar在Foo之上生成,但没有contactTestBitMask来触发接触。然后在片刻之后(比如说1秒)Bar更改其contactTestBitMask以检测与Foo的接触。目前,Foo必须实际移动一点或从Bar下面移出并返回到它以检测与它的接触。我需要Bar在更改其contactTestBitMask时立即触发与Foo的联系。也许有一种不同的方法可以在不改变contactTestBitMask的情况下做到这一点

swift - swift hashable 协议(protocol)哈希函数是否需要返回唯一值?

我正在学习iOSswift俄罗斯方block教程*,并已完成并开始工作。但我对一个特定方面感到困惑-Hashable协议(protocol)。函数:classBlock:Hashable,Printable{[...]varhashValue:Int{returnself.column^self.row}行为0..9,列为0..20。注释说这个函数“我们返回我们的行和列属性的异或,为每个block生成一个唯一的整数。”。但我的理解是0^1将与1^0相同,等等......我想知道如果Hash函数不是这样唯一的,或者碰撞通常是可以的,这是否是一个问题?正如我所说,该应用程序似乎运行良好..

swift - 我的节点没有发生碰撞,我的代码中是否遗漏了什么?

我遵循了许多关于碰撞的不同教程并创建了我自己的游戏,我想在其中声明硬币和玩家之间的碰撞。但是,在实现碰撞代码后,我的两个节点没有对碰撞做出响应...有人可以帮我吗?importSpriteKitimportGameplayKit//CollisioncategoriesenumColliderType:UInt32{caseplayerCase=1casecoinCase=2caseborderCase=3}classGameScene:SKScene,SKPhysicsContactDelegate{letplayer=SKSpriteNode(imageNamed:"block")

swift - SKSpriteNode 碰撞识别速度不够快

我有一个SKSpriteNode(“称为球”),它是通过向其physicsBody施加脉冲来启动的。在我的didBeginContact方法中,我检查节点是否与障碍物发生碰撞。如果是这样,我希望SKSpriteNode立即停止移动(例如,“坚持”到它碰撞的对象)。问题是,当意识到球已经与障碍物发生碰撞并且球的速度设置为0时,球已经反弹,而不是碰到它碰撞的障碍物,现在是30像素左右离开funcdidBeginContact(contact:SKPhysicsContact){ballInMidAir=falsevarfirstBody:SKPhysicsBody=contact.body

xcode - 碰撞时将节点粘到另一个节点

我正在制作一个iOS游戏(swiftxcode)。有一辆不断移动的汽车(SKAction)和一个可以用滑动手势移动的播放器。很好,但现在我希望如果玩家触摸汽车,它会随着汽车移动(它会粘在汽车上)现在我该怎么做呢?我尝试了很多东西,但没有一个能顺利地工作..我试过if(CGRectIntersectsRect(car.frame,player.frame)){car.position=player.position}这可行,但玩家会被踢到汽车中间,我不希望这样。我想要的是,如果玩家接触到汽车底部,它就会粘在汽车底部。我该怎么做?对于碰撞检测,我也尝试使用:funcdidBeginCont

swift - didBeginContact 未调用

我正在制作一个需要我的spriteNodes发生碰撞的游戏。我遵循了一个教程,但它对我不起作用。当我运行我的游戏并且两个对象发生碰撞时,输出监视器中没有println("beginContact"),因此没有调用didBeginContact函数。overrideinit(size:CGSize){super.init(size:size)player.planeSprite=SKSpriteNode(imageNamed:"plane5")player.planeSprite.physicsBody?=SKPhysicsBody(rectangleOfSize:player.plan

ios - Swift 和 Spawning 对象的评分方法

我似乎无法弄清楚如何让我的评分发挥作用......游戏的概念是小鸟会从右手边进来,当它们到达左手边时,我希望我的分数增加1。在Obj_c中我会做类似的事情if(bird.enter.x但在swiftspritekit中我不确定如何去做......我遇到的另一个问题是我必须使用计时器来让我的“敌人鸟”产卵(鸟从右到左)(计时器每1秒运行一次生成敌人函数)但是在Obj_c中我会在不同的x坐标处生成3/4,就像之前的代码一样,当鸟CGPointMake()回到屏幕的另一边,这样他们就在一个恒定的循环中有什么快速执行此操作的想法吗?我的代码如下:布局有点奇怪:importSpriteKitcl