我有一个Cat节点和一个Bird节点。bird节点一起嵌套在称为birdBlock的容器节点中。一切都包含在WorldNode中。如果我将一只鸟添加到WorldNode,Cat可以与其进行适当的交互,但是当鸟在birdBlock中时,Cat只是将它们推开,它们就会飞起来。我正在使用以下工具寻找我的鸟:[worldNodeenumerateChildNodesWithName:kBirdNameusingBlock:^(SKNode*node,BOOL*stop){SKSpriteNode*newBird=(SKSpriteNode*)node;if(CGRectIntersectsRe
如何让一个自由落体的Sprite节点坐在另一个水平移动的Sprite体上?现在两个body都发生了碰撞。但是水平运动的物体偏离了它的路径,自由落体撞击水平物体后下降。如何修复Sprite节点的这种不断变化的设置。我已经为正确发生碰撞设置了给定的碰撞和类别位掩码。自由落体属性:affectedbygravity=YESdynamic=YESallowsrotation=NOusesprecisecollisiondetection=YESrestitution=1摩擦力=1.0角度阻尼=0.0线性阻尼=0.0水平移动体属性动态=是受重力影响=否摩擦力=1.0在这个body上进行振荡Act
我创建了以下spritekit节点:SKSpriteNode*megadeth;megadeth=[SKSpriteNodespriteNodeWithImageNamed:@"megadeth_rocks.png"];megadeth.name=@"awesome";并添加滑动手势如下:-(void)didMoveToView:(SKView*)view{UISwipeGestureRecognizer*recognizerUp=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(handleSwip
您好,我制作了一张背景图片(尺寸:1136x650)。然后我将它实现到我的应用程序中,但在iPhone5上它太小了,尽管在我阅读的所有指南中他们都说1136x650将是iPhone5上背景图像的大小。然后我使用了相同的图像但大小:2272x1300(@2x),现在非常适合。这是否意味着我必须使用大小为2208x1242(正常)和6624x3726(@3x)的背景图片(对于iPhone6+)? 最佳答案 屏幕中的物理像素数和屏幕坐标系中的点数是不同的数字。正如您所发现的,iPhone5屏幕上的物理像素是逻辑像素的四倍。对于iPhone
我有一个SKSpriteNode对象,它有一系列要永远运行的Action。这些Action很简单,可以先移到最右边,然后再回到最左边。当用户在应用中输入一些值时,我需要反转方向,即。e.如果Sprite向右移动,我需要让它向左移动,反之亦然。我怎样才能做到这一点? 最佳答案 我会这样做:(在swift中)funcmovament(){ifisMovingRight==true{runAction(SKAction.sequence([SKAction.moveByX(10,y:0,duration:0.05),SKAction.pe
我想让一个SKSpritenode只在一个方向上展开,在本例中是向上展开。overridefuncdidMoveToView(view:SKView){varrightlegs=SKSpriteNode()rightlegs.size=CGSize(width:10,height:50)rightlegs.color=SKColor.yellowColor()rightlegs.position=CGPointMake(self.frame.width/2+20,self.frame.height/2-40)self.addChild(rightlegs)}overridefuncto
有谁知道是否有办法在SKSpriteNode上的两个不同的SKTexture之间淡出(随着时间的推移)。我假设您不能直接执行此操作并计划使用具有更高ZPosition的重复子Sprite来实现淡入淡出,但我只是想检查是否没有使用的方法>SKAction(s)我已经看过了。 最佳答案 假设新纹理覆盖在旧纹理之上,以下代码应该可以解决这个问题(它不会淡出以前的纹理,而只是淡出新的在上面)。我省略了次要的实现细节,例如计时模式。-(void)fadeTexture:(SKTexture*)newTextureontoSpriteNode:
我正在尝试使用sprite工具包制作命运之轮风格的游戏。但是我卡住了。好的,我有两个SKSpriteNode(带有物理体)。旋转得很好的轮子和“挡板”(也就是使奖轮减速并指示您赢得了什么奖品的东西。挡板不断向上推,而不是旋转并减慢轮子的速度。我的问题是:A)如何防止“挡板”向上移动,而不是在顶部保持静止并使轮子减速。B)如何使“挡板弯曲而不是简单地被插入”。C)为什么轮子不会旋转不止一次?(注意:我尝试添加[wheelremoveAllActions];在每次touchesBegan之前:代码:-(id)initWithSize:(CGSize)size{if(self=[superi
我有一组SKLabelNodes。每个节点代表一个单词的一个字母。每个节点都是SKSpriteNode的子节点。spriteNode有一个显式设置的高度([textsizeWithAttributes:@{NSFontAttributeName:font}];返回的高度),并且具有与标签节点。然后labelNode位于spriteNode的中心,并且具有verticalAlignmentMode=SKLabelVerticalAlignmentModeBaseline。在稍后阶段,我需要为每个字母设置背景图像(这将使用spriteNode完成)。出于测试目的,我使用纯色,使问题明显:如
当我调用runAction:completion:?SKSpriteNode的函数,并传入SKActionrunBlock操作,永远不会调用回调例程。 最佳答案 好吧,这可能是因为SpriteKit无法知道您的block何时真正停止影响相关节点。如果API设计得更好,也许它会为您提供一种从block中调用完成的方法,但事实并非如此。但是,您可以在自己的block中调用自己在完成block中调用的任何内容。编辑:是的,被调用者(在本例中为SpriteKit)确实知道您的block何时结束执行,但您的block可能会执行延迟调用,这将进