草庐IT

ios - 在 SpriteKit 项目中使用 Sprite 图集、纹理图集或 Assets 目录

Apple推荐的在SpriteKit项目中组织Assets的方式在引擎的历史进程中发生了很大的变化。旧方法中也存在错误,这些错误阻碍了这些实践和所需变通办法的实现。SO上的旧Q&A充满了过时的信息,或者被关于处理不再存在的错误的信息所混淆。需要有一篇关于SO的帖子,告诉您如何实现该问题的当前解决方案,而不会因讨论过时的工作流或已解决的错误而分心。所以问题是:如何在SpriteKit项目中组织我的图像资源?一些Apple文档说到usetextureatlasestoimproveperformance.但是SKTextureAtlasclassreference描述了创建纹理图集和Spr

swift - 如何平滑移动 Sprite 节点

我目前正在使用此代码移动火箭:letlocation=touch.locationInNode(self)rocket.position.y=location.y我想知道使用SKActionTimingMode.EaseOut是否更容易,如果是这样,我如何使用SKAction让火箭沿Y轴上下移动。有没有办法用我已经在使用的代码顺利移动节点?该应用已设置为横向。 最佳答案 以下是使用SKAction的方法。我认为使用SKAction会更流畅。或者,您也可以将物理体附加到节点,并通过计算滑动的力来调用applyForce,或者如果它是触

swift - 为什么有多个碰撞调用 Sprite Kit Swift

我正在构建一个带有碰撞的iOSswift游戏。英雄正被来自屏幕右侧的小星星轰炸。每次星星击中英雄时,都会迭代分数并移除星星。但是,分数增加了不止一分。节点设置:varstar=SKSpriteNode(imageNamed:"star")star.size=CGSizeMake(30,30)star.zPosition=10varstarPhysicsRect=CGRectMake(star.position.x-star.frame.size.width/2,star.position.y-star.frame.size.width/2,star.frame.size.width,s

swift - 创建多个略有变化的 Sprite 节点?

我有一个显示多个成就的游戏菜单,这些成就被定义为SKSpriteNodes,其中有18个,它们在位置上只有轻微的变化,这里是代码片段:Achievement1=SKSpriteNode(color:SKColor.whiteColor(),size:CGSize(width:100,height:100))Achievement1.position=CGPointMake(-120,100)page1ScrollView.addChild(Achievement1)Achievement2=SKSpriteNode(color:SKColor.whiteColor(),size:CGS

swift - Sprite 子类检测触摸,尽管实际上触摸了空白空间

我正在对节点进行子类化以用于触摸检测。我有一个盒子parent,它旁边有一个线子,灰色空间只是空白:问题是当我点击灰色区域时,它会记录为对距离很远的框的触摸。这是我展示问题的代码,以及我糟糕的解决方法……我做了两组盒子,第一组是显示问题的,第二组是解决方法的:importSpriteKitclassGameScene:SKScene{enumsizez{staticletbox=CGSize(width:50,height:35),line=CGSize(width:200,height:10)}classBox:SKSpriteNode{overridefunctouchesBega

ios - 使用 arc4Random 设置 Sprite 垂直位置的限制

我正在构建我的第一个2D平台游戏,我希望使用arc4Random对每隔几秒生成的对象设置一些限制。目前,一只鸟会从右向左飞过屏幕,大多数时候这只鸟似乎在空中,但有时这只鸟在地面上看起来很奇怪。我想做的是设置生成鸟类的最小和最大高度,这可能吗?这里是一些代码...funcspawnBird(){varbirdP=SKNode()birdP.position=CGPointMake(self.frame.size.width+birdTexture1.size().width*2,0);birdP.zPosition=-10;varheight=UInt32(self.frame.size

ios - 使用 SKAction.scale 改变 Sprite 的比例

尝试让Sprite“PlayButton”的比例继续放大和缩小以提示用户触摸它。似乎无法正常工作。这是菜单类:importSpriteKitclassMenuScene:SKScene{letScalePBup=SKAction.scaleX(to:300,y:300,duration:10)letScalePBdown=SKAction.scaleX(to:-300,y:-300,duration:10)//MARK:-PrivateInstanceVariablesprivateletlogo=GameLogo()privatelettitle=GameTitle()private

ios - 如何使用swift在sprite kit中旋转sprite

您好,我的问题是关于两个Sprite的旋转。当我触摸屏幕的右半部分时,旋转开始并移动sprite2和sprite3。如果我触摸屏幕的左半部分,旋转就会停止,因为速度-速度=0。如果我再次触摸屏幕的左半部分,旋转就会开始。但是,如果我触摸与当前旋转方向对应的屏幕的一半,速度就会重复。我希望能够改变旋转方向,但速度保持不变。演示问题的视频:http://youtu.be/HxLwl1QZiNMimportSpriteKitclassGameScene:SKScene{letsprite=SKSpriteNode(imageNamed:"bWhite")letsprite2=SKSprite

ios - 在 Sprite Kit 中创建在屏幕上保持静态的 HUD

在本教程的跳跃游戏中,我正在尝试创建一个静态HUD,它在整个游戏过程中始终位于屏幕顶部。我还是Swift的新手,所以也许这是一个我不太容易看到的约定:http://www.raywenderlich.com/87232/make-game-like-mega-jump-sprite-kit-swift-part-2在教程中,他将HUD放在overrideinit(size:CGSize)函数中:requiredinit?(coderaDecoder:NSCoder){super.init(coder:aDecoder)}overrideinit(size:CGSize){super.i

ios - Sprite Kit 和 Swift,随着时间的推移增加节点的速度?

我有一堵墙,它会生成然后向左移动(拉动),我很好奇我是否能以某种方式让它变得越来越快。这可能吗?这是我用来拉“墙”的代码:funcstartMoving(){letmoveLeft=SKAction.moveByX(-300,y:0,duration:0.35)runAction(SKAction.repeatActionForever(moveLeft))}这就是生成墙的原因,以防您需要知道:vargenerationTimer:NSTimer?funcstartGeneratingWallsEvery(seconds:NSTimeInterval){generationTimer=