【发布时间】:2015-02-17 06:07:31
【问题描述】:
为什么这不起作用:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
int i;
i = i + 1;
if (i == 1)
{
int r = arc4random_uniform(4);
if (r == 0)
{
[self addChild: [self createBackground0]]; <- doesn't work
}
else if (r == 1)
{
[self addChild: [self createBackground1]]; <- doesn't work
}
else if (r == 2)
{
[self addChild: [self createBackground2]]; <- doesn't work
}
else
{
[self addChild: [self createBackground3]]; <- doesn't work
}
}
}
在哪里:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
int i;
i = i + 1;
if (i == 1)
{
[self addChild: [self createBackground0]]; <- works
}
}
似乎添加一个引用该方法的 addchild,称为 createBackground0 以及其他 1,2 和 3,当我在 if 语句中只有 1 时,确保背景可以只产生一次。我最初的计划是做一个游戏,玩家点击屏幕来玩游戏,但为了让事情变得不那么无聊,我制作了 4 个不同的背景,在我制作了一个 arc4random_uniform 整数并将其分配给 r 然后根据它选择的数字在 if 语句中,它将运行该行代码,然后发送添加一个相应的子代码。 createBackground 方法如下所示:
-(SKSpriteNode*) createBackground0
{
SKSpriteNode *waves0 = [SKSpriteNode spriteNodeWithImageNamed:@"background"];
waves0.anchorPoint = CGPointMake(-0.81,-0.5);
waves0.name = @"waves0";
return waves0;
}
我使用锚点是因为 .position 不会移动精灵,而我使用 .name 是因为我要在 update() 方法中引用精灵来制作滚动背景。
当我有一个 addchild 但似乎无法在一种方法中添加两个或三个时,它似乎只是工作。和if语句的数量有关系吗?
抱歉,我正在从 c# 过渡到 Objective-c 并且大约一周前才开始使用任何草率的代码。感谢您的任何回答。
【问题讨论】:
标签: objective-c xcode methods