草庐IT

Spritekit

全部标签

swift - SpriteKit - SpriteNode 从不显示

我正在尝试学习SpriteKit。我想在代码中向场景添加一个矩形/正方形;但该项目从未显示;我只想在屏幕上添加一个白色方block,但发现它永远不会添加。在断点处,我注意到didMove()似乎从未被调用过。我做错了什么?classGameScene:SKScene{overridefuncdidMove(toview:SKView){letitem=SKSpriteNode(color:.white,size:CGSize(width:150,height:200))item.position=CGPoint(x:self.size.width/2,y:self.size.heigh

ios - SpriteKit 纹理图集文件夹结构

我读到,当我将图像添加到xcassets文件中时,如果它们被分组,SpriteKit会将它们组合成图集结构。目前我正在我的Mac上创建带有内部文件夹的atlas文件夹,然后我将这个文件夹拖放到我项目的文件夹结构中,然后我将该文件夹从项目文件夹结构拖到xcassets文件中。图集文件夹分解:example.atlas(folder)->ex_0(folder)-->ex_0.png-->ex_0@2x.png-->ex_0@3x.png->ex_1(folder)...andsoon...这是正确的吗?我应该创建子文件夹,还是应该将所有图像都放在atlas文件夹中?需要把图集放到xcas

swift - UILongPressGestureRecognizer 与 SpriteKit

我正在尝试弄清楚如何检测是否按下了shapeNode,特别是使用LongPress手势。请看下面的代码。知道出了什么问题,为什么我看不到“找到了!”消息?classTest:SKScene{letlongPressGesture=UILongPressGestureRecognizer()overridefuncdidMove(toview:SKView){longPressGesture.addTarget(self,action:#selector(GameScene.longPress))self.view?.addGestureRecognizer(longPressGestu

swift - SpriteKit : Change color of part of sprite which is intersecting with another sprite

我有两个SKSpriteNodes,它们是纯色(红色和蓝色)的基本矩形。当用户拖动它们时。我想检查两个节点是否相交并更改与第二个节点相交的第一个节点部分的颜色。我可以通过使用节点的.intersects(..)属性来判断节点是否相交。但我无法弄清楚如何获得实际的交叉区域以及如何为节点的那部分着色使其不同于其原始颜色。 最佳答案 它可能会变得有点古怪,但是在您的节点通过相交检查之后://Note:Iamassumingbothframesareonthesameparentnode,youmayneedtoconvertifparen

ios - Spritekit 改变重力

我一直在尝试通过使用来改变重力overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){self.physicsWorld.gravity=CGVector(dx:0,dy:0)}但这似乎根本没有改变引力。当我在didMove函数中使用相同的代码时,它起作用了。编辑1:这是我的SKSpriteNode的代码:spaceship=SKSpriteNode(imageNamed:"Spaceship")spaceship.position=CGPoint(x:self.frame.width/2,y:self.frame.heigh

swift - 是否可以在 Spritekit 中缩放时间?

我想创建每秒加速的游戏。如果我想在Unity中实现类似的功能,我将只缩放Time.timeScale参数。SpriteKit中有这样的东西吗?还是我应该设置不同的速度和生成参数? 最佳答案 你改变场景和物理世界的speed变量例如让你的游戏速度提高一倍letscaledTime:CGFloat=2scene.speed=scaledTimescene.physicsWorld.speed=scaledTime 关于swift-是否可以在Spritekit中缩放时间?,我们在StackOv

ios - 在 SpriteKit 场景之间传递数据 (Swift)

我一直在关注旧的RayWenderlich教程:https://www.raywenderlich.com/1514-introduction-to-the-sprite-kit-scene-editor并且遇到了问题。我已经多次遇到这个问题,甚至在stackoverflow网站上找到了一个“解决方案”:PassingDataBetweenScenes(SpriteKit)这是与教程相同的代码(因为它是用Swift2编写的,所以有一些调整)。我觉得这是一个非常简单优雅的解决方案,并没有使用NSdefaults等充满代码。这是对新场景的调用,请注意soundToPlay对象:funcga

ios - SpriteKit 位置困惑

在学习SpriteKit的过程中,我制作了一个只有1个按钮的场景。我不明白职位的运作方式。我读到的是0,0是左下角,默认anchor在每个按钮的中间(0.5,0.5)。场景是scene.scaleMode=.AspectFill。如果我写:self.playButton.position=CGPointMake(self.playButton.size.width/2,CGRectGetMidY(self.frame))self.addChild(self.playButton)我明白了下面截图中的内容。如果我将playbutton.position.x设置为self.playbutt

ios - 在 SpriteKit 中使用平移手势识别器

我正在使用SpriteKit开发一款游戏,我想四处移动一些Sprite,但我一次只需要移动一个Sprite。如何在SpriteKit中使用平移手势识别器?我尝试了正常的方式,但出现了一些错误,所以我想也许它有一种特殊的方式。 最佳答案 要在游戏中添加平移手势识别器,请在GameScene的didMove方法中添加手势识别器。然后在您的GameScene文件中添加一个新函数(handlePanFrom,如下所示),该函数将在识别手势时调用。overridefuncdidMove(toview:SKView){//Createthege

ios - 我应该考虑将 SpriteKit 用于非游戏 iOS 应用程序吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我正在考虑将SpriteKit用于非游戏应用程序的可能性,因为我喜欢为我的应用程序提供所有这些很酷的动画、Action、粒子效果等的想法。看起来真的很酷!有人能告诉我为什么这不是一个好主意(如果是这样的话)吗?