我刚刚学习SpriteKit和Objective-C,我想知道为什么我的View原点在屏幕之外。我刚刚在xCode6中创建了一个默认的SpriteKit项目,并简单地添加了一个NSLog来显示触摸的当前位置。控制台上的输出告诉我,对于x坐标,这个位置在260.0上,而不是在0.0附近。在场景实现文件中描述我的问题的示例:当我添加一个带有背景图像的SKSpriteNode并将其定位在屏幕的原点时:-(void)didMoveToView:(SKView*)view{...SKSpriteNode*background=[SKSpriteNodespriteNodeWithImageNam
为了定义一个矩形边,这是我写的代码:-(void)didMoveToView:(SKView*)view{/*Setupyourscenehere*/SKNode*edge=[SKNodenode];edge.physicsBody=[SKPhysicsBodybodyWithEdgeLoopFromRect:self.frame];[selfaddChild:edge];}我希望这个边缘包裹整个屏幕,即底部、顶部、左侧和右侧的边框。我希望我添加到场景中的对象在所有边界上都能反弹。但是,这些物体只会在边缘的底部和顶部反弹。P.S:相同的代码,大约一年前工作,当时SpriteKitGam
我已经设法用我的随机CGPoints数组画了一条线。-(void)drawLine{SKShapeNode*mainLine=[SKShapeNodenode];CGMutablePathRefpathToDraw=CGPathCreateMutable();CGPathMoveToPoint(pathToDraw,NULL,0,0);for(inti;i如您所见,我正在绘制一个SKShapeNode。我的目标是检查我的SKSpriteNode与我的线的碰撞。但当然,这个形状节点构成了一个包含我的线的所有点的框架,在这种情况下,我的ShapeNode遍布我的视野。我的SpriteNod
我需要你的建议,我是SpriteKit的新手,我需要制作动画片段。我有3个解决方案来实现它,但我需要对CPU更好且成本更低的建议。1个解决方案:每个条纹-带动画和纹理的SKSpriteNode2解决方案:背景视频3解决方案:每个条纹-带动画的SKShapeNode 最佳答案 这是一个简单的任务,您不需要构建图集动画或使用SKShapeNode,您可以使用SKSpriteNode作为此代码:varbar=SKSpriteNode(color:SKColor.greenColor(),size:CGSizeMake(40,200))ba
我遇到了一个问题,如果有人能帮忙,我真的很高兴,基本上我有一个由两个声音组成的序列,这些声音被设置为永远重复。但是,我想要它以便触发声音停止。我真正需要知道的是:在Swift3SpriteKit中,我使用什么代码来无限期地停止或暂停重复的声音序列?编辑:我正在使用SKActions来播放声音,现在问题已经解决了。 最佳答案 始终在堆栈溢出时显示一些代码,对于您当前的问题,我们只能进行猜测。如果您使用SKActions来播放声音,您可以为重复Action指定一个键,稍后再删除该Action。像这样创建keyclassGameScene
我找不到使用thissortofimages的方法作为我的游戏的瓷砖集。有没有办法做到这一点,或者我应该一个一个地添加我想要的所有对象?我尝试添加一个新的GridTileSet,然后添加一个SingleTileGroup,但如果我尝试在TileMapNode中使用它,它将使用所有图像作为一个block的纹理。我不知道是否可行,但如果你能帮助我,我将不胜感激。 最佳答案 不幸的是,您必须手动将图像分成较小的图像。您想要的功能根本不存在。 关于ios-在Spritekit中使用图像作为til
我在spritekit中有一个3D星星,它沿着z轴旋转,所以它看起来像在旋转。但是我不能让它旋转。该文件是一个.dae文件,我已将其导入到我的项目中。星星本身加载但没有任何反应。有人知道吗?importSpriteKitoverridefuncdidMove(toview:SKView){letstarScene=SCNScene.init(named:"star.dae")letstar3d=SK3DNode(viewportSize:CGSize(width:330,height:330))star3d.position=CGPoint(x:self.frame.midX,y:se
我目前是第一次使用Spritekit和Swift3制作游戏;它是一款2D横向卷轴无尽跑酷游戏。我试图让某些节点随我的相机移动,但问题是它们将按程序生成,属于同一类,因此我需要它们都具有相同的名称。在我继续之前,这里是相关的代码部分:(所有变量都已初始化)//用相机移动这些节点privatevarChoosePieces:ChoosePiecesClass?;overridefuncdidMove(toview:SKView){initializeGame();}overridefuncupdate(_currentTime:TimeInterval){enumerateChildNod
有什么区别pathPhysics.physicsBody=[SKPhysicsBodybodyWithEdgeChainFromPath:physicsPath];和pathPhysics.physicsBody=[SKPhysicsBodybodyWithEdgeLoopFromPath:physicsPath];文档不是很清楚。只是一个关闭路径,而另一个不关闭路径吗? 最佳答案 是的,封闭与开放是主要区别。但是可能会有内部优化。在Box2D中,边链形状用于创建大型、自由形式的形状,如洞穴系统的边缘。边缘链形状比“正常”边缘形状具
我想根据用户在屏幕上拖动手指来旋转枪支。我想我将需要我在极坐标中的笛卡尔点,并且我将需要一个长按手势,这两者都是我拥有的。我只是想知道我将如何对此进行编程?抱歉,我对spritekit真的很陌生,我已经阅读了所有apple的文档,但我很难找到它。我的anchor是0,0。-(void)shootBullets:(UILongPressGestureRecognizer*)gestureRecognizer{doubleradius;doubleangle;SKSpriteNode*gun=[selfnewGun];}我想出了如何获得角度,但现在我的zrotation不起作用。就像我的n