草庐IT

Sprite-Kit

全部标签

ios - SpriteKit : what causes touchesMoved to stop getting called?

GameScene.swift中的touchesMoved在几次调用后不会被调用,通常是三四次,即使我们一直在屏幕上滑动手指(即,从不将手指从屏幕上移开)。我们创建了一个简单的项目,只有打印touchesMoved的代码,没有问题。换句话说,touchesMoved按预期工作,在我们滑动手指时继续被调用。显然,项目中有一些代码/配置导致touchesMoved在几次调用后停止被调用(并且没有调用touchesEnd)。什么事情会导致这种情况?touchesMoved未被调用的代码:overridefunctouchesMoved(touches:NSSet,withEventevent

ios - swift 和 spritekit 的 Sprite 位置

提前致谢。我通过使用在屏幕中间设置了一个圆圈circle=SKShapeNode(circleOfRadius:100)//SizeofCirclecircle.position=CGPointMake(frame.midX,frame.midY)//MiddleofScreencircle.strokeColor=SKColor.whiteColor()circle.glowWidth=1.0circle.fillColor=SKColor.orangeColor()self.addChild(circle)我想做的是,当用户点击屏幕时,一个Sprite会从随机位置出现,并向屏幕中心

swift - 如何在 Swift、SpriteKit 中创建弹弓机制

我正在尝试创建一个Slingshot机制,在该机制中我旋转一个节点,最后附加一个对象。弹弓以触摸和按住交互开始旋转物体,并在释放时发射附加在末端的物体-可以看到类似的效果here这是我的有效轮换代码。不确定如何开始连接和吊索部分。vartouchingScreen=falseoverridefunctouchesBegan(touches:Set,withEventevent:UIEvent){super.touchesBegan(touches,withEvent:event)touchingScreen=trueprintln("ScreenTouched")}overridefu

swift - 生成一个敌人

在我的游戏中,我希望每10秒生成一个敌人。我试图通过在GameViewController中编写varsecondEnemyTimer=NSTimer.scheduledTimerWithTimeInterval(10.0,target:self,selector:"secondEnemyFunction",userInfo:nil,repeats:false)在viewWillLayoutSubviews方法中。然后在secondEnemyFunction中我写:letskView=self.viewas!SKViewletgameScene=GameScene(size:skVie

swift - 如何在 SpriteKit 的自上而下 View 中检测游戏结束无尽的 runner 游戏

我正在使用SwiftSpriteKit开发游戏。一切都很顺利,但唯一让我害怕的是检测到游戏结束。我的游戏如下图所示,它是一款自上而下的游戏。棕色是木头,蓝色(看起来像水)是河流。如果玩家踩到河流而不是木头,那么游戏就结束了。问题是我怎样才能检测到它踏上了河流。我尝试使用SpriteKitContact,它是funcdidBeginContact。但它只在启动时被调用,之后它不再调用,即使我踩到它。 最佳答案 我想到了两种可能的方法。1。在您的touchesBegan中,您会执行此操作。NOTE:Thiswillnotworkifth

xcode - 如何快速制作静音和取消静音按钮?

我正在尝试在spritekitswift中设置静音和取消静音。我可以将背景音乐静音,但无法取消静音。下面是一些代码供引用:varbackgroundMusicPlayer=AVAudioPlayer()varspeaker=SKSpriteNode(imageNamed:"speaker")varnospeaker=SKSpriteNode(imageNamed:"nospeaker")overridefunctouchesBegan(touches:Set,withEventevent:UIEvent)fortouchin(touchesas!Set){letlocation=tou

ios - 单击 iAd 时运行功能(暂停菜单) SpriteKit Swift

我在我的SpriteKit/Swift游戏中实现了iAds。当用户点击广告时,我无法找到如何在GameScene中运行功能(我有一个可以调出暂停菜单的功能),而不仅仅是暂停场景。我该如何做到这一点?谢谢。编辑:这是我的GameViewController。importUIKitimportSpriteKitimportiAdclassGameViewController:UIViewController,ADBannerViewDelegate{varSH=UIScreen.mainScreen().bounds.heightlettransition=SKTransition.fad

ios - 不知道如何将触摸作为单个实体处理

我有一个iPad游戏,两个不同的玩家可以同时与环境互动。当两个人同时在同一台设备上玩游戏时,我遇到了一个我不知道如何解决的问题。我希望游戏以下一种方式运行:当玩家触摸一个sprite并在另一个sprite中完成触摸时,应用程序必须能够知道它是同一位玩家做的。我的应用程序现在执行以下操作:假设player1触摸了一个Sprite。然后,player2触碰另一个。他们都没有完成触摸。现在,玩家1在第三个Sprite中结束了他的触摸。但是,使用我现在拥有的代码,当我需要传递第一个和第三个Sprite时,它会用第二个和第三个Sprite调用函数“action”,我吓坏了很少,因为我不知道该怎么

swift - 如何使物理脉冲在所有设备上移动相同百分比的屏幕

所以我想做的是让物理脉冲似乎对所有设备都有相同的效果。所以基本上,如果我能想出一种方法来执行以下操作,我就能够实现我的目标。首先让我们通过消除所有引力来简化事情。基本上,无论屏幕尺寸有多大,我都需要计算让屏幕最左侧的物理对象在相同的时间内到达屏幕最右侧所需的冲量。我问的原因是我正在制作一个基于滑动幅度和角度的运动系统。但是我希望它在每台设备上都以相同的方式播放。我正在计算幅度(距离(以虚拟点为单位))/(做手势所花费的时间)然后我将其用裁剪理脉冲。这是我正在使用的代码:funcJump(angle:CGFloat,strength:CGFloat){if(Ready==true){va

xcode - 游戏套件 : Fine tune control of GKAgent

我正在使用spritekit测试gameplaykit。我已经向我的GKEntity添加了一个GKAgent并且我通过在触摸位置创建一个endAgent让我的实体寻找我的触摸。这很好用。代理人自然地移动并追逐我的触摸。但是,我有两个问题..当代理到达目的地时如何停止代理。智能体将永远绕圈子,试图准确地落在该点上。我已经尝试过agent.behavior.removeAllGoals()我认为这会立即停止代理,因为它没有目标..但没有任何反应。第二个问题是如何微调运动。代理人非常适合导弹追逐飞机之类的事情。问题是它在到达目标时减速。运动模式是如此具体。我试过使用属性mass、maxSpe