Cocos2d-x v3.1 Hello world程序(四)
Cocos2d-x v3.1 Hello world程序(四)
在上一篇文章中我们我们已经使用Cocos-Console工具生成了工程,本机生成的目录为:“D:\CocosProject\Tutorial”。我们进入该目录中,如下图:
本篇文章我们将使用Cocos2d-x引擎写一个最简单的工程——“Hello world”。我们将使用VS2012进行win32程序的开发,然后使用ADT生成Android的APK程序,当然我们也可以使用Cocos-Console来生成APK程序。接下来我会对生成的工程中的文件做一个简单的说明并介绍两种生成APK的方式。
工程文件夹介绍
- Classes: 主要存放我们CPP文件。
- CMakeFiles: 存放CMake的临时文件。
- cocos2d: 引擎的源代码目录。
- proj.android: android项目目录,使用ADT导入。
- proj.iso.mac:XCode的项目目录。
- proj.linux:linux项目目录,主要用于在linux下生成程序。
- proj.win32: Windows项目目录,VS2012工程目录。
- proj.wp8-xaml:Win8项目目录,VS2012工程目录,使用C#进行开发。
- Resource:资源目录,用于存放贴图、音频、地图等一些游戏中使用的资源,我们从CocoStudio中导出的资源也要放入此目录。
工程文件介绍
- AppDelegate.*文件:程序的引擎的启动文件,由main.*文件中的程序入口函数_tWinMain构造的对象并调用的run函数。
- HelloWorldScene.*文件:主场景文件,我们的“Hello world”代码也在这里写。
- main.*文件:程序入口函数所在文件。
编写Hello world程序
打开HelloWorldScene.cpp,找到“init”函数,其实在里面都已经有了Hello world的代码。我就不把它删了再写了,看一看就能明白了。代码如下:
1: bool HelloWorld::init()2: {3: //////////////////////////////4: // 1. super init first5: if ( !Layer::init() )6: {7: return false;8: }9:10: Size visibleSize = Director::getInstance()->getVisibleSize();11: Vec2 origin = Director::getInstance()->getVisibleOrigin();12:13: auto closeItem = MenuItemImage::create(14: "CloseNormal.png",15: "CloseSelected.png",16: CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));17:18: auto menu = Menu::create(closeItem, NULL);19: menu->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2));20: this->addChild(menu, 1);21:22: auto label = LabelTTF::create("Hello World", "Arial", 24);23: label->setPosition(Vec2(origin.x + visibleSize.width/2,24: origin.y + visibleSize.height - label->getContentSize().height));25: this->addChild(label, 1);26:27: auto sprite = Sprite::create("HelloWorld.png");28: sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));29: this->addChild(sprite, 0);30:31: return true;32: }
第5行是调用基类的初始化函数对层进行初始化,第10、11行获取可视化区域的尺寸和原点,第13-20是创建左下方的退出菜单22-25是在屏幕中心创建一个文本标签“Hello world”, 27- 29创建了一个精灵(Sprite)对象在屏幕中心。我们直接编译运行看结果吧。
生成APK
- 使用ADT生成APK
1.打开ADT目录找到eclipse的启动文件(本机目录:D:\Cocos\adt-bundle-windows-x86\eclipse)双击eclipse.exe打开开发环境。
2.执行“文件”->“导入”,如下图:
3.选择我们生成的工程目录(本机目录为:D:\CocosProject\Tutorial)
4.点击完成
- 使用Cocos-Console生成APK
打开CMD进入到工程目录(本机目录为:D:\CocosProject)。输入如下命令:“cocos run –s ./Tutorial –p android –m release”。
编译可能会花费很长的时间。当编译完后,我们会再proj.android目录下的bin目录里找到生成的APK(本机目录:D:\CocosProject\Tutorial\proj.android\bin)。
Cocos2d-x v3.1 Hello world程序(四)的更多相关文章
- Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍
Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍 博客:http://blog.csdn.net/prevention 笔者:犀利哥 - 第一部分:一个 Cocos2d-iP ...
- Arduino可穿戴教程之第一个程序——上传运行程序(四)
Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5 上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在打开MainScene.m文件,首先设置实例变量: @imp ...
- 如何在Cocos2D 1.0 中掩饰一个精灵(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了完成需要的效果,我们将使用如下策略: 我们将首先绘制掩饰精灵 ...
- Cocos2D:塔防游戏制作之旅(四)
让我们看一下项目的结构.在TowerDefense文件夹,你将找到: 含有Cocos2D文件的libs文件夹 含有所有图片和声音的资源文件夹 现在,你已经准备就绪准备开始建造炮台之旅了 ;) 放置炮塔 ...
- 转【微信小程序 四】二维码生成/扫描二维码
原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端 二维码生成 二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示的时 ...
- 第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]
[案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...
- 小程序四:视图之WXSS
WXSS(WeiXin Style Sheets)是MINA设计的一套样式语言,用于描述WXML的组件样式. WXSS用来决定WXML的组件应该怎么显示. 为了适应广大的前端开发者,我们的WXSS具有 ...
- 微信小程序四(设置底部导航)
好了 小程序的头部标题 设置好了,我们来说说底部导航栏是如何实现的. 我们先来看个效果图 这里,我们添加了三个导航图标,因为我们有三个页面,微信小程序最多能加5个. 那他们是怎么出现怎么着色的呢?两步 ...
随机推荐
- 使用python已知平均数求随机数
问题描述:产生40个数,范围是363-429之间,平均值为402 思路: 1 产生一个随机数 2 使用平均数减去随机数求出第二个数,生成20组 3 将排序打乱 # -*- coding: cp936 ...
- Webservice 或者HttpRequest请求的时候提示 “指定的注册表项不存在”错误 解决方案
今天又遇到神奇的事情,在使用WebService的时候居然提示“指定的注册表不存在.” The specified registry key does not exist. Google后发现,原来是 ...
- hdu1055
#include<iostream> #include<iomanip> #include<cstdio> #include<cstring> #inc ...
- hdu1053
#include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b) { retu ...
- JAVA IO包的整理---------Writer和Reader
一 Writer public abstract class Writer extends Object implements Appendable, Closeable, Flushable 这个类 ...
- unity3d AssetStore 下载的资源位置
Win7,8和Win10系统下: 进入C:\Users\“用户名”目录,然后打开文件夹选项的显示隐藏文件选项 再进入AppData\Roaming\Unity/Asset Store-5.x下找到 M ...
- JS中的for....in循环 和 for ...of循环以及iterable遍历Map和Set
for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来: var o = { name: 'Jack', age: 20, city: 'Beijing' }; for ...
- 解决Navicat无法连接到Mysql
Navicat无法连接到Mysql,返回的错误码是Lost connection to MySQL server at ‘reading initial communication packet’, ...
- 《OD学spark》20160924scala基础
拓展: Hadoop 3.0 NameNode HA NameNode是Active NameNode是Standby可以有多个 HBase Cluster 单节点故障? HBaster -> ...
- gulp前端自动化构建工具
博主不易,不求赞赏,希望把自己遇到的难点写出来,以及希望自己能有能力写出一篇不错的博文. 前端构建工具本人 bootstrap+jquery用gulp vue+element 用webpack 引文 ...