Skip to content

Commit 53cd3c5

Browse files
committed
Close #267
1 parent 320f469 commit 53cd3c5

27 files changed

+284
-84
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/arcade/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@mantou/fbneo": "^0.0.2"
99
},
1010
"peerDependencies": {
11-
"@mantou/nes": "^1.0.13",
11+
"@mantou/nes": "^1.0.14",
1212
"@mantou/nes-sandbox": "^0.0.12"
1313
},
1414
"devDependencies": {

packages/arcade/src/input.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,18 @@ export const INP_B6 = 1 << 11;
1515

1616
function getButtonBitFlag(button: Button) {
1717
switch (button) {
18-
case Button.JoypadA:
19-
return INP_B1;
2018
case Button.JoypadB:
19+
return INP_B1;
20+
case Button.JoypadA:
2121
return INP_B2;
22-
case Button.JoypadTurboA:
23-
return INP_B4;
22+
case Button.JoypadC:
23+
return INP_B3;
2424
case Button.JoypadTurboB:
25+
return INP_B4;
26+
case Button.JoypadTurboA:
2527
return INP_B5;
28+
case Button.JoypadTurboC:
29+
return INP_B6;
2630
case Button.JoypadLeft:
2731
return INP_LEFT;
2832
case Button.JoypadRight:

packages/nes/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nes"
3-
version = "1.0.13"
3+
version = "1.0.14"
44
authors = ["mantou132"]
55
edition = "2021"
66

packages/nes/src/lib.rs

+15-4
Original file line numberDiff line numberDiff line change
@@ -120,20 +120,31 @@ impl Nes {
120120
}
121121

122122
pub fn handle_button_event(&mut self, player: Player, button: Button, pressed: bool) {
123-
let gamepad1 = &mut self.control_deck.joypad_mut(match player {
123+
let joypad = &mut self.control_deck.joypad_mut(match player {
124124
Player::One => Slot::One,
125125
Player::Two => Slot::Two,
126126
Player::Three => Slot::Three,
127127
Player::Four => Slot::Four,
128128
});
129-
gamepad1.set_button(
129+
match button {
130+
Button::JoypadC => {
131+
joypad.set_button(JoypadBtnState::A, pressed);
132+
joypad.set_button(JoypadBtnState::B, pressed);
133+
}
134+
Button::JoypadTurboC => {
135+
joypad.set_button(JoypadBtnState::TURBO_A, pressed);
136+
joypad.set_button(JoypadBtnState::TURBO_B, pressed);
137+
}
138+
_ => {}
139+
}
140+
joypad.set_button(
130141
match button {
131142
Button::Start => JoypadBtnState::START,
132143
Button::Select => JoypadBtnState::SELECT,
133-
Button::JoypadA => JoypadBtnState::A,
134144
Button::JoypadB => JoypadBtnState::B,
135-
Button::JoypadTurboA => JoypadBtnState::TURBO_A,
145+
Button::JoypadA => JoypadBtnState::A,
136146
Button::JoypadTurboB => JoypadBtnState::TURBO_B,
147+
Button::JoypadTurboA => JoypadBtnState::TURBO_A,
137148
Button::JoypadUp => JoypadBtnState::UP,
138149
Button::JoypadDown => JoypadBtnState::DOWN,
139150
Button::JoypadLeft => JoypadBtnState::LEFT,

packages/nes/utils/src/input.rs

+3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ pub enum Button {
3636
JoypadRight,
3737
PointerPrimary,
3838
PointerSecondary,
39+
40+
JoypadC,
41+
JoypadTurboC,
3942
}
4043

4144
#[derive(Debug, Clone, Resource, Default)]

packages/sandbox/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"qoijs": "^1.0.0"
99
},
1010
"peerDependencies": {
11-
"@mantou/nes": "^1.0.13"
11+
"@mantou/nes": "^1.0.14"
1212
},
1313
"devDependencies": {
1414
"@nesbox/config": "^0.0.1"

packages/toolbox/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"dependencies": {
1313
"@mantou/ecs": "^0.0.1",
1414
"@mantou/gem": "^1.6.0",
15-
"duoyun-ui": "^0.0.64",
15+
"duoyun-ui": "^0.0.65",
1616
"jszip": "^3.10.0",
1717
"qoijs": "^1.0.0"
1818
},

packages/wasm4/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@mantou/nes-wasm4": "^0.0.6"
99
},
1010
"peerDependencies": {
11-
"@mantou/nes": "^1.0.13",
11+
"@mantou/nes": "^1.0.14",
1212
"@mantou/nes-sandbox": "^0.0.12"
1313
},
1414
"devDependencies": {

packages/wasm4/src/index.ts

+4
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,12 @@ function getPlayerIdx(player: Player) {
3434

3535
function getButtonBitFlag(button: Button) {
3636
switch (button) {
37+
case Button.JoypadTurboA:
38+
return BUTTON_X;
3739
case Button.JoypadA:
3840
return BUTTON_X;
41+
case Button.JoypadTurboB:
42+
return BUTTON_Z;
3943
case Button.JoypadB:
4044
return BUTTON_Z;
4145
case Button.JoypadLeft:

packages/webapp/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
"dependencies": {
1515
"@mantou/arcade": "^0.0.1",
1616
"@mantou/gem": "^1.6.0",
17-
"@mantou/nes": "^1.0.13",
17+
"@mantou/nes": "^1.0.14",
1818
"@mantou/nes-sandbox": "^0.0.12",
1919
"@mantou/wasm4": "^0.0.1",
20-
"duoyun-ui": "^0.0.64",
20+
"duoyun-ui": "^0.0.65",
2121
"graphql": "^16.2.0",
2222
"jszip": "^3.10.0",
2323
"marked": "^4.0.16",

packages/webapp/src/configure.ts

+19-11
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,34 @@ import { GetAccountQuery } from 'src/generated/graphql';
1818
import type { ThemeName } from 'src/theme';
1919

2020
export const defaultKeybinding = {
21+
Reset: 'r',
22+
Select: 'f',
23+
Start: 'h',
24+
2125
Up: 'w',
2226
Left: 'a',
2327
Down: 's',
2428
Right: 'd',
25-
A: 'j',
26-
B: 'k',
27-
TurboA: 'n',
28-
TurboB: 'm',
29-
Select: 'u',
30-
Start: 'i',
31-
Reset: 'r',
29+
B: 'j',
30+
A: 'k',
31+
C: 'l',
32+
TurboB: 'u',
33+
TurboA: 'i',
34+
TurboC: 'o',
3235

3336
Up_2: 'arrowup',
3437
Left_2: 'arrowleft',
3538
Down_2: 'arrowdown',
3639
Right_2: 'arrowright',
37-
A_2: '5',
38-
B_2: '6',
39-
TurboA_2: '8',
40-
TurboB_2: '9',
40+
B_2: '1',
41+
A_2: '2',
42+
C_2: '3',
43+
TurboB_2: '4',
44+
TurboA_2: '5',
45+
TurboC_2: '6',
46+
Reset_2: '7',
47+
Select_2: '8',
48+
Start_2: '9',
4149
};
4250

4351
const defaultVolume = {

packages/webapp/src/elements/gamepad.ts

+38-24
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
classMap,
1212
} from '@mantou/gem';
1313

14-
import gamepadImg from 'src/images/gamepad.svg?raw';
14+
import gamepadImg from 'src/images/gamepad2.svg?raw';
1515
import { theme } from 'src/theme';
1616

1717
import 'duoyun-ui/elements/shortcut-record';
@@ -40,53 +40,65 @@ const style = createCSSSheet(css`
4040
.key:focus {
4141
background-color: ${theme.informativeColor};
4242
}
43+
.key:not(:focus) {
44+
text-shadow: 0 0.5px #0003;
45+
filter: drop-shadow(0.1em 0.3em 0.4em black);
46+
}
4347
.key::part(kbd) {
4448
background-color: transparent;
4549
border-color: transparent;
4650
font-weight: bold;
4751
}
4852
.up {
49-
top: 31.5%;
50-
left: 25.4%;
53+
top: 45.5%;
54+
left: 29.4%;
5155
}
5256
.left {
53-
top: 37.3%;
54-
left: 20.9%;
57+
top: 51.3%;
58+
left: 23.9%;
5559
}
5660
.down {
57-
top: 43%;
58-
left: 25.4%;
61+
top: 58%;
62+
left: 29.4%;
5963
}
6064
.right {
61-
top: 37.3%;
62-
left: 30.1%;
65+
top: 51.3%;
66+
left: 34.1%;
67+
}
68+
.b {
69+
top: 59.6%;
70+
left: 66.6%;
6371
}
6472
.a {
65-
top: 45.5%;
66-
left: 75%;
73+
top: 54.5%;
74+
left: 73.4%;
6775
}
68-
.b {
69-
top: 37.1%;
70-
left: 68.1%;
76+
.c {
77+
top: 49.9%;
78+
left: 80%;
79+
}
80+
.turbob {
81+
top: 51.9%;
82+
left: 62.1%;
7183
}
7284
.turboa {
73-
top: 37.1%;
74-
left: 81.9%;
85+
top: 47.3%;
86+
left: 68.1%;
7587
}
76-
.turbob {
77-
top: 28.7%;
78-
left: 74.9%;
88+
.turboc {
89+
top: 43.1%;
90+
left: 73.9%;
7991
}
8092
.select {
81-
top: 45.8%;
82-
left: 44.7%;
93+
top: 58.6%;
94+
left: 45.7%;
8395
}
8496
.start {
85-
top: 45.8%;
86-
left: 55%;
97+
top: 58.6%;
98+
left: 53%;
8799
}
88100
.reset {
89-
top: 35.5%;
101+
top: 47.5%;
90102
left: 50%;
91103
}
92104
`);
@@ -98,8 +110,10 @@ export type GamePadValue = {
98110
Right: string;
99111
A: string;
100112
B: string;
113+
C: string;
101114
TurboA: string;
102115
TurboB: string;
116+
TurboC: string;
103117
Select: string;
104118
Start: string;
105119
Reset: string;

packages/webapp/src/images/gamepad.svg

+2-1
Loading
+36
Loading

packages/webapp/src/locales/en/messages.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@
125125
"shortcutGlobal": {
126126
"message": "Global"
127127
},
128-
"shortcutHost": {
129-
"message": "Host"
128+
"shortcutInGame": {
129+
"message": "In Game"
130130
},
131131
"shortcutReadMsg": {
132132
"message": "Read Message"

packages/webapp/src/locales/ja/messages.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@
125125
"shortcutGlobal": {
126126
"message": "グローバル"
127127
},
128-
"shortcutHost": {
129-
"message": "ホスト"
128+
"shortcutInGame": {
129+
"message": "ゲームで"
130130
},
131131
"shortcutReadMsg": {
132132
"message": "読む情報"

packages/webapp/src/locales/templates/messages.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@
125125
"shortcutGlobal": {
126126
"message": "全局"
127127
},
128-
"shortcutHost": {
129-
"message": "主机"
128+
"shortcutInGame": {
129+
"message": "游戏内"
130130
},
131131
"shortcutReadMsg": {
132132
"message": "阅读消息"

packages/webapp/src/locales/zh-TW/messages.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@
125125
"shortcutGlobal": {
126126
"message": "全局"
127127
},
128-
"shortcutHost": {
129-
"message": "主機"
128+
"shortcutInGame": {
129+
"message": "遊戲內"
130130
},
131131
"shortcutReadMsg": {
132132
"message": "閱讀消息"

0 commit comments

Comments
 (0)