CCMenuItemImages позиционирование? - PullRequest
0 голосов
/ 24 августа 2011

Я новичок в cocos2d и пытаюсь создать простую игру в слова. Я застрял с некоторыми сомнениями.

Я разместил изображения письма внизу экрана. Я использовал CCMenuItemImage в качестве кнопок и расположил их. Ни в коем случае, когда я нажимаю на изображения по отдельности, буквы должны перемещаться в первую позицию и вторую, и так далее. Например:

  • если есть несколько букв, таких как b, u, t, x, y, z, и если я нажимаю на любые буквы, то они должны переместиться в какое-то место, например (200, 300) (первая позиция), а затем во вторую позицию. Затем третье ... и так далее.

Как мне это сделать ?? Я нуб, так что объясни должным образом. Пожалуйста, помогите !!

Заранее спасибо !!

1 Ответ

1 голос
/ 20 сентября 2011

Вы хотели бы, чтобы ваш CCMenuItemImage имел селектор для нацеливания на вспомогательную функцию, помогающую перемещать ваш CCMenuItemImage.Внутри вспомогательной функции у вас будет свой код перемещения CCMenuItemImage.

Чтобы переместить ваш CCMenuItemImage, вы можете изучить / скопировать ActionTest примера проекта cocos2d-iphone.

Вы можете использовать CCMoveTo или CCMoveBy для перемещения вашего CCMenuItemImage.

Действия определяются с продолжительностью и целевой позицией.Есть некоторые различия между CCMoveTo и CCMoveBy.Важным является CCMoveBy, который можно «перевернуть», чтобы получить обратное действие для вашего действия.В приведенном ниже примере гроссини перемещается в ccp (80,80), а обратный actionByBack возвращает его в исходное положение.Следующий код можно найти в файле ActionsTest.m вашего проекта cocos2d-iphone.Он определяет движение 3 спрайтов, тамара, гроссини и катия.

CGSize s = [[CCDirector sharedDirector] winSize];


id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];

id actionBy = [CCMoveBy actionWithDuration:2  position: ccp(80,80)];
id actionByBack = [actionBy reverse];

[tamara runAction: actionTo];
[grossini runAction: [CCSequence actions:actionBy, actionByBack, nil]];
[kathia runAction:[ CCMoveTo actionWithDuration:1 position:ccp(40,40)]];

Так что в вашем случае, если ваш CCMenuItem называется _alphabet1, вы можете использовать пример определения действия actionBy для выполнения следующего

[_alphabet1 runAction: [CCSequence actions:actionBy, actionByBack, nil]];

, который отправит ваш _alphabet1 CCMenuItemImage в ccp80,80) в течение 2 секунд и обратно к началу координат через 2 секунды.

Если вы просто хотите переместить ваш CCMenuItem в позицию, а не назад, просто используйте CCMoveTo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...