1 Star 5 Fork 4

Nomat / lcc-gba

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

仓库地址:lcc-gba

lcc-gba

Cocos Creator 嵌入GBA模拟器插件。

前言

前段时间做了一个FC模拟器的插件lcc-nes,又在网上找到了js实现的GBA模拟器gbajs,既然做了,就做全面点吧,所以就有了这个GBA模拟器的插件。同样当前插件只有在web平台有声音。 插件的模拟器部分使用typescript整理过,并不是使用的原来github上面的js代码

安装

安装十分简单,只要把这个项目作为Creator插件放到插件目录就可以了,具体请查看Creator插件包

使用

使用也很简单,所有组件在LCC GBA组件组里面,如下图: avatar

第一步,先添加Emulator组件到节点上。

如下图: avatar 图片里面有个火焰纹章-封印之剑.gba的二进制文件,这是插件里面测试用的,你可以在插件roms目录里面找到,这个目录可能后面会删除。所以ROM可以自己下载,因为creator二进制文件必须是.bin结尾的,所以你应该需要修改文件后缀名,测试rom位置如下图: avatar Bios可以是默认的,好像这个一般不需要改动。

第二步,添加显示对象。

Emulator组件有getTexture() 函数可以获得渲染的纹理,你可以用在需要的地方。插件也提供Sprite组件的显示方式,可以在节点上添加DisplaySprites组件,然后把Sprite组件拖到里面的数组中。如下图: avatar 现在应该就可以看到显示的内容了,大概如下图: avatar

第三步,添加手柄控制器。

Controller组件添加到里面去,里面可以选择玩家的数量,目前jsgba支持2个玩家,然后就可以修改按键映射。如下图: avatar 你也可以在代码里面控制,可以直接看源码:

// 常量定义,注意模块嵌套
module lcc.gba {

/**
 * 游戏按钮
 */

export enum Button {
	A = 0,
	B = 1,
	SELECT = 2,
	START = 3,
	RIGHT = 4,
	LEFT = 5,
	UP = 6,
	DOWN = 7,
	R = 8,
	L = 9,
}

}
  • 通过节点事件控制游戏: gba_button_event
// 游戏按钮A, 按下
this.emit("gba_button_event", lcc.gba.Button.A, true);

// 游戏按钮A, 放开
this.emit("gba_button_event", lcc.gba.Button.A, false);

// 注意: 虽然是直接通过代码控制,但是控制器必须存在。也就是说必须有Controller在节点上。
  • 也可以直接获取Controller组件,调用onButtonEvent(lcc.gba.Button.A, true)这种方式实现。

更多功能

比如一些自定义存储等功能,请看源码。core目录中的代码时整理后的gba模拟器ts实现。

结束语

不管能不能用上,先储备起来。。。

MIT License Copyright (c) 2020 Nomat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Cocos Creator 嵌入GBA模拟器插件(适用creator2.4.x) 展开 收起
TypeScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/nomat/lcc-gba.git
git@gitee.com:nomat/lcc-gba.git
nomat
lcc-gba
lcc-gba
master

搜索帮助