仓库地址:lcc-nes
Cocos Creator 嵌入FC(小霸王游戏)模拟器插件。
最近在vscode上发现一个小霸王插件,间接的了解到有纯js实现的FC模拟器jsnes。于是手痒,就做了这样一个插件。你可以很方便的在你的creator游戏中嵌入这个模拟器,唯一遗憾的是creator不提供脚本控件音频的API,所以目前插件可能只有web平台有声音。(有想是支持原生平台的,但是好像改了底层代码就无法使用这种插件方式了,看以后有空吧)
安装十分简单,只要把这个项目作为Creator插件放到插件目录就可以了,具体请查看Creator插件包。
使用也很简单,所有组件在LCC NES组件
组里面,如下图:
Emulator
组件到节点上。如下图:
图片里面有个热血格斗传说.nes
的二进制文件,这是插件里面测试用的,你可以在插件roms
目录里面找到,这个目录可能后面会删除。所以ROM
可以自己下载,因为creator二进制文件必须是.bin结尾的,所以你应该需要修改文件后缀名,测试rom位置如下图:
Emulator
组件有getTexture()
函数可以获得渲染的纹理,你可以用在需要的地方。插件也提供Sprite
组件的显示方式,可以在节点上添加DisplaySprites
组件,然后把Sprite
组件拖到里面的数组中。如下图:
现在应该就可以看到显示的内容了,大概如下图:
把Controller
组件添加到里面去,里面可以选择玩家的数量,目前jsnes支持2个玩家,然后就可以修改按键映射。如下图:
你也可以在代码里面控制,可以直接看源码:
// 常量定义,注意模块嵌套
module lcc.nes {
/**
* 玩家序号
*/
export enum Player {
PLAYER_1 = 1,
PLAYER_2 = 2,
}
/**
* 游戏按钮
*/
export enum Button {
A = 0,
B = 1,
SELECT = 2,
START = 3,
UP = 4,
DOWN = 5,
LEFT = 6,
RIGHT = 7,
}
}
// 玩家1,游戏按钮A, 按下
this.emit("nes_button_event", lcc.nes.Player.PLAYER_1, lcc.nes.Button.A, true);
// 玩家1,游戏按钮A, 放开
this.emit("nes_button_event", lcc.nes.Player.PLAYER_1, lcc.nes.Button.A, false);
// 注意: 虽然是直接通过代码控制,但是PLAYER_1玩家的控制器必须存在。也就是说必须有PLAYER_1的Controller在节点上。
Controller
组件,调用onButtonEvent(lcc.nes.Button.A, true)
这种方式实现。不管能不能用上,先储备起来。。。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。