jjzjj

swift - Sprite Kit 从未检测到我的碰撞

当玩家body遇到怪物body时,永远不会调用函数funcdidBeginContact(contact:SKPhysicsContact)。我的类实现SKPhysicsContactDelegateclassGameScene:SKScene,SKPhysicsContactDelegate属性collisionBitMask我评论它是因为我读到如果我们不放置它,节点可以与所有节点碰撞我这样添加播放器:bear.position=CGPoint(x:self.frame.width/20,y:self.frame.height/5)bear.size=CGSize(width:sel

swift - 使物体在特定区域时下落速度变慢 - sprite kit

标题说明了一切,我想让某个区域内的所有物体都比其他物体下落得慢,我很清楚我可以改变物理世界的引力,但我只需要一些物体缓慢下落,所以这不是一个选择。另外,这都是为了模拟水中的物体,所以如果有更好的方法来做到这一点,我们将不胜感激。任何帮助将不胜感激,谢谢! 最佳答案 增加physicsBody上的friction或linearDamping/angularDamping以增加对物体的阻力。如果你想让一切都慢下来,你也可以改变你的physicsWorld的speed设置(这将在水下设置中工作)

ios - 使用 Sprite Kit 和 Swift 跳跃

我正在SpriteKit和Swift中创建一个应用程序,我想创建一个在按下屏幕时向上跳跃的Sprite,因此当屏幕被按下得更高时跳得更高。我已经实现了这种效果,但是直到屏幕释放后才应用物理引擎中的重力。因此,跳跃是无限的(呈指数增长),而不是在某一点趋于平稳(如二次方程/抛物线)。如何在Sprite运动过程中主动施加重力?这是我的基本运动代码:overridefuncupdate(_currentTime:TimeInterval){//Calledbeforeeachframeisrendered//touchedistruewhilescreenistouchediftouched

swift - 使用 Swift 在 Sprite Kit 中进行碰撞检测

下面的代码来self目前正在做的一个项目,过去几天我一直在尝试自学Swift语言和SpriteKit,这是我第一次尝试游戏,它是一个FlappyBird类型的游戏.今天我在尝试编写碰撞检测代码时遇到了一个问题。当小鸟接触其中一根管道时,游戏应该暂停。但是,当我运行代码并且小鸟接触到管道时,什么也没有发生,小鸟只是从管道上弹开。我已经阅读了很多教程并观看了很多关于这个主题的视频来尝试解决我的问题并且没有任何运气。我已经在下面的代码中编写了我从上次观看的视频中学到的所有碰撞检测代码。谁能告诉我我做错了什么。任何建议将不胜感激,谢谢。////GameScene.swift//BirdFlap

ios - 如何获取 Sprite Kit 中 UI 触摸的位置?

我想获取触摸在UI中的位置,并使用该位置来确定Sprite运行的方向。例如,如果触摸在屏幕左侧,则用户向左跑,如果触摸在屏幕右侧,则用户向右跑。 最佳答案 尝试这样的事情overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){iflettouch=touches.first{letposition=touch.locationInView(view)print(position)}} 关于ios-如何获取SpriteKi

swift - 如何在 Swift 中删除 Sprite Kit 中的所有节点?

我有一个游戏,与敌人的接触结束了游戏,但是当我在敌人节点上使用removeFromParent时,它只会删除最近的一个。敌人是使用switch语句生成的,以确定他们从哪一侧进入,一旦发生接触并且游戏结束,节点仍然存在会导致更多接触,从而使游戏变得困惑。如果用户没有按下任何东西,并且敌人在游戏结束屏幕期间完成了他们的轨迹,那么问题就不会发生。我可以在游戏结束后以任何方式从屏幕上杀死所有节点吗?我可以在结束屏幕中暂停输入大约3秒钟让操作完成吗?我是否需要在敌人生成时枚举它们以便在游戏结束后将它们一一杀死?我已经坚持了大约3天,希望得到一些帮助。我认为我解释得相当好,但如果我需要显示任何代码

ios - 重启 Sprite - Kit Game Swift

我使用SpriteKit创建了一个简单的2D街机游戏,我正在尝试添加一个计分系统。游戏基本上是一个方形Sprite,它必须跳过各种障碍。所以我想要的是当玩家接触到整个游戏重新开始的对象时。游戏检测到接触(我之前测试过)但是当我移除我所有的child然后运行我的游戏的基本主要功能时,我注意到旧对象不断产生并相互困惑。funcdidBegin(_contact:SKPhysicsContact){if(contact.bodyA.categoryBitMask==PhysicsCategory.Player&&contact.bodyB.categoryBitMask==PhysicsCa

swift - Scene Kit Swift 节点多次旋转

在带有Swift的SceneKit中,我只能进行一次旋转。我想在每次用户点击屏幕时沿z轴旋转相机。funchandleTap(){println("start")SCNTransaction.begin()SCNTransaction.setAnimationDuration(1.0)SCNTransaction.setCompletionBlock(){println("done")}_cameraNode.rotation=SCNVector4Make(0,0,1,CFloat(-M_PI_4)*0.5)SCNTransaction.commit()}但是,我想在每次触摸时保持旋转

ios - OBD2Kit Swift 示例无法进行类型转换,一直为零

由于没有使用OBD2Kit和Swift的示例代码,我将其fork到https://github.com/YannisDC/OBD2Kit中并将其用作pod。我翻译了一些OBJ-C示例代码,但似乎无法将FLWiFiScanTool向下转换为ELM327类型。为什么我总是得到零?importUIKitimportOBD2KitclassViewController:UIViewController,FLScanToolDelegate{@IBOutletweakvarhostIpAddress:UITextField!varscanTool:ELM327!@IBOutletweakvars

swift - 角落里的 Sprite Kit 标签

在场景的右上角或左上角添加标签的最佳方法是什么?它应该是跨设备的。letheight=self.frame.size.heightletwidth=self.frame.size.widthlabel.fontSize=50label.verticalAlignmentMode=.Toplabel.horizontalAlignmentMode=.Leftlabel.position=CGPoint(x:2,y:height-2)但它不会在角落里。怎么了? 最佳答案 在SpriteKit中,场景坐标的默认原点在屏幕的左下角。因此,如