草庐IT

ios - 在 SpriteKit 中触摸移动的 Sprite

我正在创建一个涉及触摸下落目标的SpriteKit游戏。目前,目标很难在第一次触摸时捕捉到(touchesBegan:),而且似乎只能通过提前放置手指来触摸(touchesMoved:)。有没有一种技术可以抑制触摸或加宽触摸位置以使第一次触摸更有效?我的代码现在看起来像这样:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}letpositionInScene=touch.location(in:self)print(positionInSce

sprite-kit - SpriteKit 将 SKShapeNode 放在场景的中心

我想在场景的中心画一个椭圆letcenter=(view.scene.position.x,view.scene.position.y)letsize=(view.scene.frame.size.width*0.7,view.scene.frame.size.height*0.7)letellipse=SKShapeNode(ellipseInRect:CGRectMake(center.0,center.1,size.0,size.1))ellipse.strokeColor=UIColor.blackColor()ellipse.position=CGPointMake(cent

ios - Swift + Sprite 套件触摸检测

我只是想知道如何从场景中移除SKSprite节点。这是我目前所拥有的:overridefunctouchesBegan(touches:NSSet,withEventevent:UIEvent){/*Calledwhenatouchbegins*/fortouch:AnyObjectintouches{letlocation=(touchasUITouch).locationInNode(self)iflettheName=self.nodeAtPoint(location).name{iftheName=="monster"{monster!.removeFromParent()}}

ios - Sprite Kit 中的 iCarousel

解释我正在尝试构建一个类似于CrossyRoad的角色选择菜单(如您所见here)。所以我找到了这个iCarousel,这对我有帮助,但我读到的所有内容都在谈论如何将它实现到ViewController,这不是我的情况。我正在使用GameScene但我没有发现任何关于它的内容。无论如何我可以将它实现到我的游戏中吗?甚至另一种类似于我上面提到的角色选择菜单的效果?尝试(beyowulf)可以下载here.GameScene.swiftimportSpriteKitclassGameScene:SKScene{varshow=SKSpriteNode()varhide=SKSpriteNo

swift - Swift 4 中的 Sprite Kit 动画和纹理图集

目前正在开发一个应用程序,该应用程序需要通过一系列图像制作一些动画。我在网上做了很多关于如何解决我的问题的研究,但没有遇到任何关于Swift4的问题。下面是我的代码,它显示了我运行应用程序时循环中的第一张图片,但根本没有动画。一切看起来都很好,我没有发现我的代码有问题,但也许你们可以提供帮助。提前欣赏!letatlas=SKTextureAtlas(named:“mypic”)varTextureArray=[SKTexture]()varperson=SKSpriteNode()overridefuncdidMove(toview:SKView){person=SKSpriteNod

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