движущиеся CCCamera - PullRequest
       5

движущиеся CCCamera

2 голосов
/ 25 августа 2010

У меня проблемы с поиском учебника по CCCamera.И даже слышали от других , что нет учебника CCCamera.Но, на самом деле, что я действительно хочу знать, так это просто: как мне переместить координаты каммера?Я попробовал это после просмотра ссылки:

  CCCamera *myCam = [[CCCamera alloc] init];
  [myCam setCenterX:10000 centerY:10000 centerZ:0];

Это не дает никаких предупреждений, сбоев или чего-то в этом роде, но я подозревал, что ничего не вижу из-за того, что я положил в свой init (посмотрите на комментарии "//" в моем коде для краткого изложения того, что происходит):

-(id) init {
 if ( (self=[super init]) ) {
  isTouchEnabled = YES;

            //Make the characters and joystick here
  character = [CCSprite spriteWithFile: @"character.png"];
  character.position = ccp(50,100);
  [self addChild:character];


  leftJoy = [[[SneakyJoystickSkinnedBase alloc] init] autorelease];
  leftJoy.position = ccp(64,64);

  leftJoy.backgroundSprite = [ColoredCircleSprite circleWithColor:ccc4(255, 0, 0, 128) radius:32];
  leftJoy.thumbSprite = [ColoredCircleSprite circleWithColor:ccc4(0, 0, 255, 200) radius:16];

  leftJoy.joystick = [[SneakyJoystick alloc] initWithRect:CGRectMake(0,0,128,128)];
  leftJoystick = [leftJoy.joystick retain];
  [self addChild:leftJoy];

            //Camera should go way out and not see the other two things.
  CCCamera *myCam = [[CCCamera alloc] init];
  [myCam setCenterX:10000 centerY:10000 centerZ:0];

  [self schedule:@selector(tick:)];
 }
 return self;
}

Вам потребуется SneakyInput , чтобы запустить это.Этот вопрос аналогичен, но только я должен использовать камеру или нет, а не: Как мне перемещать камеру?

1 Ответ

3 голосов
/ 27 августа 2010

Я заметил, что часто разработчики cocos2d хотят перемещать камеру, когда на самом деле гораздо проще просто переместить слой, содержащий объекты, которые должны быть перемещены.Многие игры, такие как Canabalt, Super Turbo Action Pig и другие игры с прокруткой, не перемещают камеру по сцене, вместо этого они перемещают объекты.

Это дает дополнительное преимущество, заключающееся в том, что вы можете работать с экранными координатами, а не с отображением мира на экранные координаты.Кроме того, масштабирование и поворот намного проще без CCCamera.

В любом случае, если вам действительно нужно использовать CCCamera, вам нужно установить и центр, и глаз.С макушки головы:

CCCamera *myCam = [[CCCamera alloc] init];
[myCam setCenterX:10000 centerY:10000 centerZ:0];
[myCam setEyeX:10000 centerY:10000 centerZ:[CCCamera getZEye]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...