相信每个人都有一些自己的项目开发习惯,在·开篇·中我主要是会提到一些项目的配置问题.无论做一款什么样的手游项目,我们总是会从需求的角度出发去选择开发引擎,开发工具等一些列的工具去完善我们的开发环境.当然,对引擎的选择是很关键的(我们不讨论的需求,因为毕竟不是针对真是的展品,从学习交流的角度),不过我们这边只会选择cocos2d-x.

对于cocos2d-x,我总是赶不上官方更新的脚步.官方更新cocos engine(废除掉cocostudio以后的新东西),cocos2d-x engine开发包,cocos ide的脚步比较快,我选择的是cocos2d-x 3.3final.开发工具选择的不是cocos ide,而是一般的文本编辑器,根据个人爱好吧,我选用的是sublime text, 也可以选用ue,或者是ms新发出的code.前期需要的就只需要这么多到了.因为选用的版本是cocos2d-x 3.3 final.所以coco engine可能是没法用的.在后续的部分,我会给出一个我自己的解决方案,也可以先透漏一下,Ui部分自己写一个lua层面的中间解析库.动画部分用cocostudio v1.6来做就好了.这个呢就先带过吧.

上面也是透漏了,我不会选用单纯的c++去做,主要的原因是我对c++0x11不熟悉,一直没时间去学这个东西.从效率的角度出发,当然是c++要更快,更快也是要付出代价的,对程序员的素质要求也就更高.脚本的支持也是很多的,还是选用lua吧,其他脚本还要花时间去学习,虽然不是很难,可是还是在熟悉的领域做事比较舒服.废话也就这么多了,下面是要配置一下我们的win开发环境。

我不是高富帅,只有x86机器,所以我们来配置一下window开发环境.具体的文档可以参考cocos2dx-3.3/tools/bindings-generator/README.md文档. 对于一直使用cocos ide的同学可能有些人没有配置过,不过没关系,都是点点鼠标的事情,没什么难的.

下面我们创建一个自己的项目, 我给这一系列的项目起了一个名字叫做 firework. 这个名称的由来很简单, 就是想简单一点. cocos2d-x提供了终端脚本来创建项目,不过要在CMD穿越一大堆的目录还是略显蛋疼, 所以我就写了几个WIN32批处理脚本.

 @echo off
@setlocal :start set PYTHON_BIN=python
set COCOS_BIN=E:\cocos2d-x-3.3\tools\cocos2d-console\bin\cocos.py
set PROJECT_NAME=firework
set PACKAGE=com.respawn.firework
set LANGUAGE=lua
set DST=../ %PYTHON_BIN% %COCOS_BIN% new %PROJECT_NAME% -p %PACKAGE% -l %LANGUAGE% -d %DST% pause

这个脚本很简单, 使用的时候可以先创建这样的文件目录结构.

-- c2dx-firework-lua(我的项目根文件夹)

-- scripts

-- create-project.cmd

-- compile-win32.cmd

-- compile-android.cmd

-- firework(create-project.cmd创建的cocos2dx项目)

创建好项目之后就是编译咯. 我给出我的编译脚本.也就是上面的(compile-win32/android.cmd)

 @echo off
@setlocal :start set PYTHON_BIN=python
set COCOS_BIN=E:\cocos2d-x-3.3\tools\cocos2d-console\bin\cocos.py
cd ../firework
%PYTHON_BIN% %COCOS_BIN% compile -p win32 -j2 pause

相同, compile-android.cmd则直接修改上面的编译平台就行了.这个大家应该都是知道的.至于是不是用多线程编译就视自己的机器情况而看吧.

编译好之后我们在scripts同级目录创建一个文件夹, 用作WIN32开发的根目录. 因为win32编译之后的文件目录层次有点深了, 每次都需要一点点点到那边很费劲. 所以干脆就移除来吧. 另外这么做的目的也是方便SVN/GIT管理.总不能把所有firework目录的东西都上传到版本仓库吧.太大了, 使用过得就都知道.好的, 我加上了版本号,创建了一个firework-v1.0的文件夹.在下面又创建了两个子文件夹也就是apk/和win32-build.

-- c2dx-firework-lua(我的项目根文件夹)

-- scripts

-- create-project.cmd

-- compile-win32.cmd

-- compile-android.cmd

-- firework(create-project.cmd创建的cocos2dx项目)

-- firework-v1.0

--apk

--win32-build

我们将编译好的runtime下面的文件以及库对用WIN32都拷贝到win32-build下面.如果打包了那就把apk拷贝到apk下面.然后firework-v1.0就作为仓库的一个子目录上传就好了.这样无论是同步还是更新的速度都很快.好了,开篇的文章就是这么多了.

`cocos2dx非完整`开篇的更多相关文章

  1. `cocos2dx非完整` 添加xxtea加密模块

    在上一篇文章中,我已经开始着手写自己的模块,也就是fw部分.其中上一篇文章中完成的是lua部分的配置解析部分,涉及一点点平台方面的封装.这一片文章我来说明一下我是如何处理cocos2dx资源加密的.首 ...

  2. `cocos2dx 非完整` UI解析模块

    昨天在cocos2dx的一个群里,遇到一位匿名为x的朋友询问的问题,是关于ui的.他使用c++写了不少的ui封装节点,用来实现游戏中的各种不同效果.然后现在想改用lua,于是尝试使用最小代价去复用自己 ...

  3. `cocos2dx非完整` 日志模块 增量更新

    在上一篇文章中,说到了"流程"的由来,以及我对流程的使用. 这一片就是对流程的应用.前一篇文章中说到了三条流程 check_log_measure, check_env_measu ...

  4. `cocos2dx非完整` 游戏架构缩影 添加启动流程

    这期的话题可能不是很好, 我没有想到很好的词句去更好的表达. 我一直都是很固执的认为, 同一类型的游戏,在开发做的前期工作上面其实都是可以复用的,也就是大同小异的.从游戏启动,启动日志,启动检查,检查 ...

  5. `cocos2dx非完整` 开始自己的FW模块

    上一篇的文章中说到了一些个人习惯的东西以及一些简单的项目配置,这一篇文章我们来进一步完善一些东西.首先,打开编译以后的客户端执行,会看到一大堆的fileutils加载luac文件的提示,在终端显示一大 ...

  6. 新版本ffmpeg解码非完整H264帧失败

    按照ffmpeg/doc/examples/decoding_encoding.c中video_decode_example解码H264,新版本ffmpeg解码非完整H264帧,定量读取数据直接给av ...

  7. `fw服务端非完整` 工程开发初期的工作

    前面写到了一些关于cocos2dx在开发中的一些模块以及一些解决方法,那些都属于本人的个人简介和个人倾向的解决方案.最近这几天我完善了一下ui解析的部分,当然也只是抽出一点点时间去做的这件事情.我添加 ...

  8. hadoop学习day1环境配置笔记(非完整流程)

    hdfs的工作机制: 1.客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户 ...

  9. 利用樹霉派採集溫濕度上傳到OneNET(非完整,僅參考)

    看圖: Python代碼: #env /usr/bin/python3 #author Bruce import RPi.GPIO as GPIO import time import json im ...

随机推荐

  1. web前端基础——jQuery编程基础

    1 jQuery简介 jQuery是一个兼容多浏览器的JavaScript库,核心理念是write less,do more(写得更少,做得更多).它对JavaScript进行了封装,使开发更便捷,并 ...

  2. uva111动态规划之最长公共子序列

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=74662#problem/C     A B C D E C - Largest Rect ...

  3. javaweb回顾第五篇浅谈会话

    1:什么是会话 通俗来说就是客户和服务器的一次私密谈话,客户发送请求以后服务器能够识别请求是来自同一个客户,他们是1对1的关系. 了解会话以后我们就要去考虑如何去实现这些问题下面一一进行解析 2:会话 ...

  4. 深入学习系列--Data Structure--02字符串

    字符串可以说是我们实际工作中使用最多的数据类型了,常见的字符串操作包括链接.取子串.格式化等.这部分内容总体来说比较容易理解,最难的部分要数字符串的模式匹配方法了,尤其是KMP算法,需要通过实践加以记 ...

  5. Oracle数据库恢复

    建用户 wf2014 赋权限 grant dba to wf2014; 数据恢复 imp wf2014/wf2014 file=D:\wf2014.dmp full=y 参数设置: datasourc ...

  6. 在jsp中重复定义了两个相同id的标签导致的错误

    jQuery做前台开发的程序有一个页面在IE11和谷歌浏览器下都没有问题,但是在XP的IE8下运行就报错: 后来发现是定义了两个相同id的标签所致. 在icCard.jsp中定义的标签: 在carIn ...

  7. nginx用户认证配置( Basic HTTP authentication)

    ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...

  8. Javascript:常用函数封装

    //cookie function setCookie(name, value, iDay) { if(iDay!==false) { var oDate=new Date(); oDate.setD ...

  9. 从《BLAME!》说开去——新一代生产级卡通真实感混合的渲染方案

    <BLAME!>是Polygon Pictures Inc.(以下简称PPI)创业33周年以来制作的第一部CG剧场电影,故事来自于贰瓶勉的同名漫画作品(中文译名为<探索者>或者 ...

  10. Android开发:第四日番外——Assets文件夹和RAW文件夹区别

    话说上回说到SQLite数据库,其中涉及到把已经设计好的数据库打包到APK中,提到可以放置在Assert文件夹或者RAW文件夹中,那么两者到底有什么区别呢?让我们来探究一下. 一.res/raw和as ...