cocos2dx-3.x Note

来源:互联网 发布:js原型链最上层对象是 编辑:程序博客网 时间:2024/05/19 00:14

一、功能函数
1. 设置图片无锯齿。图片拼接黑边,放大缩小锯齿等等。
sprite->getTexture()->setAliasTexParameters()

二、Note
1. 回调函数,调度器函数的参数:

// 回调函数CallFuncN::create(CC_CALLBACK1(xLayer::func,this));xLayer::func(Node* pNode);// 调度器的回调函数this->schedule(schedule_selector(xLayer::func),0.1f);xLayer::func(float dt);// 菜单回调函数Menu::create(,,CC_CALLBACK1(xLayer::func,this));xLayer::func(Ref* pSender);

2.三个重要类:

Ref: 引擎的基类,很多类继承自该类;Node: 拥有日常所需的大部分功能,如设置缩放、坐标、获取大小等等,另外有一个很重要的功能是update()函数的调用;Layer: 继承自Node,拥有更多功能;

3.Scale9Sprite精灵缩放时不会发生四个角失真的情况,对按钮菜单比较有用。

4.类设计(cocos2d-x 3.x 游戏开发之旅:第六章):

  • 主角,子弹等,首先创建实体类Entity继承自Node,精灵对象指针作为私有成员,实现getSprite,bindSprite功能。然后主角,子弹等就继承自Entity类,同时添加各自的功能。对于子弹,另外创建管理器类,继承自Node,私有成员有创建子弹的函数,vector数组,实现update,碰撞检测等。
  • 玩家player继承自Entity,Entity继承自Node,在碰撞检测时player的尺寸是0,所以在绑定精灵的函数中需要设置player的尺寸,setContentSize。
  • 精灵与实体的位置不重合,需要设置sprite对象位于Entity的中心。
  • 创建动画的辅助类(第7章结尾)。

5.图片渲染:

  • 版本3.x渲染自动批处理,前提是节点连续,使用相同的纹理。涉及三个属性globalZOrder、localZOrder、orderOfArrival。默认三个属性都是0,精灵的绘制顺序是按照添加顺序进行的。localZOrder针对同一节点(如layer)的子节点(sprite),若该属性相同,则再比较orderOfArrival,globalZOrder则是跨节点的控制绘制顺序。Auto-batching的条件:连续的具有相同材质ID的节点,相同材质ID指相同的纹理ID、相同的混合函数、相同的shader。
  • 同一张图片,不管使用部分还是全部,则都有同一个纹理对象。所以使用TexturePacker将许多图片放到一张图片中,就具有相同的纹理,就能批处理了。
0 0
原创粉丝点击