Cocos2d: подкласс CCSprite не будет вращаться

при выполнении следующего кода только r и сущность будут вращаться, а вражеская сущность - нет. Я добавил вызов в методе обновления rotateBy и запустил rotateBy только для вражеского объекта, и он вызовет его и изменит угол, но не отобразит эффект. Думаю, дело в наследстве. Я публикую код ниже и заголовки внизу этой страницы. Какие-либо предложения?

    CCSprite *r = [CCSprite spriteWithFile:@"redRingRight.png"];
    r.anchorPoint = CGPointMake(0.5f, 0.5f);
    r.position = CGPointMake(160.0f, 60.0f);         
    [r runAction:[CCRotateBy actionWithDuration:2.0f angle:100]];
    [self addChild:r z:0 tag:77];


    Entity * entity = [Entity spriteWithFile:@"redRingRight.png"];
    entity.anchorPoint = CGPointMake(0.5f, 0.5f);
    entity.position = CGPointMake(160.0f, 200.0f); 

    [entity runAction: [CCRotateBy actionWithDuration:2.0f angle:100]];

    [self addChild:entity];

    [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"game-art-hd.plist"];

    EnemyEntity * enemyEntity = [EnemyEntity enemyWithType:Boss];
    enemyEntity.visible = TRUE;
    enemyEntity.anchorPoint = CGPointMake(0.5f, 0.5f);
    enemyEntity.position = CGPointMake(160.0f, 300.0f);
    [enemyEntity runAction: [CCRotateBy actionWithDuration:2.0f angle:100]];        

    [self addChild:enemyEntity];
    //[self scheduleUpdate];

Заголовки Entity и EnemyEntity (подкласс Entity):

Entity.h


#import <Foundation/Foundation.h>
#import "cocos2d.h"

@class Component;

@interface Entity : CCSprite 
{
}


@end


EnemyEntity.h

#import <Foundation/Foundation.h>
#import "Entity.h" 

typedef enum
{
  ...,
  Boss,
  ..    
} EnemyTypes;

@interface EnemyEntity : Entity
{
    EnemyTypes type;

}
+(id) enemyWithType :(EnemyTypes)enemyType ;
-(void) spawn;

@end

person mm24    schedule 22.09.2012    source источник
comment
единственная разница, которую я вижу, заключается в том, что вы устанавливаете вражеский Entity.visible перед добавлением его в качестве дочернего элемента, хотя я не могу понять, как это повлияет на вращение!   -  person YvesLeBorg    schedule 22.09.2012
comment
Проверьте, не запущен ли какой-либо другой код, который может сбросить ротацию. Вы можете установить точку останова на свойстве вращения CCNode.   -  person LearnCocos2D    schedule 23.09.2012
comment
Я быстро просмотрел сегодня вечером, но не смог найти многого, я слишком устал. Я проверю код завтра. Я запускаю другие действия, такие как CCBlink, и они, похоже, работают. Я надеюсь, что LearnCocos2D прав :). А пока спасибо   -  person mm24    schedule 23.09.2012


Ответы (1)


Я переписал код с нуля, и теперь он вращается. Вероятно, было предложено @LearnCocos2D: "Проверьте, не выполняется ли какой-либо другой код, который может сбросить вращение. Вы можете установить точку останова в свойстве вращения CCNode.".

Спасибо!

person mm24    schedule 26.09.2012