我想让SKSpriteNode“意识到”触摸在节点之外。(例如改变颜色)如果可能的话,我想使用tuocesMoved(节点外)我不想以任何其他方式连接它们。这些spries应该是独立的。怎么做?谢谢 最佳答案 显然,您可以实现touchesBegan方法来处理触摸事件:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){iflettouch=touches.first{//...}super.touchesBegan(touches,with:event)}用当前Swi
我试图在touchesBegan方法中读取SKSpriteNode的属性,但该属性不存在。在其他地方创建的对象上的位置。letenemy=enemy(imageName:"enemy.png",force:"12")addChild(enemy)enemy.name="enemy"print(enemy.force)//12overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}lettouchLocation=touch.location(in:s
我不是这个意思:Label.horizontalAlignmentMode=SKLabelNodeHorizontalAlignmentModeCenter或者Label.verticalAlignmentMode= 最佳答案 SKLabelNodes是简单的、几乎不可编辑的文本到位图的非常原始的渲染,并在屏幕上显示出来。它们不是为了解决大的设计问题....所以它们对它们的“框架”没有任何意识。话虽如此...它们是SKNode的子类,它有一个frame属性,但这与您对设计应用程序或页面编写应用程序或其他任何内容中的框架的看法
上下文这个问题与Swift:SKSpriteKit,usingStoryboards,UIViewControllerandUIButtontosetingameparameters?有关并使用相同的M.W.E.(下面的链接)。看看Main.storyboard我们看到以下内容:虽然这个Storyboard允许通过单击从左到右前进:play->(easy/hard)->GameSceneUIViewController->MyUIViewController->GameViewController然后从右到左单击最后一个UIViewController上的UIButton和UILabe
我试图了解如何在SpriteKit中应用着色器,因此我制作了以下来自指南的着色器并进行了一些改编(http://battleofbrothers.com/sirryan/understanding-shaders-in-spritekit):voidmain(){vec4val=texture2D(u_texture,v_tex_coord);if(val.a==1.0){gl_FragColor=vec4(1.0,1.0,1.0,1.0);}else{gl_FragColor=val;}}这个简单着色器的想法是将Sprite节点的每个非透明像素转换为白色。着色器与我的sprite节点
我的申请遇到了一个大问题。当我转换到一个新场景时,我的MainMenu场景没有解除分配。//GameViewControlleroverridefuncviewDidLoad(){super.viewDidLoad()ifletview=self.viewas!SKView?{//LoadtheSKScenefrom'GameScene.sks'ifletscene=MainMenu(fileNamed:"MainMenu"){scene.scaleMode=.aspectFillview.presentScene(scene)}}我点击按钮进入一个新的SKScene,它具有以下代码:
我从很久以前就是一名老程序员,但已经有几(24)年没有做过任何事情了。:).情况发生了一些变化。我发现了一些我正在尝试使用的代码,但这些代码似乎是用早期版本的swift编写的。我已尽我所能将其转换,程序编译无误。但是Sprite节点根本不动。最终,当我在屏幕上拖动它时,我试图让Sprite节点(玩家)跟随我的触摸。当我停止触摸时停止。如果有人有不同的方法来实现相同的目标,那也很好。游戏场景.swiftimportSpriteKitimportGameplayKitclassGameScene:SKScene{lettrackingAgent=GKAgent2D()varplayer=A
我遇到的问题是我添加的图像失真了。我在(1125x2436)为iPhoneX创建了一个像素精确的背景,所以我不必使用.aspectFill和.aspectFit因为我想要一个没有黑边的屏幕。我使用以下代码创建图像:funcanimateDeck(){letchip=SKSpriteNode(imageNamed:"Chip")chip.position=CGPoint(x:300,y:400)chip.zPosition=2chip.setScale(1)gameScene2.addChild(chip)print("test")}有没有办法在不使用.aspectFit或.aspect
我正在使用相当大的SpriteNodes在iOSSwift中移动我的背景(其中包括)。letrunningBar=SKSpriteNode(imageNamed:"Bar")self.addChild(self.scoreText)它是这样移动的:overridefuncupdate(currentTime:NSTimeInterval){//GolfupdateRunningBarPosition()}funcupdateRunningBarPosition(){runningBar.position.y=CGFloat(Double(runningBar.position.y)+c
我正在使用以swift编写的sprite工具包为iOS创建游戏。我在屏幕上有一堆SKSpriteNode可以拖来拖去。它们是各种形状,例如人、苹果、书等。问题是,假设人在苹果前面,但您可以通过人图像(png)中的透明像素看到人后面的苹果。当你去触摸苹果来移动它时,这个人会因为那些透明像素而不是苹果而被选中。如果SKSpriteNode的像素是透明的,我该如何制作不响应触摸的SKSpriteNode? 最佳答案 如果你想选择一个被另一个Sprite部分隐藏的Sprite,你可以使用nodesAtPoint:CGPoint获取用户触摸下