今天继续看了一些数据结构,还是二叉树,不过看的不深,因为这个东西要想搞深了一定要自己搞,切忌心浮气躁,自己只能慢慢的研究。已经也算是入门了,关于递归,树,图,8大排序,自己慢慢的实现吧。
今天主要看了cocos2dx,包括锚点,精灵,zorder的概念,坐标体系的概念,关于精灵的优化。
首先说锚点,锚点不是中心点,锚点默认是中心点,但是这个点我们可以设,就相当于当前的对象以哪个点为基准的点,我们还可以忽略锚点。
1.锚点影响放置位置
2.影响缩放
3.影响旋转
方法:sprite->setAnchorPoint
众生相,皆精灵,意思就是说,我们在cocos2dx里面绝大部分都是精灵,这个其实可以随着我们学习的深入,慢慢的就理解了。精灵的创建方法,CCSpriteFrame,CCSpriteFrameCache,CCTexture2D,CCTextureCatche,create。
关于zorder就是一个哪一层在前的优先级的问题,系统默认是0,我们可以手动的设。方法:CCLayer.setZOrder
坐标体系,说说坐标体系,分为屏幕坐标和OpenGL坐标,屏幕坐标的原点在左上角,x轴向后伸展,y轴向下伸展。而OpenGL的坐标在左下角,x轴向右伸展,y轴向上伸展。关于坐标体系,还有两种,这个分别是本地坐标和世界坐标,世界坐标是绝对的,就是相当于我们能看到的那块屏幕,而本地坐标指的是我们当前的对象基于父对象的位置,这就是本地坐标。在默认的情况下,我们的本地坐标和世界坐标是重合的,所以我们并没有感觉什么。
世界坐标
转换为世界坐标:
CCLayer.convertToWorldSpace
本地坐标
转换为本地坐标:
CCLayer.convertToNodeSpace
还有关于游戏的优化,也就是精灵的优化,如果我们用最最普通的方法创建精灵的话,那么如果精灵数越来越多,每次渲染,重画都会耗费很长的时间,直接导致应用变卡,那么解决方案就是缓存,我们可以首先用CCSpriteFrameCache来缓存下图像,然后再将CCSpriteBatchNode加入Layer中,最后把Sprite加入BatchNode中,这样每次的渲染,重画,就不会浪费cpu了。
就说这么多吧,刷完牙了,再写一篇就睡了,