startGame
启动游戏(通过游戏 ID)
startGame 是最常用的游戏启动接口。它是一个“全自动”接口:调用后,SDK 会自动检查资源(若未下载则启动下载)、初始化运行时环境、加载脚本引擎,并最终通过回调返回一个 Game View 供开发者挂载到 UI 布局中。
方法声明
java
/**
* 启动游戏,根据游戏 ID
*
* @param gameID 游戏 ID
* @param listener 启动过程监听器
* @return SUDOPGameTask 任务句柄,用于管理游戏生命周期
*/
public static SUDOPGameTask startGame(
String gameID,
SUDOPStartGameListener listener
);参数说明
| 属性 | 类型 | 描述 |
|---|---|---|
| gameID | String | 必填。需要启动的游戏唯一标识。 |
1. SUDOPStartGameListener
void onGamePkgDecrypt(GamePkgDecryptHandle handle, String filePath):游戏包解密回调。void onCreated(SUDRTGameHandle gameHandle):游戏实例创建完成。gameHandle为游戏实例句柄,可用于后续控制游戏生命周期或交互。void onSuccess(String gameId, SUDRTGameHandle gameHandle):游戏启动成功。void onFailure(int retCode, String retMsg):游戏启动失败。
2. GamePkgDecryptHandle
void success(String decryptedFilePath, boolean isDeleteFile):解密成功。decryptedFilePath:解密后的文件路径。isDeleteFile:游戏加载完成后是否删除该文件。void fail(int retCode, String retMsg):解密失败。retCode:错误码。retMsg:错误信息描述。
运行行为
- 自动衔接预处理:如果之前调用过
preDownload或preLoad,此接口会自动复用已就绪的资源和环境,实现“秒开”。 - UI 线程回调:
onSuccess会在主线程执行,开发者可以直接进行addView操作。 - 音画同步:视图挂载后,游戏内部的音频和渲染循环正式激活。
代码示例
java
SUDOPGameTask gameTask = SUDOP.startGame("game_101", new SUDOPStartGameListener() {
@Override
public void onGamePkgDecrypt(GamePkgDecryptHandle handle, String filePath) {
}
@Override
public void onCreated(SUDRTGameHandle gameHandle) {
}
@Override
public void onSuccess(String gameId, SUDRTGameHandle gameHandle) {
// 将这个View贴到app自身的页面上即可
View gameView = gameHandle.getGameView();
}
@Override
public void onFailure(int retCode, String retMsg) {
}
});注意事项
- 容器准备:在调用前,请确保 UI 布局中已准备好一个
FrameLayout或类似的容器。 - 任务持有:返回的
SUDOPGameTask必须被 Activity 持有。在 Activity 销毁时,必须调用gameTask.destroy()以确保内存释放。 - 单一实例:在同一时间内,建议只运行一个游戏实例。