WHCSRL 技术网

cocos2d-x MoveTo与MoveBy

<块引用>

节点对象锚点的变化不影响移动方式。移动方法 To 依赖于原点坐标,而 By 依赖于节点对象的中心。

参考博文

<块引用>

ps:底部黑色边框是游戏窗口(pc)的左下角,那个(0,0)(0,200)是错误的,原点在外面。画图工具太拉了,不想换了。

auto  origin = 导演:: getInstance()->getVisibleOrigin()< span class="token punctuation">;
auto s5 = Sprite::create("5. png");
s5->setPosition(origin + (s5->getContentSize< /span>() / 2.0f)); span>// 左下角

auto s5_contentSize = s5->getContentSize();

auto action_1 = MoveTo::create(1.0, Vec2(100,100) );
auto action_2 = MoveBy::create(1.0, Vec2(-(100 - origin.x - (s5_contentSize.width / 2.0f)< /span>), 100 - origin.y - ( s5_contentSize.height / 2.0f< span class="token punctuation">))) ; 
auto 延迟 = DelayTime::create(0.5f< /span>);
s5->runAction(序列::create(< /span>delay, action_1, delay->< span class="token function">clone() , action_2, nullptr));// 必须以nullptr结尾,否则会报错

this->addChild(s5);
  • 1
  • 2
  • 3
  • 4< /li>
  • 5
  • 6
  • < li style="color: rgb(153, 153, 153);">7
  • 8
  • 9
  • 10
  • 11
  • 12

思考:

m*,为什么原点默认在屏幕外? !坐标系的原点应该可以改到屏幕左下角吧?

扩展名

cocos2d-x坐标系详解

推荐阅读