如何直接从屏幕的右侧移动精灵到左侧?

时间:2014-03-01 20:01:43

标签: objective-c sprite

我的外星人沿着X轴随机生成在屏幕的底部。它们沿对角线移动到屏幕的左上角。

我希望让它们沿着Y轴随机出现在屏幕的右侧,然后从右向左移动。

如何更改以下代码才能执行此操作?我在这里是个新手...如果可以,请帮忙:

if (curTime > _nextAlienSpawn) 
{

    float randSecs = [self randomValueBetween:0 andValue:13];
    _nextAlienSpawn = randSecs + curTime;

    float randY = [self randomValueBetween:0 andValue:winSize.height];
    float randDuration = [self randomValueBetween:30 andValue:60];

    alien = [_aliens objectAtIndex:_nextAlien];
    _nextAlien++;
    if (_nextAlien >= _aliens.count) _nextAlien = 0;

    [alien stopAllActions];
    alien.position = ccp(winSize.width+alien.contentSize.width, randY);
    alien.visible = YES;
    [alien runAction:[CCSequence actions:
    [CCMoveBy actionWithDuration:randDuration position:ccp(- winSize.width-alien.contentSize.width, -500)],

    [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)],
                         nil]];

}

1 个答案:

答案 0 :(得分:1)

您的问题是您的应用程序在横向模式下运行,但您仍在使用窗口坐标,始终引用纵向坐标This stack overflow question解决了您遇到的问题!

从这个答案来看,听起来你需要创建一个新的子视图,并允许该视图正确旋转,这样X和Y将相对于视图,而不是窗口。然后,您的代码应该像上面一样工作!