Я хочу создавать пульсирующие платформы и иметь некоторые проблемы с CCScale.У меня есть несколько объектов моего класса Platforms в NSMuttableArray.
@interface Platforms : CCNode{
CCSprite *platformSprite;
int typeP;
}
@property (nonatomic, retain) CCSprite *platformSprite;
@property int typeP;
@ реализация
- (id)init:(int)type
{
self = [super init];
if (self != nil) {
typeP = type;
platformSprite = [CCSprite spriteWithFile:@"ball.png" rect:CGRectMake(0, 0, 51, 52)];
[self addChild:platformSprite];
}
return self;
}
Я добавил все объекты на экран
for (int i = 0 ; i < [_array count]; i++) {
Platforms* _platforms2 = [[_array objectAtIndex:i ]retain];
[self addChild:_platforms2];
[_platforms2 release];
}
Итак ...Я хочу получить все объекты, где typeP == 1 Я получаю все эти объекты и добавить их в NSMuttableArray
for (int i = 0 ; i < [platformsArrayOnScreen count]; i++) {
Platforms* temp = [platformsArrayOnScreen objectAtIndex:i];
if (temp.typeP == 1) {
[scaleArray addObject:temp];
}
Чем я хочу масштабировать все их до [CCScaleTo actionWithDuration:0.5 scale:0.2f];
, а после этого масштабировать до [CCScaleTo actionWithDuration:0.5 scale:1.0f];
я создал функцию [self schedule:@selector(checkForScale:)];
-(void)checkForScale:(ccTime)dt {
for (int i = 0; i < [scaleArray count]; i++) {
Platforms* temp2 = [scaleArray objectAtIndex:i];
if ([temp2.platformSprite scale] == 1.0f) {
[self scaleDown:temp2];
}
if([temp2.platformSprite scale] == 0.2f){
[self scaleUp:temp2];
}
}
}
-(void)scaleDown:(Platforms *)tempSprite {
id scaleDown = [CCScaleTo actionWithDuration:0.3 scaleX:0.2f scaleY:0.2f];
[tempSprite.platformSprite runAction:scaleDown];
}
-(void)scaleUp:(Platforms *)tempSprite {
id scaleUp = [CCScaleTo actionWithDuration:0.3 scaleX:1.0f scaleY:1.0f];
[tempSprite runAction:scaleUp];
}
Но это не работает ((мои платформы не пульсируют. Где моя проблема? Спасибо.