Если постановка вопроса iphone? - PullRequest
0 голосов
/ 14 февраля 2010

Я создаю игру, в которой вы завершаете фигуры и область заполняется. Однако, если в вашей фигуре есть вражеская птица, она не заполнится. Я хочу сделать так, чтобы, если вы поймали птица в вашей форме, вы потеряете жизнь. Как я могу написать оператор if, который в значительной степени говорит, что если приведенный ниже код не выполняется, вы теряете жизнь. Если это помогает потерять жизнь, в моем коде это называется doDie.

-(void)fillMutablePath{



 CGPoint movePoint = CGPointFromString([pointsToFillArray objectAtIndex:0]);

 CGPathMoveToPoint(fillPath, NULL, movePoint.x, movePoint.y);

 for (int i=0; i<[pointsToFillArray count]; i++) {
  CGPoint tempPoint = CGPointFromString([pointsToFillArray objectAtIndex:i]);
  CGPathAddLineToPoint(fillPath, NULL, tempPoint.x, tempPoint.y);

 }


 CGContextAddPath(gameViewObj._myContext, fillPath);
 CGContextFillPath(gameViewObj._myContext);
 CGPathRelease(fillPath);

 [pointsToFillArray removeAllObjects];

}

if(fillMutablePath doesn't take place when making a shape){
[self doDie];
}

Как я уже говорил выше, причина того, что fillMutablePath не будет иметь место, заключается в том, что птица окажется в ловушке внутри фигуры. Любая помощь будет высоко ценится!

Ответы [ 2 ]

1 голос
/ 14 февраля 2010

Я не совсем уверен, как и где вы проверяете, находится ли птица на пути. Я думаю, что прямо перед заполнением вашего пути, который вы должны сделать (см., Если-еще):

-(void)fillMutablePath{

    CGPoint movePoint = CGPointFromString([pointsToFillArray objectAtIndex:0]);
    CGPathMoveToPoint(fillPath, NULL, movePoint.x, movePoint.y);
    for (int i=0; i<[pointsToFillArray count]; i++) {
       //...
    }
    CGContextAddPath(gameViewObj._myContext, fillPath);

   if(CGPathContainsPoint(fillPath, nil, bird.center, false)){
      [self doDie];
    }
   else {
      CGContextFillPath(gameViewObj._myContext);
    }
   CGPathRelease(fillPath);

   [pointsToFillArray removeAllObjects];
}

Если птица на пути, умри. Остальное, ничья.

Изменить после уточнения:

   //...

   CGContextAddPath(gameViewObj._myContext, fillPath);
   CGContextFillPath(gameViewObj._myContext);

   if(CGPathContainsPoint(fillPath, nil, bird.center, false)){
      [self doDie];
   }
   CGPathRelease(fillPath);
   [pointsToFillArray removeAllObjects];
}
0 голосов
/ 15 февраля 2010

Может ли метод не возвращать BOOL?

Таким образом, если птица в форме, метод возвращает yes, а если птица не в форме, возвращает no.

Затем вы можете использовать возвращаемое значение в случае если позже.

...