管理移动物体的位置

时间:2013-05-13 16:34:19

标签: ios object random

我正在制作我的第一个iOS应用程序,但我遇到了问题......移动对象从屏幕顶部到底部。 游戏的目标是在它们离开屏幕之前杀死移动的物体(具有随机位置.y)。 如果物体出来,你将失去你的三条生命中的一条。 我这样做:

if(movingObject.position.y < 0)
    _lives--;

但是当我启动我的应用程序,并且一个物体从屏幕上出来时,我立即失去了我的三条生命......

通过移动物体,我该怎样做才能失去最多1点生命?

这是我创建新的movingObject的代码

double curTime = CACurrentMediaTime();
if (curTime > _nextMovingObjectSpawn)
{
    float randSecs = [self randomValueBetween:3 andValue:5];
    _nextMovingObjectSpawn = randSecs + curTime;

    float randX = [self randomValueBetween:25 andValue:winSize.width/2-20];
    float randDuration = [self randomValueBetween:4 andValue:6];

    CCSprite *movingObject = [_movingObjects objectAtIndex:_nextMovingObject];
    _nextMovingObject++;
    if (_nextMovingObject >= _movingObjects.count) _nextMovingObject = 0;

    [movingObject stopAllActions];
    movingObject.position = ccp(randX, winSize.height+movingObject.contentSize.height/2);
    movingObject.visible = YES;
    [movingObject runAction:[CCSequence actions: [CCMoveBy actionWithDuration:randDuration position:ccp(0, -winSize.height-movingObject.contentSize.height)], [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)], nil]];
}

谢谢! :)

1 个答案:

答案 0 :(得分:0)

如果您的物体从上到下移动,那么当其中一个物体到达屏幕底部时,玩家将失去生命。你可能会失去所有生命,因为你多次检查病情。每个对象只能丢失一个生命,你应该删除它并停止检查它的位置是否低于屏幕的下边缘。