Ios 目的c型SpriteKit结
我想在SpriteKit中制作一个简单的游戏,基本上我想做的是让触摸屏上显示的节点在5秒钟后消失。以下是电路板的代码示例:Ios 目的c型SpriteKit结,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我想在SpriteKit中制作一个简单的游戏,基本上我想做的是让触摸屏上显示的节点在5秒钟后消失。以下是电路板的代码示例: SKSpriteNode* board = [[SkSpriteNode alloc] initWithImageNamed:@"board"]; board.name = boardCategoryName; board.position = CGPointMake (CGRectGetMaxX(self.frame),board.frame.seize.height *
SKSpriteNode* board = [[SkSpriteNode alloc] initWithImageNamed:@"board"];
board.name = boardCategoryName;
board.position = CGPointMake (CGRectGetMaxX(self.frame),board.frame.seize.height *4.6f);
[self.addChild:board];
board.physicsBody = [SKphysicsBody bodyWithRectangleOFSize:board.frame.size];
board.physicsBody.restitution =0.1f;
board.physicsBody.friction = 0.4f;
board.physicsBody.dynamic = No;
有很多方法可以做到这一点。一种方法是在5秒钟后调用
[board removeFromParent]
。这可以是由NSTimer
调用,也可以使用持续运行的update
方法,检查屏幕上是否添加了节点,然后在5秒钟后删除节点。您可能需要在touchsbegind
方法中设置标志
编辑:
您还可以使用SKAction
waitForDuration
示例代码:
SKAction *delay = [SKAction waitForDuration:5];
SKAction *remove = [SKAction removeFromParent];
SKAction *actionSequence = [SKAction sequence:@[delay,remove]];
[board runAction:actionSequence];
这样,在等待完成后,节点将被删除。有很多方法可以做到这一点。一种方法是在5秒钟后调用
[board removeFromParent]
。这可以是由NSTimer
调用,也可以使用持续运行的update
方法,检查屏幕上是否添加了节点,然后在5秒钟后删除节点。您可能需要在touchsbegind
方法中设置标志
编辑:
您还可以使用SKAction
waitForDuration
示例代码:
SKAction *delay = [SKAction waitForDuration:5];
SKAction *remove = [SKAction removeFromParent];
SKAction *actionSequence = [SKAction sequence:@[delay,remove]];
[board runAction:actionSequence];
因此,在等待完成后,节点将被删除。Mr T确实提供了1个选项,但就我个人而言,在处理节点时,我会使用
SKAction
ssequence
,waitForDuration
和removeFromParent()
,如下所示:
let waitDuration = SKAction.waitForDuration(5)
let killAction = SKAction.removeFromParent()
let seqAction = SKAction.sequence([waitDuration,killAction])
....
board.runAction(seqAction)
Mr T确实提供了1个选项,但就我个人而言,在处理节点时,我会使用
SKAction
s序列
,waitForDuration
,以及removeFromParent()
,如下所示:
let waitDuration = SKAction.waitForDuration(5)
let killAction = SKAction.removeFromParent()
let seqAction = SKAction.sequence([waitDuration,killAction])
....
board.runAction(seqAction)
你的问题是什么?@Nitek我怎么做?你的问题是什么?@Nitek我怎么做?请原谅我,但你能举一个简单的例子,例如
[board removeFromParent]
,因为我对这一点还不熟悉,而且我在互联网上发现的东西对我的知识来说非常复杂。如果你想删除一个节点,你应该调用[node removeFromParent]那是it@Mr.T在SpriteKit中,大部分时间用于与时间相关的操作。SKAction或update:方法是首选方法。如果要更改答案,至少要确保答案正确。在SKAction.waitForDuration之后,发生了什么,你做了什么。更新方法怎么样,它是如何工作的?我认为您提供了代码示例,因此没有必要在本例中详细解释如何使用skaction。您希望我包含您提供的类似代码吗?:)对不起,你能给我举个简单的例子吗,比如[board removeFromParent]
,因为我是新手,而且我在互联网上发现的东西对我的知识来说是非常复杂的。如果你想删除一个节点,你应该调用[node removeFromParent]这就是it@Mr.T在SpriteKit中,大部分时间用于与时间相关的操作。SKAction或update:方法是首选方法。如果要更改答案,至少要确保答案正确。在SKAction.waitForDuration之后,发生了什么,你做了什么。更新方法怎么样,它是如何工作的?我认为您提供了代码示例,因此没有必要在本例中详细解释如何使用skaction。您希望我包含您提供的类似代码吗?:)对不起,我用swift而不是c写了这个答案。所以习惯了用swift写。T先生将此翻译为youTnx的目标,以获得答案,但我不知道Swift jetsorry,我用Swift而非目标c编写了此答案。所以习惯了用swift写。T先生把这个翻译成了youTnx的目标,但我不知道Swift jet