cocos2d 包装类和子节点问题

有时候不会在scene里面直接添加精灵,而是会自己建一个精灵类,例如我要添加hero精灵,但是我不会直接在scene里面写

CCSprite *hero=CCSprite::create("hero.png");

而是会自己建一个Hero类,然后在Hero类的onEnter()函数里面写上上述语句,这样就可以在Hero类里面写上hero相关的方法,例如各种动作。

但是这个时候会出现一个问题,就是虽然Hero类是个节点但是其本身并没有可绘制东西,而是依靠其子节点hero来绘制,Hero类本身是可以看成一个无限小的Node,所以对Hero的锚点以及位置设置时,会出现锚点设置无效的情况,这样子节点的坐标始原点始终是Hero->setposition()的那个点。

如果我用setContentSIze对Hero进行设置

Hero->setContentSize(CCSizeMake(480,360));

(ps: setContentSize用法详解见我的另外一篇文章

这样Hero就从一个无限小的节点变成一个480*360的节点,这时锚点的设置会有效了,且hero的坐标原点变成(480*360)的左下角。

这样也从另外的角度解释了setcontentsize并不能改变绘制大小,改变的仅仅是在屏幕上绘制的位置的结论。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值