gpt4 book ai didi

ios - Sprite 在不正确的位置产卵

转载 作者:行者123 更新时间:2023-11-28 21:51:17 25 4
gpt4 key购买 nike

我有一排 5 个 Sprite ,它们每 4 秒生成一次,并沿 Y 轴向下移动。 Sprite 每次都产生正确的数量,我在屏幕上有 5 个等距的 Sprite ,它们都完美地居中。

但是,当调用 performSelector 操作时,当它在其中生成它们时,它们不会到达正确的位置。向左移动到我只能在屏幕左侧看到半个 Sprite 。经过测试,它们似乎都在错误的位置堆叠在一起。

知道发生了什么事吗?我将不胜感激任何帮助。这是我在场景中使用的所有代码。

-(void) addBricks:(CGSize)size {
for (int i = 0; i < 5; i++) {
//create brick sprite from image
SKSpriteNode *brick = [SKSpriteNode spriteNodeWithImageNamed:@"brick"];
//resize bricks
brick.size = CGSizeMake(60, 30);
//psoition bricks
int xPos = size.width/7.5 * (i+.5);
int yPos = 450;
brick.position = CGPointMake(xPos, yPos);

//add move action
SKAction *wait = [SKAction waitForDuration:3];
SKAction *move = [SKAction moveByX:0 y:-36.9 duration:1];
SKAction *sequence = [SKAction sequence:@[wait, move]];
SKAction *repeatMove = [SKAction repeatActionForever:sequence];


[brick runAction:repeatMove];
[self addChild:brick];

}
}

-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor colorWithRed:(243.0f/255) green:(228.0f/255) blue:(165.0f/255) alpha:1.0];

//add action to spawn bricks
SKAction *spawn = [SKAction performSelector:@selector(addBricks:) onTarget:(self)];
SKAction *delay = [SKAction waitForDuration:4];
SKAction *delayThenSpawn = [SKAction sequence:@[delay, spawn]];

[self runAction:[SKAction repeatActionForever:delayThenSpawn]];

[self addBricks:size];


}
return self;
}

最佳答案

正如您在上一个问题中提到的 LearnCocos2D.. 当您将参数传递给方法时,您不能使用选择器。

addBricks 期望 size .. 你没有将 size 传递给它。

将你的生成 Action 更改为

SKAction *spawn = [SKAction runBlock:^{
// make this whatever size you want, i'm just using the scene's size
[self addBricks:self.size];
}];

这应该让你开始

关于ios - Sprite 在不正确的位置产卵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com