Как переместить узел в cocos2d и cocos3d - PullRequest
0 голосов
/ 23 августа 2011

У меня есть node. В данном конкретном случае это CCLayer, но я ищу общее решение. Мой узел центрирован в точке 1 (скажем, { 100, 100 }). Я бы хотел, чтобы он переместился в точку 1 (скажем, { 200, 200 }) в течение 0.5 секунд.

Действительно простые вещи, верно? Но я просто не могу найти документы / учебники, которые мне нужны для этого.

Подсказка

Спасибо!

Дополнительный кредит: тот же вопрос с CC3Node, если ответ другой. :)

Ответы [ 4 ]

3 голосов
/ 23 августа 2011

Вы можете переместить все, что наследует CCNode, используя runAction: [CCMoveTo actionWithDuration: 0.5 position: ccp (x, y)]

http://www.cocos2d -iphone.org / вики / doku.php / prog_guide: действия

2 голосов
/ 23 августа 2011

// при условии, что у вас уже есть CCLayer с именем "myLayer"

[myLayer runAction:[CCMoveTo actionWithDuration:0.5 position:ccp(200,200)]];

РЕДАКТИРОВАТЬ: после перечитывания вопроса изменилось на CCMoveTo, а не CCMoveBy.

0 голосов
/ 31 марта 2013

/ *

Перемещение всего слоя, включая всех его детей (спрайты, метки и т. Д.). Вставьте этот код в метод init, который принадлежит слою, который вы хотите переместить в новую точку. X и Y являются точными координатами новой позиции слоя относительно его центра.

Пример: х = 0; х = 100; в этом случае слой будет двигаться вертикально.

* /

x = ?; // X value

y = ?; // Y value

[self runAction:[CCMoveTo actionWithDuration:5.0f position:ccp(x, y)]];
0 голосов
/ 23 августа 2011

Вы пытаетесь переместить слой или ваш слой содержит спрайты, которые вы хотите переместить?я не уверен, возможно ли вообще переместить слой (или стопку слоев), который содержит дочерние элементы (ccnodes, ccsprites и т. д.).

Мой совет - перемещать дочерние элементы слоев с помощью ccanimation / ccmoveby / ccmoveto / и т. Д.

...