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 first
  5:     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程序(四)的更多相关文章

  1. Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍

    Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍 博客:http://blog.csdn.net/prevention 笔者:犀利哥 - 第一部分:一个 Cocos2d-iP ...

  2. Arduino可穿戴教程之第一个程序——上传运行程序(四)

    Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5  上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...

  3. Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(四)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在打开MainScene.m文件,首先设置实例变量: @imp ...

  4. 如何在Cocos2D 1.0 中掩饰一个精灵(四)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了完成需要的效果,我们将使用如下策略: 我们将首先绘制掩饰精灵 ...

  5. Cocos2D:塔防游戏制作之旅(四)

    让我们看一下项目的结构.在TowerDefense文件夹,你将找到: 含有Cocos2D文件的libs文件夹 含有所有图片和声音的资源文件夹 现在,你已经准备就绪准备开始建造炮台之旅了 ;) 放置炮塔 ...

  6. 转【微信小程序 四】二维码生成/扫描二维码

    原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端 二维码生成 二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示的时 ...

  7. 第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]

    [案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...

  8. 小程序四:视图之WXSS

    WXSS(WeiXin Style Sheets)是MINA设计的一套样式语言,用于描述WXML的组件样式. WXSS用来决定WXML的组件应该怎么显示. 为了适应广大的前端开发者,我们的WXSS具有 ...

  9. 微信小程序四(设置底部导航)

    好了 小程序的头部标题 设置好了,我们来说说底部导航栏是如何实现的. 我们先来看个效果图 这里,我们添加了三个导航图标,因为我们有三个页面,微信小程序最多能加5个. 那他们是怎么出现怎么着色的呢?两步 ...

随机推荐

  1. MVC项目中的分页实现例子

    在开发项目中,写了一个分页实现的例子,现在把源代码贴上,以供以后写代码时参考 在列表的头部,有如下显示, 这个代表一个页面显示10条记录,总共22条记录. 这个是页面底部的显示 那么如何来显示这个分页 ...

  2. Django 之 auth 模块

    Django 内置一个 auth 模块,帮助用户实现注册.登录.注销以及修改密码等功能,帮助开发者省去了很多功夫. auth 模块 在创建模型时,Django内部会生成一个名为 auth_user 的 ...

  3. ubuntu下php7安装及配置

    直接用apt-get 失败 在官网下安装包http://tw2.php.net/get/php-7.0.18.tar.bz2/from/a/mirror 进行make时 出现错误: libtool: ...

  4. 字符串中去除多余的空格保留一个(MS SQL Server)

    大约2年前,写过一篇<字符串中去除多余的空格保留一个(C#)>https://www.cnblogs.com/insus/p/7954151.html 今天,Insus.NET使用MS S ...

  5. SQL Server2012如何打开2016的profiler文件

    SQL Server 2012如何打开2016的profiler文件 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10980 ...

  6. validate验证注册表单

    点击预览; <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...

  7. AT2301 Solitaire

    传送门 这里提供智障的\(O(n^2)\)做法 其实是有\(O(logn)\)做法的,但是我太菜了想不出来 Solution: 首先可以发现生成的序列一定是一个两边向中间单调递减的序列 这样就可以发现 ...

  8. Python网络爬虫(二)

    Urllib库之解析链接 Urllib库里有一个parse这个模块,定义了处理URL的标准接口,实现 URL 各部分的抽取,合并以及链接转换.它支持如下协议的 URL 处理:file.ftp.goph ...

  9. Windows安装IIS后,启动网站报错:不能在此路径中使用此配置节……

    在IIS里启动设置好的网站(ASP.net网站),浏览器报如下错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault= ...

  10. 线段树模板(单点更新,区间更新,RMQ)

    Bryce1010模板 1.单点更新 说明 单点更新,区间求和(你问我单点求和??你就不会把区间长度设为0啊?) • sum[]为线段树,需要开辟四倍的元素数量的空间. • build()为建树操作 ...