actionmove不起作用。

tangcat123 2014-07-15 01:35:03
我的版本是3.0
一般情况下这个是有效的,但是代码写成这样之后居然无效了。
bool Block::init()
{
m_sprite = Sprite::create();
visibleSize = Director::getInstance()->getVisibleSize();
Point origin = Director::getInstance()->getVisibleOrigin();
//随机生成一个障碍物
size.width = rand()%maxHeight;
size.height = rand()%maxWidth;
m_sprite->setTextureRect(Rect(0,0,size.width,size.height));
//setPosition(Point(visibleSize.width/2,visibleSize.height/2));
m_sprite->setColor(Color3B(0, 0, 0));
m_sprite->setAnchorPoint(Point::ANCHOR_BOTTOM_LEFT);
return true;
}
void Block::move()
{
//障碍物的运动
//本来应该封装在Block类里的,可是放在里面之后发现不能用Action,奇葩!!!
auto actionMove = MoveTo::create(4.0f,basePoint);
//auto actionDone = CallFuncN::create(CC_CALLBACK_1(Block::blockMoveFinished, this));
//auto sequence = Sequence::create(actionMove, actionDone, nullptr);
m_sprite->runAction(actionMove);
}
非常神奇,,如果我换一个动作
auto animate = Animate::create(animation);
auto repeat = RepeatForever::create(animate);
这个是能看到动画的。。。

但是现在我用move,物体依然不动。
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
虫虫虫虫子 2014-07-16
  • 打赏
  • 举报
回复
说说,总结一下,造福全人类。 快,我已经准备好接分了。
雾中夜月 2014-07-15
  • 打赏
  • 举报
回复
这个问题我之前遇到过,我猜测一下 动作Action可以给NODE去run 而动画Animate只能给精灵去run
yxlovemoney 2014-07-15
  • 打赏
  • 举报
回复
把原因说一下啊,造福后人
彩阳 2014-07-15
  • 打赏
  • 举报
回复
顺便接分。
tangcat123 2014-07-15
  • 打赏
  • 举报
回复
发现原因了。。。。。。谁回复我一个我散分了。
tangcat123 2014-07-15
  • 打赏
  • 举报
回复
但是我将block继承自sprite,并且在外部用block->runaction(move)有效,但是内部用this->runaction却又没有效果。

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧