cocos2dx入门

在生硬的啃了几天python和lua之后,今天终于要开启cocos2dx的入门之路了,只想说一句,finally,接下来就让这博客见证我的成长吧。

站在巨人的肩膀上,才能取得更高的成就,所以,首先要做的事情,就是多读读前人的经验笔记,给这个任务号号脉,我首先翻阅的是一个博客,博主自学完成了超级玛丽的游戏设计,而这正是我的一个入门构思游戏,接下来几天,我将跟随博主来对cocos的旅程有个大概的了解。


屏幕适配问题

我在写超级玛丽的时候没有考虑到屏幕适配的问题,当我在最后把代码编译到安卓平台上的时候才发现屏幕适配应该在最开始定下来,所以后来把代码做了移植。这个游戏原定的分辨率就是480*320,所有的资源都是以这个分辨率设计的大小,最后再屏幕适配过程中只需要一行代码,就搞定了不同屏幕的适配问题,不过这个方法解决的不彻底,引擎提供的这个方法本来就是有缺陷的,但不影响游戏的运行与体验。”

博主提到了屏幕适配的问题,不过却并没有讲明引擎提供的方法的缺陷在何处,也没有给出解决方案。于是自行去搜索了相应的文章来对此作出了解。

原来,屏幕适配的作用是为了使得相同的游戏在不同的屏幕上都能得到同样的体验,而cocos早期的版本对于此功能的支持却做的不是很好,但是从2.0-x-2.0.4开始,团队开始对此问题作出回应,他们的回应方法是这样的,根据用户的屏幕和资源的尺寸的比例,对资源进行相应的缩放,而缩放的方式也是可以选择的,如拉伸,填充等,通过这些设置,可以实现,相同的资源可以填满不同分辨率尺寸的屏幕,当然,在长宽比例不一致的时候还会发生相应的形变就是了,详情参见这里

角色定义

对于游戏中出现的人物,其实就是一个对象,有着自己的特性,包括特征及动作。而一般反面的角色,大多是通过继承来完成(龙套没有地位)

注:游戏中的主角类或是怪物类等一般有两种继承方式,要么是继承引擎里的CCSprite;要么是继承引擎里的CCNode,类里面再维护一个CCSprite*变量这两种处理方式都可以。不过在游戏中作者用的是后一种方式,这样子,马里奥在接受碰撞处理时表现的是CCNode的性质,在状态之间切换的时候私有变量CCSprite*可以做到马里奥的状态切换(就是换一张图片显示),播放各种动画(这个后序详述)。

层的概念

在游戏中,有了地图跟人物,还需要使得人物在地图上活动,那么就需要定义分层了,不然人物也没有办法知道地图上哪里是平地,哪里是高山,哪里可以行走,哪里会有怪物。

在背景的设置上,有三个重要的概念,分别是锚点和局部坐标系(添加函数为addChild(CCNode*),CCNode是引擎里所有能够展示的内容的基类)

游戏里的大多数逻辑都是在层里完成的,其继承于引擎中的CCLayer,完成这些设置之后,就能看到屏幕上一张地图,而马里奥就停留在某一点上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值