В моем приложении я замечаю, что в моей CCScene могут быть вещи, которые кажутся неправильными.
Я просто объясню 3 вещи: 1. Мой FPS не отображается нигде в представлении, даже если ясделать это из моего UIViewController (мой CCLayer - его собственный класс)
.h моего класса CCLayer выглядит так:
@interface CCMyGame : CCLayer {
CCDirector* director = [CCDirector sharedDirector];
[CCDirector setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];
[director setOpenGLView:self.eaglView];
[director setDisplayFPS:YES];
[director runWithScene:[CCSceneGame scene]];
Я вижу один мой CCSprite, но это все, ябольше ничего не вижу.
Затем в моем классе CCLayer я делаю это, чтобы полностью активировать CCScene:
+(CCScene *) scene
{
CCScene *scene = [CCScene node];
CCSceneGame *layer = [CCSceneGame node];
[scene addChild:layer];
return scene;
}
Почему это так?
Мои игровые циклы не получаются.Я делаю это:
[self schedule: @selector (myGameLoop:)];
Затем в игровом цикле я NSLog его, и журнал никогда не отображается вконсоль, поэтому я понимаю, что он не вызывается.
Еще одна странность заключается в том, что мой метод делегата UIAccelerometer не вызывается, хотя я и делаю это:
self.isAccelerometerEnabled = YES;
[UIAccelerometer sharedAccelerometer].delegate = self;
[UIAccelerometer sharedAccelerometer].updateInterval = 0.10f/4.0f;
Любые причиныпочему?
И, наконец, никто, кроме одного из моих CCSprites, не показывает.У меня есть несколько CCSprites, которые я добавляю как
[self addChild:mySprite];
Но я их не вижу.Все они привязаны к b2Bodys, а некоторые анимируются, но я вижу только один CCSprite, и я не уверен, почему это единственный, который я вижу.
У кого-нибудь есть идеи, почему какие-то из этих вещейпроисходит?
Редактировать1:
# 1: Исправлено!
# 2: Яделает это, и это все еще не работает!Я делаю это, чтобы запланировать это:
[self schedule:@selector(cocosgameLoop:)];
Это мой метод:
-(void)cocosgameLoop:(ccTime)delta {
NSLog(@"cocosgameLoop");
}
Этот NSLog не вызывается.И когда вы показали мне второй способ, он не получит обновления, как это обычно бывает в игровом цикле, он вызовет метод только один раз.Почему этот метод не вызывается?
Также странно то, что мой метод делегата UIAccelerometer все еще не вызывается!Я сейчас делаю это:
self.isAccelerometerEnabled = YES;
[UIAccelerometer sharedAccelerometer].updateInterval = 1/30.0f;
И я NSLogged мой метод делегата UIAccelerometer, и все еще не похоже, что его вызывают:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
NSLog(@"accelerometer");
}
Edit2: Itтеперь кажется, что мой метод UIAccelerometer вызывается, если я делаю:
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60];
Почему это будет?Я думаю, что где-то читал, что мой слой не добавлен в мою иерархию, это правда?Я получил эту идею отсюда, может быть, поэтому все эти проблемы возникают: http://www.cocos2d -iphone.org / forum / topic / 13988
# 3: Мои CCSprites не следуют за b2Body, а наоборот.Вы дали мне этот код здесь: b2Body Animation?
Я устанавливаю положение моих CCSprites подобно UIKit, может быть, поэтому.Вот пример одного из спрайтов, который не отображается:
CGPoint point = CGPointMake(50, 50);
point = [[CCDirector sharedDirector] convertToGL:point];
[sprite setPosition:point];
[self addChild:sprite z:1 tag:1];