您的位置:首页 > 移动开发 > Cocos引擎

浅谈Android TV集成Cocos2d-x环境(一)

2016-07-11 09:46 1001 查看
前言: 

最近有项目需要使用引擎进行UI的开发,趁机学习了一下被称为国内千万手游摇篮的cocos2d-x引擎。


Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持WindowsMacLinux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。

环境配置及版本选择:

关于cocos2d-x的介绍网上有很多,这里就不多说了,直接上点干货,关于cocos2d-x知识的主要来源就是他们的官网了,网址为:http://www.cocos2d-x.org/(中文官网:http://www.cocos.com/),大家可以根据自己的语言爱好来选择。接下来就是Cocos2d-x开发环境的搭建了,这里我也不浪费笔墨了,直接为大家推荐一篇windows下环境搭建的文章,如果使用其他操作系统的朋友,可以自己进行搜索,windows环境搭建请参考:http://blog.csdn.net/ns2250225/article/details/39312579 ps:VS版本建议使用2015,之前使用2013版本发现有一些问题

  下面不得不说一下关于Cocos2d-x版本更新的蛋疼问题,每次版本更新对程序员来说可以是灾难性的,因为大版本的更新会导致接口的变化,由于我们也是刚刚接触Cocos2d-x,所以我们选择了最新版本3.10进行开发,环境的搭建倒是没什么问题,但实际开发中会发现多数的教程和视频都是使用V2.x的版本,这就出现了一些接口的差异,不过还好多数接口只是命名不同,功能改变不是很多,所以建议大家学习时,在1-2年内只要搞一个版本就好了。

  接下来说一下关于开发语言的问题吧,Cocos2d-x支持C++,JS,Lua三种语言,由于个人比较熟悉C++,所以使用C++进行开发。

运行Demo:

搭建好环境后,让我们来运行一下官方Demo测试 一下环境吧!双击D:\Cocos\Cocos2d-x\cocos2d-x-3.10\build\cocos2d-win32.sln文件,VS2015会自动打开,打开后点击run即可运行demo程序,如果无法启动请检查环境配置。


  下面则为demo运行效果图。

HelloWord程序:

首先我们使用Cocos2d-x桌面程序创建一个工程,点击Cocos图标,打开后点击新建项目





如图所示填入项目名称,选择程序路径,按照图示进行勾选后项目创建完毕,创建成功后点击使用VS打开程序,即可看到工程源代码,工程运行后能看到两个类,AppDelegate.cpp和HelloWorldScene.cpp,Scene类为主要的UI类,我们在HelloWorldScene.cpp的init函数里添加如下代码

然后点击运行按钮,即可看到HelloWorld工程。好的恭喜,现在你已经完成了Cocos2d-x的入门工作,可以尽情的使用控件开发你想要的UI了,这个还需要大家多看API文档进行学习,网上的资源还是比较多的,我这里就不一一赘述了。

关于电视焦点的显示:

我们知道cocos2d-x是一款手机游戏开发引擎,但是我们Android电视是使用遥控器进行操控的,cocos默认是没有焦点的,所以焦点的绘制成为了一个棘手的问题,下面我也不卖关子了,简单为大家介绍一下我们是如何实现焦点的,

首先我们要监听遥控器按键事件,直接上代码了

这样我们就完成了遥控器按键的监听,可以看到左键我们使用了两个键值,其实遥控器的keycode是KEY_DPAD_LEFT,而KEY_LEFT_ARROW是为了我们调试方便,监听了键盘的上下左右键。完成了按键监听,我们就要开始确定屏幕上有多少item,然后根据上下左右键来计算position,计算position是为了点击事件用的。工程初始化时,我们先根据第一个点的坐标和大小来显示焦点框,然后当用户点击上下左右键时,使用平
89d4
移动画来移动焦点框,例如焦点框是一个sprite,移动的代码为sprite->runAction(MoveBy::create(0.2f,
Point(0, -f)));

总结:

由于时间关系,关于Android TV Cocos2d-x游戏引擎开发案例的第一篇文章就写到这里了,有问题欢迎大家留言,谢谢!

 

 

 


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: