Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 目的c型SpriteKit结_Ios_Objective C_Sprite Kit - Fatal编程技术网

Ios 目的c型SpriteKit结

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 *

我想在SpriteKit中制作一个简单的游戏,基本上我想做的是让触摸屏上显示的节点在5秒钟后消失。以下是电路板的代码示例:

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
s
sequence
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