克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

仓库地址:lcc-nes

lcc-nes

Cocos Creator 嵌入FC(小霸王游戏)模拟器插件。

前言

最近在vscode上发现一个小霸王插件,间接的了解到有纯js实现的FC模拟器jsnes。于是手痒,就做了这样一个插件。你可以很方便的在你的creator游戏中嵌入这个模拟器,唯一遗憾的是creator不提供脚本控件音频的API,所以目前插件可能只有web平台有声音。(有想是支持原生平台的,但是好像改了底层代码就无法使用这种插件方式了,看以后有空吧)

安装

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

使用

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

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

如下图:
avatar
图片里面有个热血格斗传说.nes的二进制文件,这是插件里面测试用的,你可以在插件roms目录里面找到,这个目录可能后面会删除。所以ROM可以自己下载,因为creator二进制文件必须是.bin结尾的,所以你应该需要修改文件后缀名,测试rom位置如下图:
avatar

第二步,添加显示对象。

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

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

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

// 常量定义,注意模块嵌套
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,
}

}
  • 通过节点事件控制游戏: nes_button_event
// 玩家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)这种方式实现。

结束语

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

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 嵌入FC(小霸王游戏)模拟器插件(适用creator2.4.x) 展开 收起
TypeScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化