У меня есть такая игра, как doodlejump
Я вставил несколько монстров и пуль на игрока
игрок стреляет пулей и удаляет цель
я вставил nslog в оба, чтобы я знал, стреляет ли пуля, и цель показывает
все работает гладко в симуляторе ios 4.0
но когда я каждый раз устанавливаю его на устройство
кажется, что пуля и цель не появляются ( да, только эти два, игра все еще работает гладко)
но каждый раз, когда я проверяю консоль, я вижу журнал пули и цели
я пробовал на 3 разных телефонах ios 4.0, 5.0 и 4.2
Теперь я в замешательстве, если кажется, что проблема
Я проверил те же проблемы в Google, но я не могу найти один
Я также проверил наличие орфографии и мини-проблем, но все же это происходит.
Что, кажется, вызывает эту проблему?
PS: приложение, над которым я работаю, устарело, это старая версия COCOS2d. Является ли это
повлиять на это? Я пытался обновить, но у меня так много ошибок, что я не
знаю, поэтому я возвращаюсь к умолчанию.
Монстры появляются примерно на 0,5 с, а затем внезапно исчезают из-за spriteMoveFinished?
вот коды (цель):
-(void)addTarget {
Sprite *target =[Sprite spriteWithFile:@"him.png"];
CGSize winSize = [[Director sharedDirector]winSize];
int minX = winSize.width/6;
int maxX = winSize.width - target.contentSize.width/2;
int rangeX = maxX - minX;
int actualX = (arc4random() % rangeX) + minX;
target.position = ccp(actualX,500);
NSLog(@"Location:%f",target.position);
[self addChild:target];
int minDuration = 2.0; int maxDuration = 4.0;
int rangeDuration = maxDuration - minDuration;
int actualDuration = (arc4random() % rangeDuration)+minDuration;
id actionMove = [MoveTo actionWithDuration:actualDuration position:ccp(actualX, -target.contentSize.height/2)];
id actionMoveDone = [CallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];
[target runAction:[Sequence actions:actionMove,actionMoveDone, nil]];
target.tag = 1;
[_targets addObject:target];
}
(пули):
-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
AtlasSpriteManager *spriteManager = (AtlasSpriteManager*)[self getChildByTag:kSpriteManager];
AtlasSprite *bird = (AtlasSprite*)[spriteManager getChildByTag:kBird];
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[Director sharedDirector]convertCoordinate:location];
Sprite *projectile = [Sprite spriteWithFile:@"psn.png"];
projectile.position = ccp(bird.position.x,bird.position.y);
CGSize winSize = [[Director sharedDirector]winSize];
int offX = location.x - projectile.position.x;
int offY = location.y - projectile.position.y;
[self addChild:projectile];
float scalarX = 1.0f;
if(offX < 0.0f) scalarX = -1.0f;
int realX = scalarX * (winSize.width + (projectile.contentSize.width/2));
float ratio = (float) offY / (float) offX;
int realY = (realX *ratio) +projectile.position.y;
CGPoint realDest = ccp(realX,realY);
int offRealX = realX - projectile.position.x;
int offRealY = realY - projectile.position.y;
float length = sqrtf((offRealX*offRealX)+(offRealY*offRealY));
float velocity = 480/1;
float realMoveDuration = length/velocity;
[projectile runAction:[Sequence actions:[MoveTo actionWithDuration:realMoveDuration position:realDest],
[CallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]];
NSLog(@"Shoot!");
projectile.tag = 2;
[_projectiles addObject:projectile];
}
Спасибо, я надеюсь, что это будет решено ...