cocos2d-x初级入门教程

原来一直看别人的技术分享今天也自己来写个技术分享吧,希望对像我这样的菜鸟级程序猿有所帮助。


cocos2d-x是跨平台的,基于C++语言实现,C++我不会,所以我参照官方www.cocos2d-x.org 上面的步骤一步一步完成了,最终对C++也有所熟悉了!


下面列出,我在开发中遇到的问题:(开发环境:visual studio 2010,关于环境的搭建,官网上都有详细说明)


VS中添加资源: 官方说在项目中配置xcopy命令可以实现直接在vs中添加图片,我不知道怎么无法实现,最后还是只能将图片资源从文件系统添加到Resource文件夹中。


项目编译完安装在android模拟器上报Opengl错误:可能是模拟器不支持的原因,安装到手机上就可以了.


下面主要说说Cocos2d的框架:


 

 

AppDelegate:相当于Android中的Application节点,里面主要是做一些初始化程序的操作,比如SimpleGame中根据屏幕的宽高来设置资源的根目录是HD还是SD

CCFileUtils::sharedFileUtils()->setResourceDirectory("hd");


CCDirector:导演类,负责管理和切换场景,还负责初始化OpenGL各项参数;

整个cocos2d引擎的控制者,控制场景的切换,引擎的参数设置。

是个单列模式,sharedDirector()取得对象

  pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); 连接OpenGL
 

设置显示帧率:

  // turn on display FPS
     pDirector->setDisplayStats(true);


     // set FPS. the default value is 1.0/60 if you don't call this
     pDirector->setAnimationInterval(1.0 / 60);


 

CCNode,引擎中最重要的元素,所有可以被绘制的东西都是派生于此。它可以包含其它CCNode,可以执行定时器操作,可以执行CCAtion

锚点和位置:

CCNode的默认锚点是自身的中心。

锚点的原点在自身的左下角,正方向为向右,向上,所以默认锚点坐标(0.5,0.5)

能够改变自身CCNode的锚点值(x,y)

X方向的位移:x*CCNode.w

Y方向的位移:y*CCNode.h

x或者y为正值,移动的方向为左边,或者下边

   当x或者y为负值,移动的方向为右边,或者上边

 

什么地方用到锚点

改变自身CCNode坐标,在执行某些动作的时候会用到


位置Position

 

①原点(0,0)为屏幕的左下角或者父CCNode的左下角

②正方向为屏幕的右边或者上边

 

一般锚点都设置为(0,0)

只改变Position来调整坐标

CCScene、CCLayer、CCSprite都继承自CCNode,CCNode又继承自CCAction


CCScene:场景类,游戏中的界面,列入闪屏,菜单,游戏主界面等。


CCLayer : 图层类


每个图层都有自己的触发事件,该事件只能对其拥有的元素有效,而图层之上的元素所包含的元素,是不受其事件管理的

 


场景中放入图层,图层中放精灵,精灵执行动作,导演来操控场景,这应该就是cocos2d的核心流程了。


坐标系:

导演类有下面这个方法

 

CCPoint location=touch->locationInView();//计算出touch点的位置

location=CCDirector::sharedDirector()->convertToGL(location)//将touch点的坐标点,转换为opengl坐标点


需要说明的是:

屏幕坐标系:已屏幕的左上角为原点,向右,向下为正方向

GL坐标系:以屏幕的左下角为原点,向右,向上为正方向

所以在CCLayer的触摸事件处理中,注意两个坐标系的转换很重要


 

脚本库Lua

Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto IerusalimschyWaldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值