android cocos2dx c++开发,cocos2dx在c++中进行Android界面的跳转

本文详细介绍了如何在Cocos2dx进行Android开发时,从C++代码中调用Java编写的本地Activity进行页面跳转。主要步骤包括在Android端创建并注册Activity,然后在C++端利用JniHelper调用Java静态方法获取Activity对象,并通过该对象调用非静态方法实现界面跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用Cocos2dx进行Android开发的时候,有时候想在c++中使用java编写的本地界面,并进行跳转。

首先在Android中添加本地activity:

package org.cocos2dx.cpp;

import android.app.Activity;

import android.os.Bundle;

public class CocoActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

}

不要忘记在添加以下注册activity的代码:

本地有一个和Cocos2dx绑定的界面AppActivity:

0818b9ca8b590ca3270a3433284dd417.png

在AppActivity中添加如下代码:

public class AppActivity extends Cocos2dxActivity {

static AppActivity context;//声明静态变量代表本界面

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

context = this;//此处为问题关键把本界面赋值给静态变量,以便获取本变量

}

/*本静态方法用来获取本界面*/

public static Object getCon() {

return context;

}

/*该非静态方法用来进行页面跳转*/

public void startActivity() {

Intent intent = new Intent(this, Coco.class);

startActivity(intent);

}

}

以下是在c++中添加的代码:

JniMethodInfo minfo;

bool isHave = JniHelper::getStaticMethodInfo(minfo,/*JniMethodInfo的引用*/

"org/cocos2dx/cpp/AppActivity",/*类的路径*/

"getCon",/*函数名*/

"()Ljava/lang/Object;");/*函数类型简写*/

jobject activityObj;//调用静态方法获取要跳转的界面的object

if (isHave) {

//CallStaticObjectMethod调用java函数,并把返回值赋值给activityObj

activityObj = minfo.env->CallStaticObjectMethod(minfo.classID,

minfo.methodID);

}

isHave = JniHelper::getMethodInfo(minfo,/*JniMethodInfo的引用*/

"org/cocos2dx/cpp/AppActivity",/*类的路径*/

"startActivity",/*函数名*/

"()V");/*函数类型简写*/

if (isHave) {

//CallStaticObjectMethod调用java函数,并把返回值赋值给activityObj

minfo.env->CallVoidMethod(activityObj,

minfo.methodID);//通过获取的object调用非静态方法来进行界面跳转

}



《Cocos2d-x实战:C++卷》[1] 系统论述了Cocos2d-x游戏开发理论与实践。全书内容涵盖了Cocos2d-x的核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、数据交换格式、内存管理、性能优化、平台移植、程序代码管理、三大应用商店发布产品等。本书共29章,按内容结构可分为六篇: 第一篇开发基础,即第2章~第8章,内容包括Cocos2d-x简介、环境搭建、字符串、标签、菜单、精灵、场景、层、动作、特效、动画和Cocos2d-x用户事件。 第二篇开发进阶,即第9章~第12章,内容包括游戏音乐与音效、粒子系统、瓦片地图和物理引擎。 第三篇数据与网络,即第13章~第17章,内容包括Cocos2d-x中使用的数据容器类、数据持久化、数据交换格式、基于HTTP网络通信和基于Node.js的Socket.IO网络通信。 第四篇设计与优化,即第18章~第20章,内容包括Cocos2d-x中的常用设计模式、Cocos2d-x中的内存管理和性能优化。 第五篇平台移植,即第21章~第23章,内容包括从Win32到Android平台的移植、从Win32到WindowsPhone8平台的移植和从Win32到iOS平台的移植。 第六篇开发实战,即第24章~第29章,内容包括使用Git管理程序代码和多个项目实战——迷失航线手机游戏项目开发、为迷失航线游戏添加广告、发布放到Googleplay应用商店、发布放到WindowsPhone应用商店和发布放到苹果AppStore。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值