我创建了两个具有物理体的Sprite并处理了它们的接触。发生接触时,如何更改其中一个Sprite的物理体和Sprite图像?请参阅下面的相关代码://circleSpritecircleSprite.name=circleSpriteCategoryNamecircleSprite.position=CGPointMake(2*self.frame.size.width/3,2*self.frame.size.height/3)circleSprite.zPosition=10self.addChild(circleSprite)circleSprite.physicsBody=SKP
好吧,我已经研究了好几个小时了,我真的很困惑。我的背景类代码如下:classBackground:SKNode{requiredinit(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemented")}overrideinit(){super.init()buildBackground()}funcbuildBackground(){varsprite:SKSpriteNode=SKSpriteNode(imageNamed:"background_full")sprite.anchorPoint=CGPoi
所以我创建了这款游戏,您必须在其中射击物体。现在,我有一个复制对象爆炸的图像集。我想调用这些图像按顺序出现,这样它看起来就像弹丸击中物体后发生的爆炸。显然,必须在射弹击中物体的确切位置调用图像。有谁知道如何做到这一点?这是一些代码。funcprojectileDidCollideWithMonster(projectile:SKSpriteNode,monster:SKSpriteNode){projectile.removeFromParent()monster.removeFromParent()playerScore=playerScore+1playerScoreUpdate(
我想无限期地旋转单个Sprite,每次点击按钮时,我都希望Sprite以相反的方向旋转(从顺时针到逆时针等来回旋转等)。下面是我的代码:http://pastebin.com/Avj8NjwtclassGameScene:SKScene{varcenter=SKSpriteNode()varbg=SKSpriteNode()varbigCircle=SKSpriteNode()letcounterClockwise=SKAction.rotateByAngle(CGFloat(3.14),duration:1)letclockwise=SKAction.rotateByAngle(CG
如果我试图在屏幕的2个定义区域中生成敌人(顶部和底部中间有一个它们无法生成的区域),我该如何防止它们生成在每个区域的顶部或太靠近每个区域其他。我的sprite在屏幕上相对较小,我在这里找到的唯一建议是创建一个可能的位置数组,每次使用其中一个位置时将其从列表中删除,但首先我不知道那会是什么样子,其次,我有很多可能的位置,因为我正在使用5px高Sprite,我希望他们能够在该区域清除后重生。我选择顶部或底部的方法只是选择一个随机数1或2,这取决于我有2个函数使它们位于顶部或底部。我只需要没有2个对象在一个球的直径范围内生成。有什么想法可以将其整合到我的产卵中吗?编辑://Createyou
我正在尝试使用SpriteKit创建一个场景,其中包含数千个Sprite(~500-2000)。每个Sprite只是一个1x1的白色像素-甚至不需要为它们使用纹理。一次直接向场景中添加这么多Sprite是不可能的(至少我是这么认为的)。在iPhone6上,我最终添加了大约200个Sprite,然后由于内存原因系统结束了添加过程,并且没有添加其余的Sprite。我找到了一个聪明的解决方案BitBlitting所有Sprite都添加到一个节点,然后使用textureFromNode:方法将其“转换”为纹理,然后从该纹理创建一个Sprite,最终将其添加到屏幕。它运行良好,我能够以出色的fp
我正在用Swift构建我的第一个游戏,我想知道如何同时处理多个屏幕Sprite。我的游戏不断地使用addChild将Sprite推到屏幕上,所以同时有很多活跃的Sprite。我意识到我没有合适的方法来同时影响所有这些Sprite——就像我想同时影响所有敌方Sprite的物理属性一样。到目前为止,我在GameScene的开头创建了一个空数组varenemySprites=[enemyType1]()并且一直在appendingSprite实例而不是使用addChild将它们直接绘制到场景中。但是,我不能简单地循环并将它们绘制到屏幕上:forenemyinenemySprites{addC
这是我想要实现的:星星随机生成,调整一个小点图像的大小,看起来“星星在随机位置发光”。几周前我才开始使用Swift,我正在做这个很酷的游戏项目,这可能是一个很棒的功能,我相信其他一些用户也可以使用并回答这个问题。有什么想法吗?编辑:很抱歉成为这样的新手。 最佳答案 考虑使用CAEmitterLayer,已记录here.这很简单。如果您有疑问,我已经将SpriteKit,甚至OpenGL与标准的CoreAnimation结合起来,没有任何问题。 关于ios-Sprite套件/Swift星星
我正在尝试创建一个街机游戏,其中球以恒定速度移动并且不受重力或摩擦力的影响。所以我将球创建为SKShapeNode并将其linearDamping和friction设置为0。我还将游戏场景设置为没有重力。但是在玩的时候,如果球以低角度撞到另一个形状节点(一个圆),它就会减速。球的restitution为1,allowsRotation为false。我通过在游戏开始时施加一个随机方向的脉冲来保持球移动。 最佳答案 这可能不是最理想的修复方法,但您可以将对象每次更新的固定速度设置为特定值,即您的恒定速度。解决此问题的另一种方法是在碰撞委
是否可以在Swift中将两个Sprite作为一个整体移动?假设我们有两个矩形。我们如何确保两个矩形一起移动,就像它们形成一个Sprite一样?现在,我们在同一runBlock内对两个Sprite使用moveTo,为两个Action赋予相同的属性(例如,计时模式、持续时间)。有更好的方法吗? 最佳答案 您可以将两个节点添加为SKNode实例的子节点,然后只需移动父节点:letrectNode1=SKShapeNode(rect:aRect)letrectNode2=SKShapeNode(rect:aRect)letparentNod