Sprite kit 一次绘制一个地图分幅

Sprite kit 一次绘制一个地图分幅,sprite-kit,tvos,Sprite Kit,Tvos,我正在为tvOS开发一款基于SpriteKit的游戏。我希望能够看到地板瓷砖的地图绘制显示一次一个。我不能让它工作。下面是展示我的问题的示例类文件。无论我在NSTimer上设置了什么延迟,瓷砖都会立即出现 我是不是错过了一些简单的东西 谢谢 肯 #导入“GameScene.h” @实现游戏场景 -(无效)drawFloorNode:(NSTimer*)计时器{ NSDictionary*thisDict=[timer userInfo]; int x=[[thisDict objectForKe

我正在为tvOS开发一款基于SpriteKit的游戏。我希望能够看到地板瓷砖的地图绘制显示一次一个。我不能让它工作。下面是展示我的问题的示例类文件。无论我在NSTimer上设置了什么延迟,瓷砖都会立即出现

我是不是错过了一些简单的东西

谢谢

#导入“GameScene.h”
@实现游戏场景
-(无效)drawFloorNode:(NSTimer*)计时器{
NSDictionary*thisDict=[timer userInfo];
int x=[[thisDict objectForKey:@“xval”]intValue];
int y=[[thisDict objectForKey:@“yval”]intValue];
SKSpriteNode*myFloor=[[SKSpriteNode alloc]initWithImageName:@“Floor1.png”];
myFloor.anchorPoint=CGPointMake(0,0.5);
myFloor.size=CGSizeMake(64,64);
myFloor.position=CGPointMake(x,self.frame.size.height-(y*64)-128);
myFloor.zPosition=-1;
[self-addChild:myFloor];
[计时器失效];
定时器=零;
}
-(void)didMoveToView:(SKView*)视图{
SKLabelNode*myLabel=[SKLabelNode labelNodeWithFontNamed:@“粉笔除尘器”];
myLabel.text=@“你好,世界!”;
myLabel.fontSize=65;
myLabel.position=CGPointMake(CGRectGetMidX(self.frame)),
CGRectGetMidY(self.frame));
[self addChild:myLabel];

对于(int y=0;这是因为您正在创建一吨计时器,所有计时器都在同一时间开始,然后在1秒后结束,当前的方法不起作用,您可能想做的是将所有分幅加载到某种数组中,使计时器重复,并且每次重复时,它都会去掉最上面的项根据节点计数绘制或增加scheduledTimer时间,因此第一个节点是1秒,第二个节点是2秒,但我不知道堆栈上实际允许多少个计时器,所以这是一个糟糕的方法OK。这帮了大忙。我确实将它们放入了双循环内的数组中,然后修改了计时器以重复,并使用选择器弹出它们数组的t。只需要使用一个计时器。谢谢!你不应该在spritekit游戏中使用nstimer。你有一个不断给你当前时间的更新循环。你应该利用它..或SKAction
#import "GameScene.h"

@implementation GameScene
-(void)drawFloorNode:(NSTimer *)timer{
  NSDictionary *thisDict=[timer userInfo];
  int x =[[thisDict objectForKey:@"xval"] intValue];
  int y =[[thisDict objectForKey:@"yval"] intValue];
  SKSpriteNode *myFloor=[[SKSpriteNode alloc]   initWithImageNamed:@"Floor1.png"];
  myFloor.anchorPoint=CGPointMake(0, 0.5);
  myFloor.size=CGSizeMake(64, 64);
  myFloor.position=CGPointMake(x,self.frame.size.height - (y*64) - 128);
  myFloor.zPosition=-1;
  [self addChild:myFloor];
  [timer invalidate];
  timer=nil;
}


-(void)didMoveToView:(SKView *)view {

  SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];

  myLabel.text = @"Hello, World!";
  myLabel.fontSize = 65;
  myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
                               CGRectGetMidY(self.frame));

  [self addChild:myLabel];

  for(int y=0;y<9;y++){
    for(int x=0;x<64*15+1;x+=64){
        NSMutableDictionary *myDict =[[NSMutableDictionary alloc ]init];
        [myDict setObject:[NSNumber numberWithInt:x] forKey:@"xval"];
        [myDict setObject:[NSNumber numberWithInt:y] forKey:@"yval"];
        [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(drawFloorNode:) userInfo:myDict repeats:NO];

    }
}

}

@end