2015-03-04 1 views
0

Используя cocos2d, я пытаюсь заменить спрайт (элемент в моем коде) системой частиц. Этот код помещается в мой класс платы. Это один работает:Помещение частиц в узел

// Draw the particles 
    CCParticleSystem *particles = [[CCParticleSystem alloc] initWithDictionary:_popParticles]; 
    particles.position = ccpSub(item.position,ccp(160,160)); 
    particles.autoRemoveOnFinish = TRUE; 
    [self addChild:particles]; 

Это один не делает:

// Draw the particles 
    CCParticleSystem *particles = [[CCParticleSystem alloc] initWithDictionary:_popParticles]; 
    particles.position = item.position; 
    particles.autoRemoveOnFinish = TRUE; 
    [self addChild:particles]; 

Я попытался плеер с этим, но без успеха:

particles.positionType = CCPositionTypeMake(CCPositionUnitUIPoints, CCPositionUnitUIPoints, CCPositionReferenceCornerBottomLeft); 

Мой совет является 320х320 точек CCSprite с узловой точкой установить на 0,5, 0,5

Когда я регистрирую свое значение item.position, я получаю что-то относительно нижнего левого угла моей доски (от 30,30 до 290,290)

Использует ccpSub правильный путь?

Hierarchy of my objects in Spritebuilder

+0

Что означает «не работает»? Что такое self.positionType? завершено ли 'onEnter'? что такое 'self.contentSizeInPoints'? – YvesLeBorg

+0

«не работает» означает, что положение частиц не соответствует положению «предмета предмета», который я хочу заменить (это 160 пикселей, 160 пикселей в верхнем правом углу позиции позиции). onEnter завершен, self.contentSizeInPoints = {0, 0}. Я не знаю, как записывать self.positionType :( –

+0

ok, тогда вы можете добавить частицы в «item», а не в board (self)? Я предполагаю, что это происходит для CCNode. – YvesLeBorg

ответ

0

Когда вы уничтожите узел вы также уничтожить все его дочерние узлы, вы сказали, что добавить частицу «пункт», то вы уничтожите, что «элемент», который означает, что у вас нет частицы больше.