Z.XML-Cocos2d-x开发笔记
大家都在热火朝天的使用Cocos2d-x引擎做游戏开发,那么大家不妨把过程中解决的关键问题记录在这里,做一个分享!
1、在Android平台下打开网页
1.1修改项目工程源文件
在你的项目工程源文件中(比如AboutScene.cpp)开头加入如下代码
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include <android/log.h>
#endif
后在你所想进行打开网页操作的地方加入如下{#if...#endif}部分的代码。笔者放在了About类的一个回调函数里。将能实现点击相应按钮,调用该回调函数,打开网页。
void About::contactCallback(CCObject* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
//定义Jni函数信息结构体
JniMethodInfo minfo;
bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/lib/Cocos2dxActivity","openUrl", "()V");
if (isHave)
{
minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
}
#endif
}
这里主要说下getStaticMethodInfo。
第二个参数,是类名,第三个参数是函数名(该类和函数将在1.2中出现)第四个参数表示该函数没有返回值。
可参见http://blog.csdn.net/xiaominghimi/article/details/7602984
1.2修改java源文件
在proj.android\src\org\cocos2dx\lib中找到Cocos2dxActivity.java文件。在文件中加入以下代码
public static void openUrl( )
{
Uri uri = Uri.parse(http://www.cnblogs.com/z-xml");
Intent it = new Intent(Intent.ACTION_VIEW,uri);
sContext.startActivity(it);
}
其中 sContext指this。可在该java文件的protected void onCreate()方法里看到:sContext = this;如果你的是其他名字,做相应修改即可。
这样就成功了!
事实上,这就是在cocos2d-x里调用android响应的代码案例,不单单只是打开网页。
若要调android里的静态方法,将JniHelper::getStaticMethodInfo改为JniHelper::getMethodInfo即可(即去掉"static")。
责任编辑:李孟
2 截屏
在Cocos2d-x中实现截屏通常使用CCRenderTexture。
CCRenderTexture可以创建一张空白的画纸,然后使用begin()方法开始记录,其他的CCNode通过visit()方法在画纸上留下当前自己的痕迹,CCRenderTexture使用end()方法停止记录。下面的代码将生成screenShot.png,并提示"screenShot Succeed!"。图片文件生成你工程的rescourse里。
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCRenderTexture* screen = CCRenderTexture::create(size.width, size.height);
CCScene* temp = CCDirector::sharedDirector()->getRunningScene();
screen->begin();
temp->visit();
screen->end();
if(screen->saveToFile("screenShot.png")) {
CCMessageBox("screenShot Succeed!", "Hit"); }
CC_SAFE_DELETE(screen);
责任编辑:李孟
Z.XML-Cocos2d-x开发笔记的更多相关文章
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
原创文章,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/9128819 XML是一种非常重要的文件格式,由于C++对XML的支持非常完善 ...
- python开发笔记-通过xml快捷获取数据
今天在做下python开发笔记之如何通过xml快捷获取数据,下面以调取nltk语料库为例: import nltk nltk.download() showing info https://raw.g ...
- Java开发笔记(一百零九)XML报文的定义和解析
前面介绍了JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型. ...
- OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
前言 红胖子,来也! 做图像处理,经常头痛的是明明分离出来了(非颜色的),分为几块区域,那怎么知道这几块区域到底哪一块是我们需要的,那么这部分就涉及到需要识别了. 识别可以自己写模板匹配.特征 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)
一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...
- 安卓开发笔记——深入Activity
在上一篇文章<安卓开发笔记——重识Activity >中,我们了解了Activity生命周期的执行顺序和一些基本的数据保存操作,但如果只知道这些是对于我们的开发需求来说是远远不够的,今天我 ...
- 安卓开发笔记——自定义广告轮播Banner(实现无限循环)
关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...
- 微信公众号开发笔记(C#)
这篇文章还不错,使用 .net , 对微信用户的想公众号发送的文字进行回复.比较简单,自己可以修改更复杂的回复. 微信公众号开发笔记(C#) 原文地址 需求分析 根据用户在微信上发送至价值中国公众号 ...
随机推荐
- ajax请求相关问题
Ajax中async:false/true的作用: async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的succ ...
- oracle net manager 数据传输安全
oracle net manager来加密客户端与数据库之间或中间件与 数据库之间的网络传输数据 第一步:开始-->所有程序 -->oracle --> 配置和移植工具 --> ...
- nodejs+express开发blog(1)
前言 Nodejs是一个年轻的编程框架,充满了活力和无限激情,一直都在保持着快速更新.基于Nodejs的官方Web开发库Express也在同步发展着,每年升级一个大版本,甚至对框架底层都做了大手术.在 ...
- BZOJ3668: [Noi2014]起床困难综合症(贪心 二进制)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2708 Solved: 1576[Submit][Status][Discuss] Descript ...
- leetcode笔记(八)263. Ugly Number
题目描述 Write a program to check whether a given number is an ugly number. Ugly numbers are positive nu ...
- Maven 运行启动时****找不到符号*com.xxx.user.java
Maven 运行启动时****找不到符号*com.xxx.user.java maven项目更改后没有安装 (install) 重新安装解决问题!
- Windows下远程桌面的连接
[系统环境] 建议Windows7以上 [步骤说明] 1.使用"WIN + R"组合键打开"运行"对话框,然后输入“mstsc”,点击确定,如下图所示: 2.点 ...
- centos7编译安装Apache
一.安装 安装之前先将服务器的防火墙关掉. systemctl stop firewalld systemctl disable firewall 第一步: 安装apr 下载: wget -c ...
- python学习之对象的三大特性
在面向对象程序设计中,对象可以看做是数据(特性)以及由一系列可以存取.操作这些数据的方法所组成的集合.编写代码时,我们可以将所有功能都写在一个文件里,这样也是可行的,但是这样不利于代码的维护,你总不希 ...
- 675. Cut Off Trees for Golf Event
// Potential improvements: // 1. we can use vector<int> { h, x, y } to replace Element, sortin ...