Вопрос

Я пытался заставить мою попытку двигаться, но это не сдвинутся!IM с использованием Cocos2D V2.1 Beta 2 и IOS6 Это код, который я использовал для перемещения моего спрайта, что с ним не так?

#import "CCTouchDispatcher.h"
 CCSprite *faceeater;

 -(id) init
 {

if( (self=[super init]) ) {
}


CCSprite* faceeater = [CCSprite spriteWithFile:@"fe.png"];
faceeater.position =  ccp( 200, 300 );
[self addChild:faceeater];
[self schedule:@selector(nextFrame:)];

[[CCDirector sharedDirector] touchDispatcher];

self.isTouchEnabled = YES;

  return self;

 }



 - (void) nextFrame:(ccTime)dt {
faceeater.position = ccp( faceeater.position.x + 100*dt, faceeater.position.y );
if (faceeater.position.x > 480+32) {
    faceeater.position = ccp( -32, faceeater.position.y );
}
}
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
return YES;
}

- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: touch];

[faceeater stopAllActions];
[faceeater runAction: [CCMoveTo actionWithDuration:1 position:location]];
 }
.

Я вижу спрайт, но независимо от того, чего я не двигаюсь.Спасибо.

Это было полезно?

Решение

Похоже, вам нужно изменить

CCSprite* faceeater = [CCSprite spriteWithFile:@"fe.png"];
.

к

faceeater = [CCSprite spriteWithFile:@"fe.png"];
.

Похоже, у вас есть два разных CCSPRITE * Faceeer здесь, местный в init, и один определен в вашей реализации. Один здесь:

@implementation HelloWorldLayer
{
CCSprite* faceeater ;
}
.

Другие советы

- это метод NextFrame?Проверьте с точкой останова.

ККТУчик работает?Проверьте с точкой останова.

Есть ли другой код, установил положение спрайта?Возможно, вы используете метод CCMovexx каждый кадр?

Примечание. Если вы обновите позицию вручную в NextFrame и запустите действие CCMOVETO одновременно, результаты могут быть непредсказуемыми.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top