我的外星人沿着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]];
}
答案 0 :(得分:1)
您的问题是您的应用程序在横向模式下运行,但您仍在使用窗口坐标,始终引用纵向坐标。 This stack overflow question解决了您遇到的问题!
从这个答案来看,听起来你需要创建一个新的子视图,并允许该视图正确旋转,这样X和Y将相对于视图,而不是窗口。然后,您的代码应该像上面一样工作!