cocos2dx基础篇(1) Cocos2D-X项目创建
已经入行工作半年多时间了,以前都是把这些东西记录在有道云上面的,现在抽出些时间把以前的笔记腾过来。
具体的环境配置就不用说了,因为现在已经是2018年,只需要下载对应版本解压后就能使用,不用再像多年前那样配置环境
需要的安装包:vs2013,cocos2d-x-2.2.3.zip,python-2.7.8
我自己用的是cocos2d-x-2.2.6,学习最初用的这个版本,后来才用的3.x版本
项目创建方法(使用python创建)
cocos2.x版本
在tools\project-creator文件夹下有 create_project.py 进入这个文件夹
cd D:\cocos2d-x-2.2.6\tools\project-creator
然后 d:
创建工程目录:
python create_project.py -project projectname -package com.XXXX.XXXX -language cpp
python create_project.py:运行脚本的工具以及创建工程的脚本
-project projectname:工程名
-package com.XXXX.XXXX :包名
-language cpp:开发语言,可选项有cpp,lua,javascript
产生的目录路径:D:\cocos2d-x-2.2.6\projects
cocos3.x版本
没有tools\project-creator文件夹
cd G:\cocos2dx\cocos2d-x-3.16
创建工程目录:
cocos new HelloWorld -p com.LMX.HelloWorld -l cpp -d projects
cocos new -l lua -p com.org.Gao -d F:\cocosPorject
查看cocos2d版本
在工程目录libcocos2d下面有一个文件cocos2d.cpp
#include "cocos2d.h"
NS_CC_BEGIN
const char* cocos2dVersion()
{
return "cocos2d-x 2.2.6";
}
NS_CC_END
工程的入口,从main.cpp开始
#include "main.h"
#include "AppDelegate.h"
#include "CCEGLView.h"
USING_NS_CC;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// create the application instance
AppDelegate app; // delegate表示代理
CCEGLView* eglView = CCEGLView::sharedOpenGLView(); // shared表示单例
eglView->setViewName("WangGuiLin");
eglView->setFrameSize(1024, 768);
return CCApplication::sharedApplication()->run();
}
真正意义上的入口
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
CCDirector* pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);
// 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);
// 创建场景
CCScene *pScene = HelloWorld::scene();
// 运行场景
pDirector->runWithScene(pScene);
return true;
}
上面运行了由HelloWorld创建的场景,接下来看看HelloWorld
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::CCLayer
{
public:
// 真正的初始化
virtual bool init();
// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::CCScene* scene();
// 回调函数
void menuCloseCallback(CCObject* pSender);
// 里面调用了初始化
CREATE_FUNC(HelloWorld);
};
#endif // __HELLOWORLD_SCENE_H__
这里的scene()只创建scene和layer,并将layer加入scene,然后返回scene
CCScene* HelloWorld::scene()
{
// 创建场景
CCScene *scene = CCScene::create();
// 创建层
HelloWorld *layer = HelloWorld::create();
// 将层加入场景
scene->addChild(layer);
// 返回场景
return scene;
}
cocos2dx基础篇(1) Cocos2D-X项目创建的更多相关文章
- cocos2dx基础篇(3) 常用重要类
---------------------------------------- 入口类main.cpp 主要控制类AppDelegate.cpp -------------------------- ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介
很久之前就打算开始写一下自己的技术博客了,实在抽不出时间所以计划一直搁置了,最近项目进度渐渐缓了下来,不那么忙了,也因此开始筹备自己的博客.说到这次博客的主角,也是无心插柳找到的,来源于两年前自己写的 ...
- 【SSM之旅】Spring+SpringMVC+MyBatis+Bootstrap整合基础篇(一)项目简介及技术选型相关介绍
试水 一直想去搭建个自己的个人博客,苦于自己的技术有限,然后也个人也比较懒散.想动而不能动,想动而懒得动,就这么一直拖到了现在.总觉得应该把这几年来的所学总结一番,这样才能有所成长. 不知在何时,那就 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍
作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载. 萌芽阶段 很久之前就开始打算整理一下自己的技术博客了,由于各种原因(借口 ...
- 【Cocos2d入门教程二】Cocos2d-x基础篇
上一章已经学习了环境的搭建.这一章对基础概念进行掌握.内容大概有: 1.导演 2.场景 3.节点 4.层 4.精灵 1.导演(Director) 导演存在的主要作用: a.环境设定(帧率 初始化ope ...
- cocos2dx基础篇(15) 列表视图CCTableView
[3.x] (1)去掉 "CC" (2)TableViewCell 中: > unsigned int getIdx() 返回类型改为 ssize_t(类型为 long) ( ...
- Cocos2dx.3x入门三部曲-Hello Game项目创建(二)
一.前提: 完成cocos2d-x-3.x开发环境的安装配置. 具体参考:Cocos2d-x.3x_软件配置篇 二.本篇目标: l 创建一个名为hello game的cocos2dx 3.3的项目 ...
- cocos2dx基础篇(4) 标签CCLabel
[本节内容] cocos2dx三种文字字体的显示:CCLabelTTF(一般字体).CCLabelAtlas(自定义字体).CCLabelBMFont(自定义字体) CCLabelTTF CCLabe ...
随机推荐
- mysql5.6新功能索引条件下推(转载)
原文地址:http://www.cnblogs.com/zengkefu/p/5684101.html 一什么是"索引条件下推" "索引条件下推",称为 Ind ...
- QR分解迭代求特征值——原生python实现(不使用numpy)
QR分解: 有很多方法可以进行QR迭代,本文使用的是Schmidt正交化方法 具体证明请参考链接 https://wenku.baidu.com/view/c2e34678168884868762d6 ...
- 本地安装sass出错问题解析
2016年3月23日个人博客文章--迁移到segmentfault 安装sass ruby安装因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候 ...
- java——解决"java.io.StreamCorruptedException: invalid stream header: xxx"
这个错误是由序列化引起的,可能的原因以及解决方法: 1.kryo对于集合(比如 Map)的反序列化会失效,报这个错误,解决办法比较暴力,不用kryo了,直接用java原生方法. 2.使用Java原生方 ...
- C# 跨窗体事件
跨窗体事件:例如从一个窗体改变另一个窗体button的颜色,首先需要将需要改变button的属性改为public using System; using System.Drawing; using S ...
- [深度学习] pytorch学习笔记(1)(数据类型、基础使用、自动求导、矩阵操作、维度变换、广播、拼接拆分、基本运算、范数、argmax、矩阵比较、where、gather)
一.Pytorch安装 安装cuda和cudnn,例如cuda10,cudnn7.5 官网下载torch:https://pytorch.org/ 选择下载相应版本的torch 和torchvisio ...
- JavaScript RegExp ——对象,语法,修饰符,方括号,元字符,量词,对象方法,对象属性
㈠RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具. ㈡语法 var patt=new RegExp(pattern,m ...
- Word:图片压缩
造冰箱的大熊猫,本文适用于Microsoft Word 2007@cnblogs 2018/12/1 图片插入Word文档后,可以通过“裁剪”功能只显示图片的部分区域.虽然文档中显示的图片区域变小了, ...
- (Java多线程系列六)join()的用法和线程的优先级
join()的用法和线程的优先级 1.join()的用法 join()作用就是让其他线程处于等待状态 先看一个需求:创建一个线程,子线程执行完毕后,主线程才能执行 public class JoinT ...
- 2-sat基础详解
(大量引用<2-SAT解法浅析 -by 华中师大一附中 赵爽><由对称性解2-SAT问题> Great_Influence关于P4782 [模板]2-SAT 问题的题解.在此对 ...