1.0.4 • Published 3 months ago

@kitashirakawa_tamako/react-nes v1.0.4

Weekly downloads
-
License
-
Repository
github
Last release
3 months ago

React Nes

Jsnes的React封装组件。

Demo

特性

  • ROM 基于 JSNES 运行
  • 支持键盘输入和手柄输入
  • 内置虚拟手柄
  • 支持游戏进度保存和读取

安装

npm install @kitashirakawa_tamako/react-nes

开始

模拟器

import { ReactNes } from '@kitashirakawa_tamako/react-nes'
<ReactNes />

虚拟手柄

import { ReactNes, VirtualGamepad } from '@kitashirakawa_tamako/react-nes'
const ref = useRef(null)
<ReactNes ref={ref}/>
<VirtualGamepad nesRef={ref} />

API

Enum

Buttons

import { Buttons } from '@kitashirakawa_tamako/react-nes'
{
    "BUTTON_A": 0,
    "BUTTON_B": 1,
    "BUTTON_SELECT": 2,
    "BUTTON_START": 3,
    "BUTTON_UP": 4,
    "BUTTON_DOWN": 5,
    "BUTTON_LEFT": 6,
    "BUTTON_RIGHT": 7
}

Controllers

import { Controllers } from '@kitashirakawa_tamako/react-nes'
{
    "P1": 1,
    "P2": 2
}

ReactNesProps

属性说明类型默认值版本
buttons键盘按键与手柄按钮的对应关系ReactNesButtons-
volume音量大小0-1number0.5
fullScreen是否全屏booleanfalse
width画面宽度number | string256
height画面高度number | string240
fillStyle默认填充颜色string#000
onButtonEvent键盘输入回调(e: GamepadButtonEvent) => void-
onGamepadConnectgamepad api onconnect 事件触发时回调(gamepad: any) => void-
onGamepadDisconnectgamepad api ondisconnect 事件触发时回调(id: number) => void-

ReactNesRef

属性说明类型默认值版本
buttonDown按键按下输入(controller: number, button: number) => void-
buttonUp按键松开输入(controller: number, button: number) => void-
saveData保存游戏进度() => NesData-
loadData加载游戏进度(data: NesData) => void-
reset重置虚拟机() => void-
loadRom加载游戏资源(rom: string) => void-

ReactNesButtons

属性说明类型默认值版本
a1P1攻击键AKeyboardEvent.code'KeyJ'
b1P1攻击键BKeyboardEvent.code'KeyK'
select1P1选择键KeyboardEvent.code'KeyF'
start1P1开始键KeyboardEvent.code'KeyH'
up1P1方向键上KeyboardEvent.code'KeyW'
down1P1方向键下KeyboardEvent.code'KeyS'
left1P1方向键左KeyboardEvent.code'KeyA'
right1P1方向键右KeyboardEvent.code'KeyD'
a2P2攻击键AKeyboardEvent.code'Numpad1'
b2P2攻击键BKeyboardEvent.code'Numpad2'
select2P2选择键KeyboardEvent.code'Numpad4'
start2P2开始键KeyboardEvent.code'Numpad5'
up2P2方向键上KeyboardEvent.code'ArrowUp'
down2P2方向键下KeyboardEvent.code'ArrowDown'
left2P2方向键左KeyboardEvent.code'ArrowLeft'
right2P2方向键右KeyboardEvent.code'ArrowRight'

GamepadButtonEvent

属性说明类型默认值版本
type松开/按下'keyup' | 'keydown'-
button手柄按键枚举值number-
code键盘按键code码KeyboardEvent.code-
controller玩家 1/2number-

NesData

属性说明类型默认值版本
cpu-object-
mmap-object-
ppu-object-
romData-string-
1.0.4

3 months ago

1.0.2

3 months ago

1.0.1

3 months ago

1.0.3

3 months ago

1.0.0

3 months ago