首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何移动CCSprite

如何移动CCSprite
EN

Stack Overflow用户
提问于 2011-04-18 22:19:17
回答 2查看 2.1K关注 0票数 1

我需要将sprite从一边移动到另一边。我使用:

代码语言:javascript
复制
CCSprite *man;

id actionMove = [CCMoveTo actionWithDuration:1 position:ccp(20,300)];

[man runAction:actionMove];

当它移动到(20,300)时,我需要将sprite移动到(20,0),然后将其移动到(20,300)并返回。我该怎么做呢?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-04-18 22:49:17

代码语言:javascript
复制
CCMoveTo *move = [CCMoveTo actionWithDuration:1 position:ccp(20,300)];
CCCallFuncN *move_done = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished)];
[man runAction:[CCSequence actions:move1,move_done1,nil]];

-(void)spriteMoveFinished
{
    CCMoveTo *move1 = [CCMoveTo actionWithDuration:1 position:ccp(20,0)];

    [man runAction:[CCSequence actions:move1,nil]];
}
票数 7
EN

Stack Overflow用户

发布于 2013-08-18 22:33:07

不确定我是否正确,但这应该会在2秒内将y轴上的man 300px向上移动,然后再回到同一轴上的0px。不依赖于之前的位置,这个人将在y上移动+300,然后在y上移动-300。

这是关于CCMoveBy的:

代码语言:javascript
复制
CCAction *moveOne = [CCMoveBy actionWithDuration:1 position:ccp(0, 300)];
CCAction *moveTwo = [CCMoveBy actionWithDuration:1 position:ccp(0, -300)];
CCSequence *manMoving = [CCSequence moveOne, moveTwo, nil];
[man runAction:manMoving];

这是关于CCMoveTo的:

代码语言:javascript
复制
CCAction *moveOne = [CCMoveTo actionWithDuration:1 position:ccp(20, 300)];
CCAction *moveTwo = [CCMoveTo actionWithDuration:1 position:ccp(20, 0)];
CCSequence *manMoving = [CCSequence moveOne, moveTwo, nil];
[man runAction:manMoving];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5704244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档