Cocos2d-x初识
cocos2d-x引擎是什么
在学习游戏的时候就有意的搜索这方面的知识,知道游戏须要游戏引擎,引擎听着非常厉害,只是就是一个游戏框架。
或许某一个游戏框架火起来了,就非常流行了,只是我觉得不论什么游戏引擎对小白来说都是有借鉴意义的。
说起小白了,我给不同知识领域的人起了不同的名字。什么也不知道的叫小白,稍微懂一些的人叫小灰。专业能应用知识的人叫做小黑,呵呵,临时这篇文章是小灰给小白传授知识的。回过头来,cocos2d-x主要还是关注2d程序方面的制作。当然游戏比較有用,只是,你写别的程序是全然能够的。
引擎的部件
我在网络上查阅了不少资料,慢慢的就总结出来了。一个引擎基本的就是四个方面。图形系统,物理系统,网络系统和音频系统,这四个部件就构成了最基本的商业引擎。各种开源的引擎就是专注实现这些部分或者一部分,毕竟没有资金支持,比如我所喜欢的orge就在图形方面很出色,其它的比方网络就有些空白了。那么cocos2d-x都有那些部件呢。这个作为一个略微成熟的流行的引擎四个部件都是有的。依照官网的描写叙述,另一个脚本部件。如图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW9uc2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
这张图的地址在
支持的平台
基本的就是六个平台,Mac,Windows,Linux,Ios,Andriod,WP,当然还有别的,仅仅只是这六个平台用户最多。所以敲代码关注他们差点儿相同就没有什么问题了。这里就要抱怨一句了。在高端的平台上没有一个是中国的。显示出我们的路还好长的。没有民族的产品啊。前几天有意的查找一些这方面的信息。自主知识产权须要的时间何其多,COS系统却说一两年做出来。有点太吹了。怪不得人人不相信。
文件夹结构
我也没有吹牛的意思。只是是做过微软的项目,再加上有意的打开过各种项目的代码看过,比如cocos2d-x,linux,mysql,log4net等等开源的项目。
事实上没有深入就是研究他们的文件夹组织。一个大一些的项目文件夹究竟是怎么组织的,还不错,没有白费我不分白天黑夜的下载代码,总结出了一点。仅供借鉴,一个项目的文件夹主要分为三部分。第一部分就是本项目的关注。
比如cocos2d-x的。主文件夹就是cocos2d-x.也能够叫做核心的文件夹吧,主要功能就是这个文件文件夹了。
再者就是部件文件夹,非常多项目是有一些可供选择的部件来供用户选择的。比如dxut中的optional,cocos2d-x中的CocosDenshion.再者还有就是项目的扩展了,名字在各种项目里面差点儿都是extension。加不加s倒是小问题了,项目的扩展功能或者部件。
这样子项目的文件夹就完毕了。第二部分就是利用的别的库了。比方你用qt库,opengl库,这些东西放到哪儿呢。就是external,这个在各种项目里面也是差点儿相同。呵呵,第二部分就是这些了。
第三部分就比較详细一些了,主要是小的方面。
比如doc说明文档的文件夹,developer參与开发人员的文件夹,sample入门的样例程序文件夹,license各种库或者协议的利用许可,tools假设项目中利用到这些工具就放到这个文件夹了。
我见过的最大的项目程序20G,文件夹组织和我说的也是类似的
,只是会有一个Public文件夹,一般存放sdk。不知道应该归到哪部分,临时不提。
看了这些那么cocos2d-x的文件夹就会非常快的读懂了,甚至再遇见别的项目的文件夹也能够触类旁通了。我就不说了。
cocos2d-x的语言
我还没到实战的地步,只是也知道,基本的编程语言就是C++了。再者控制脚本语言就是lua和js了,只是创建project的时候用到python。
总结
学习引擎的时候须要关注一个深入点,不是说不了解别的引擎。而是广泛的查阅以后,最后选择一个你觉得比較好的去研究。
研究一个以后你甚至能够自己写一个,哪个都是后话了。
这篇博客主要是关注cocos2d-x的讨论,没有什么实质的内容,只是讨论的越多才会越深入,了解的才会越多。
Cocos2d-x初识的更多相关文章
- 【Cocos2D研究院之游戏开发】
http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发] 201211-19 Co ...
- Cocos2d-x v3.1 初识(一)
Cocos2d-x v3.1 初识(一) Cocos2d-x从以前苹果平台上的Cocos2d发展而来,版本已经更新到了3.1.1.作为一个跨平台的游戏开发引擎,现在已经被上百个国家在使用,这也是国人的 ...
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
随机推荐
- cobbler常用目录/命令(三)
常用目录: /var/www/cobbler/ks_mirror/ cobbler distro文件目录 /var/lib/tftpboot/pxelinux.cfg/d ...
- cinema 4d 包括宝典 --- 改线 循环边 建模布线原则
cinema 4d 一.视图控制与物体控制 1.摇移 alt+鼠标左键 转圈看物体 改变角度 2.平移 alt +鼠标中键 不改变角度 移动 3.推拉 alt+鼠标右键 ...
- 台州学院we are without brain 训练 计算几何
A - View Angle Flatland has recently introduced a new type of an eye check for the driver's licence. ...
- 测试jsonp
login<?php $type = $_GET['type']; if(empty($type)) { $url = ""; }else { if($type == 'lo ...
- HDU1877 又一版 A+B
Problem Description 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数. Input 输入格式:测 ...
- 【Luogu】P3313旅行(树链剖分)
题目链接 动态开点的树链剖分qwq. 跟小奇的花园一模一样,不做过多讲解. #include<cstdio> #include<cstring> #include<cct ...
- ida动态调试笔记
ida动态调试笔记 目标文件:阿里安全挑战赛的第二题 点击打开链接 使用环境:ida6.8点击打开链接,adt bundle点击打开链接 首先打开avd安卓模拟器,界面如下: 在dos下运行adb命令 ...
- ACM程序设计选修课——Problem F:(ds:图)旅游规划(优先队列+SPFA)
问题 F: (ds:图)旅游规划 时间限制: 1 Sec 内存限制: 128 MB 提交: 14 解决: 4 题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路 ...
- JavaScript阻止冒泡和取消事件默认行为
//功能:停止事件冒泡 function stopBubble(e) { if ( e && e.stopPropagation ) { e.stopPropagation(); } ...
- dom方法insertAfter的实现
在dom的原生api中,只用insertBefore,没有insertAfter,借助原有的api,可以模拟一个insterAfter. function insterAfter(newElement ...