[转帖]Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
转自 http://www.cocoachina.com/bbs/read.php?tid=194668
前天, 在CocoaChina 2014春季大会上, 激动人心的Cocos2d-x 3.0和CocoStudio 1.3发布了. Cocos2d-x 3.0做出令人兴奋的性能, 易用性等一系列改进, CocoStudio 1.3带来了稳定性和新特性. 今天让我们看下如何在新建Cocos 3.0rc0的Win32的工程中添加CocoStudio的支持.
一 软件及其下载
1. Cocos2d-x 3.0rc
http://cdn.cocos2d-x.org/cocos2d-x-3.0rc0.zip
2. CocoStudio 1.3
在CocoStudio 1.3中可以直接创建Cocos2d-x项目, 所以这次的安装包有3个.
仅含CocoStudio 1.3
http://126.am/YDrVk1
CocoStudio 1.3包含了Cocos2d-x 3.0rc0
http://126.am/lorYp2
CocoStudio 1.3 包含了Cocos2d-x 2.2.3
http://126.am/eGo4f4
3. Python 2.7.6
Cocos2d-x的脚本用到了Python, Win下没有自带Python, 大家还需要下载Python.
Python的版本我这里推荐大家用最新的2.7.6. 因为Python的2.x和3.x不兼容, 所以一定不能用3.x的版本
大家可以根据自己的系统下载对应的版本.
https://www.python.org/download/releases/2.7.6/
4. Visual Studio
地球人都知道啦. 我今天演示采用的版本是Visual Studio 2013.
VS2010, VS2012, 下面提到的需要设置的地方, 都是相同的. 请大家自行下载安装.
二 Python的安装和设置
安装基本上就是下一步, 下一步就好了. 中间安装路径, 我选择的是"C:\Python27\", 等下要用到这个路径.
右键单击“计算机”,选择“属性”----》“高级系统设置”,在“高级”选项卡下选择“环境变量”!
在“系统变量”下选中“Path”,并点击下方的编辑按钮:
在弹出的“编辑系统变量”对话框中编辑“变量值”,在“变量值”的后面添加Python的安装路径(C:\Python27\),用英文分号(;)将其与后面的其他内容隔开。
同样地,在“PATHEXT“的变量值中添加 .PY;.PYM .
打开cmd控制台,输入 python,如果出现如下提示,则说明python安装成功.
如果你设置环境变量前已经打开了cmd, 需要重新打开cmd.
三 创建Cocos2d-x 3.0rc0项目
在Cocos2d-x 3.0rc0中, 引入cocos2d-console这一新的Cocos2d-x工具.
在console中你可以完成2d-x的新建项目, 编译甚至在模拟器里面运行项目.
我们先来看下如何使用cocos2d-console创建新的项目.
我们将下载好的2d-x 3.0rc0解压到C:\cocos2d-x-3.0rc0.
我们打开cmd, 切换到C:\cocos2d-x-3.0rc0 目录
运行python setup.py.
中间会询问几个Android开发需要的地址, 我们今天不涉及Android开发, 直接回车跳过即可.
最后会提示我们重启电脑, 我们重启电脑.
接下来我们在C:\Work目录中创建新项目HelloCocos.
打开终端, 切换到C:\Work目录中.运行cocos new命令.
这里我们可以看到cocos new的用法.
我们接着输入命令 cocos new -p com.young40.hellococos -l cpp HelloCocos
其中-p是包名, -l 选择了cpp即C++开发, HelloCocos是项目名称.你可以替换为自己喜欢的名称.
我们打开C:\Work\HelloCocos\proj.win32\HelloCocos.sln, 如果提示升级项目, 选择确定即可.
点击F5, 运行项目. 稍等编译完成后, 我们就可以看到我们熟悉的HellWorld了.
四 在项目中添加CocoStudio支持
我们在VS中找到"解决方案资源管理器", 在解决方案"HelloCocos"上点击右键, 选择添加现有项目.
在弹出的对话框中选择C:\Work\HelloCocos\cocos2d\cocos\editor-support\cocostudio\proj.win32\libCocosStudio.vcxproj
然后继续添加C:\Work\HelloCocos\cocos2d\extensions\proj.win32\libExtensions.vcxproj
然后继续添加C:\Work\HelloCocos\cocos2d\cocos\ui\proj.win32\libGUI.vcxproj
然后我们在HelloCocos项目上点击右键选择添加引用
在弹出的对话框中选择添加引用, 并勾选libCocosStudio, libGUI和libExtensions后点击确定.
如果大家使用的是VS2012或者VS2013, 可能会看到项目被标记为VS2010, 这里我们升级下项目设置, 否则可能无法编译.
然后, 我们HelloCocos项目属性(点击右键选择属性)中选择 "配置属性" => "C/C++" => "附加包含目录" 并编辑.
添加下面几行
$(EngineRoot)cocos
$(EngineRoot)extensions
$(EngineRoot)cocos\editor-support\
$(EngineRoot)cocos\editor-support\cocostudio
编译一下工程, 还是能运行吧. 如果遇到问题, 不妨来CocoaChina论坛的CocoStudio专区来继续交流.
五 添加代码
我们打开CocoStudio 1.3的动画编辑器, 打开一个HeroAnimation的示例, 并直接导出, 将导出的文件放C:\Work\HelloCocos\Resources下面.
我们打开HelloWorld.cpp给其添加引用以及命名空间
然后修改下HelloWorld::init函数, 在return前加入
好了, 赶快运行下吧.

上文为转载的帖子,基本全部操作完成,最后加入cocostudio时有点坑。时间太久,忘记了当时遇到的都是哪些具体问题。归根结底就是,cocos2d更新太快,相应文档更新则太慢,不同版本间的代码兼容性略差造成的。
扒出来了自己的代码,运行了一下,可以出界面。
源码如下:
#include "HelloWorldScene.h"
#include "CocoStudio.h"
using namespace cocostudio;
USING_NS_CC; Scene* HelloWorld::createScene()
{
// 'scene' is an autorelease object
auto scene = Scene::create(); // 'layer' is an autorelease object
auto layer = HelloWorld::create(); // add layer as a child to scene
scene->addChild(layer); // return the scene
return scene;
} // on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
} Size visibleSize = Director::getInstance()->getVisibleSize();
Point origin = Director::getInstance()->getVisibleOrigin(); /////////////////////////////
// 2. add a menu item with "X" image, which is clicked to quit the program
// you may modify it. // add a "close" icon to exit the progress. it's an autorelease object
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); closeItem->setPosition(Point(origin.x + visibleSize.width - closeItem->getContentSize().width/ ,
origin.y + closeItem->getContentSize().height/)); // create menu, it's an autorelease object
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Point::ZERO);
this->addChild(menu, ); /////////////////////////////
// 3. add your codes below... // add a label shows "Hello World"
// create and initialize a label auto label = LabelTTF::create("Hello World", "Arial", ); // position the label on the center of the screen
label->setPosition(Point(origin.x + visibleSize.width/,
origin.y + visibleSize.height - label->getContentSize().height)); // add the label as a child to this layer
this->addChild(label, ); // add "HelloWorld" splash screen"
auto sprite = Sprite::create("HelloWorld.png"); // position the sprite on the center of the screen
sprite->setPosition(Point(visibleSize.width/ + origin.x, visibleSize.height/ + origin.y)); // add the sprite as a child to this layer
this->addChild(sprite, ); cocos2d::ui::Widget * layout = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("testingMyUI.json");
layout->setPosition(Point::ZERO);
layout->setScale(this->getContentSize().width / layout->getContentSize().width);
this->addChild(layout, );
layout->setOpacity(); auto fadeIn = FadeIn::create();
auto delay = DelayTime::create();
auto fadeOut = FadeOut::create();
auto callback = CallFuncN::create([=](Ref* pSender){ });
auto finalAction = Sequence::create(fadeIn,delay,fadeOut,callback,NULL);
layout->runAction(finalAction); return true;
} void HelloWorld::menuCloseCallback(Ref* pSender)
{
Director::getInstance()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit();
#endif
}
HelloWorldScene.cpp
[转帖]Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库的更多相关文章
- 给新建的Cocos2d-x 3.X的Win32工程添加CocoStudio库
1.我们在VS中找到"解决方案资源管理器", 在解决方案"HelloCocos"上点击右键, 选择添加现有项目. 在弹出的对话框中选择************* ...
- Win32工程中使用MFCdll的解决方法
我的项目是Win32,先使用了 Standard Windows Libraries,可后期又要要使用MFC的dll,所以要更改工程属性 ,MFC 的dll可以使用了,但标准的windows的dll出 ...
- Win32编程之静态库编写与使用.动态链接库的编写与使用
Win32编程之静态库编写与使用.动态链接库的编写与使用 一丶什么是静态库.什么是动态链接库. 静态库其实就是解决模块开发的一种解决方案.在以前.我们写代码的时候.每个人都可以独立写一个项目.但是现在 ...
- quick cocos2dx 3.x 配置win32工程
公司项目主体部分用c++,而ui部分用lua写,所以选择了用quick框架.项目先开发了ios/mac版,这两天试着配置其win32工程,遇到一些问题,记录一下(纯c++版本cocos2dx配置方法应 ...
- cmake 如何生成一个win32工程
只需要加上下面一句连接选项就可以了. IF(WIN32) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:W ...
- cocos2d JS touch(触摸监听)-快速添加事件监听器到管理器
cc.eventManager.addListener({ event: cc.EventListener.TOUCH_ALL_AT_ONCE, onTouchesMoved: function (t ...
- win32程序应用mfc库
引入<afx.h> 此时会出现如下错误: #ifdef _DLL#ifndef _AFXDLL#error Building MFC application with /MD[d] (CR ...
- [转帖]Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案
Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案 https://www.cnblogs.com/xlecho/p/11834011.html echo编辑整理,欢迎转载,转 ...
- Cocos2d-x 开发 v3.2 建立新项目并添加库文件
一.添加其它类库 3.0以上的设计耦合性强,项目中模块常以库的形式存在,需常添加链接库.在3.0中经常用到CocoStudio 编辑器的资源数据,所以需要添加CocoStudio 库. 1.1 ...
随机推荐
- java之八大排序
的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的.如此反 ...
- Android Gson解析json详解
目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...
- python中in在list和dict中查找效率比较
转载自:http://blog.csdn.net/wzgbm/article/details/54691615 首先给一个简单的例子,测测list和dict查找的时间: ,-,-,-,-,,,,,,] ...
- eclipse Java compiler level does not match the version of the installed Java project facet.
eclipse Java compiler level does not match the version of the installed Java project facet. Create ...
- web页面中可以包含多个对象
# encoding=utf-8 #python 2.7.10 #xiaodeng #web页面中可以包含多个对象 #HTTP权威指南 10页 #应用程序完成一项任务时通常会发布多个http事务.如: ...
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名(转)
本 文记叙的是一次基于SSL的socket通讯程序开发中,有关证书,签名,身份验证相关的步骤. 我们的场景下,socket服务端是java语言编写的,客户端是c语言.使用了一个叫做matrixssl的 ...
- WIFI物联网平台微信端开发分享
本文由企鹅圈原创成员Hunter_Zhu贡献. 本篇文章是基于近期一个项目微信端开发过程的一个总结.文中主要介绍了云智易平台下微信端开发的流程.该平台提供的主要功能以及此次H5开发使用到的一些UI组件 ...
- PHP中的一些新特性
PHP 5.6 1.可以使用表达式定义常量 https://php.net/manual/zh/migration56.new-features.php 在之前的 PHP 版本中,必须使用静态值来定义 ...
- HDUOJ-----2065"红色病毒"问题
"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 解决js中文输入法无法触发onkeyup事件问题(转)
当监听一个input的keyup的事件的时候,英文输入法的情况下可以实时的通过keyup事件检测到文本框value的变化,但是当输入法变成中文后,input的keyup事件就不会被正常触发. onin ...