211 lines
8.6 KiB
JavaScript
211 lines
8.6 KiB
JavaScript
// 游戏注册表:游戏编码 → 组件加载器 + 支持的道具 + 操作说明
|
||
// 编码必须与数据库 games.code 一致;supports 决定游玩页道具栏显示哪些道具
|
||
export const gameRegistry = {
|
||
snake: {
|
||
loader: () => import('./components/SnakeGame.vue'),
|
||
supports: ['double_points', 'revive'],
|
||
controls: '方向键 / WASD 控制移动方向',
|
||
},
|
||
tetris: {
|
||
loader: () => import('./components/TetrisGame.vue'),
|
||
supports: ['double_points', 'bomb'],
|
||
controls: '←→ 移动,↑ 旋转,↓ 软降,空格 硬降',
|
||
},
|
||
g2048: {
|
||
loader: () => import('./components/Game2048.vue'),
|
||
supports: ['double_points'],
|
||
controls: '方向键滑动合并数字',
|
||
},
|
||
minesweeper: {
|
||
loader: () => import('./components/MinesweeperGame.vue'),
|
||
supports: ['double_points', 'hint'],
|
||
controls: '左键翻格,右键插旗',
|
||
},
|
||
breakout: {
|
||
loader: () => import('./components/BreakoutGame.vue'),
|
||
supports: ['double_points', 'revive'],
|
||
controls: '鼠标 / ←→ 移动挡板',
|
||
},
|
||
pong: {
|
||
loader: () => import('./components/PongGame.vue'),
|
||
supports: ['double_points'],
|
||
controls: '鼠标 / ↑↓ 移动球拍,先得 11 分获胜',
|
||
},
|
||
flappy: {
|
||
loader: () => import('./components/FlappyGame.vue'),
|
||
supports: ['double_points', 'revive', 'shield'],
|
||
controls: '点击 / 空格 扇动翅膀',
|
||
},
|
||
memory: {
|
||
loader: () => import('./components/MemoryGame.vue'),
|
||
supports: ['double_points', 'hint'],
|
||
controls: '点击卡片翻开,找出所有相同的一对',
|
||
},
|
||
whack: {
|
||
loader: () => import('./components/WhackGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '点击冒头的地鼠,小心炸弹',
|
||
},
|
||
gomoku: {
|
||
loader: () => import('./components/GomokuGame.vue'),
|
||
supports: ['double_points', 'hint'],
|
||
controls: '点击棋盘落子,先五连者胜',
|
||
},
|
||
tictactoe: {
|
||
loader: () => import('./components/TicTacToeGame.vue'),
|
||
supports: ['double_points'],
|
||
controls: '点击格子落子,三连即胜',
|
||
},
|
||
spaceshooter: {
|
||
loader: () => import('./components/SpaceShooterGame.vue'),
|
||
supports: ['double_points', 'revive', 'bomb', 'shield'],
|
||
controls: '←→ / 鼠标移动,自动开火',
|
||
},
|
||
dino: {
|
||
loader: () => import('./components/DinoGame.vue'),
|
||
supports: ['double_points', 'revive', 'shield'],
|
||
controls: '空格 / 点击跳跃,↓ 下蹲',
|
||
},
|
||
down100: {
|
||
loader: () => import('./components/Down100Game.vue'),
|
||
supports: ['double_points', 'revive'],
|
||
controls: '←→ 移动,踩稳平台往下走',
|
||
},
|
||
sudoku: {
|
||
loader: () => import('./components/SudokuGame.vue'),
|
||
supports: ['double_points', 'hint'],
|
||
controls: '点击格子后输入 1-9,填满全盘',
|
||
},
|
||
puzzle15: {
|
||
loader: () => import('./components/Puzzle15Game.vue'),
|
||
supports: ['double_points'],
|
||
controls: '点击与空位相邻的数字滑动,按 1-15 复原',
|
||
},
|
||
simon: {
|
||
loader: () => import('./components/SimonGame.vue'),
|
||
supports: ['double_points'],
|
||
controls: '看完灯光序列后按相同顺序点击',
|
||
},
|
||
bubble: {
|
||
loader: () => import('./components/BubbleGame.vue'),
|
||
supports: ['double_points', 'bomb'],
|
||
controls: '鼠标瞄准点击发射,三个同色即消除',
|
||
},
|
||
fruit: {
|
||
loader: () => import('./components/FruitGame.vue'),
|
||
supports: ['double_points', 'revive', 'time_extend'],
|
||
controls: '按住鼠标滑动切开水果,别碰炸弹',
|
||
},
|
||
maze: {
|
||
loader: () => import('./components/MazeGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '方向键 / WASD 移动,走到绿色终点',
|
||
},
|
||
connect4: {
|
||
loader: () => import('./components/Connect4Game.vue'),
|
||
supports: ['double_points'],
|
||
controls: '点击竖列投子,先四连者胜',
|
||
},
|
||
lightsout: {
|
||
loader: () => import('./components/LightsOutGame.vue'),
|
||
supports: ['double_points', 'hint'],
|
||
controls: '点灯会翻转自身与上下左右,关掉全部灯',
|
||
},
|
||
typing: {
|
||
loader: () => import('./components/TypingGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '单词落地前用键盘输入完成',
|
||
},
|
||
mathrush: {
|
||
loader: () => import('./components/MathRushGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '心算后点击正确答案,连对有加成',
|
||
},
|
||
colorreact: {
|
||
loader: () => import('./components/ColorReactGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '文字含义与颜色一致按 ✔,否则按 ✘',
|
||
},
|
||
aim: {
|
||
loader: () => import('./components/AimGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '点击出现的靶心,越快越准分越高',
|
||
},
|
||
pianotiles: {
|
||
loader: () => import('./components/PianoTilesGame.vue'),
|
||
supports: ['double_points', 'revive'],
|
||
controls: '点击黑块(或按 ASDF 对应四列)',
|
||
},
|
||
jumpjump: {
|
||
loader: () => import('./components/JumpJumpGame.vue'),
|
||
supports: ['double_points', 'revive'],
|
||
controls: '按住蓄力,松开起跳到下一个平台',
|
||
},
|
||
tank: {
|
||
loader: () => import('./components/TankGame.vue'),
|
||
supports: ['double_points', 'revive', 'bomb', 'shield'],
|
||
controls: 'WASD / 方向键移动,空格 / 点击开炮',
|
||
},
|
||
asteroids: {
|
||
loader: () => import('./components/AsteroidsGame.vue'),
|
||
supports: ['double_points', 'revive', 'bomb', 'shield'],
|
||
controls: '←→ 旋转,↑ 喷射推进,空格开火',
|
||
},
|
||
klotski: {
|
||
loader: () => import('./components/KlotskiGame.vue'),
|
||
supports: ['double_points'],
|
||
controls: '拖动/点击滑块移动,让曹操走到底部出口',
|
||
},
|
||
mario: {
|
||
loader: () => import('./components/MarioGame.vue'),
|
||
supports: ['double_points', 'revive', 'shield'],
|
||
controls: '←→ 移动,空格/↑ 跳跃,↓ 可钻特定水管;复刻原版 1-1~1-4 四关:顶?块出金币蘑菇,吃蘑菇变大能顶碎砖,旗杆抓得越高分越多,1-4 城堡关躲火棍跳过库巴摸斧头断桥',
|
||
levels: { total: 4, names: ['世界 1-1', '世界 1-2', '世界 1-3', '世界 1-4'] },
|
||
},
|
||
stack3d: {
|
||
loader: () => import('./components/Stack3dGame.vue'),
|
||
supports: ['double_points'],
|
||
controls: '点击 / 空格 放下移动中的方块,对齐越准塔越高',
|
||
},
|
||
ballmaze3d: {
|
||
loader: () => import('./components/BallMaze3dGame.vue'),
|
||
supports: ['double_points', 'time_extend'],
|
||
controls: '方向键倾斜迷宫控制小球滚动,滚到金色终点',
|
||
},
|
||
racing3d: {
|
||
loader: () => import('./components/Racing3dGame.vue'),
|
||
supports: ['double_points', 'revive', 'shield'],
|
||
controls: '←→ 变道躲避车流,速度会越来越快',
|
||
},
|
||
pvz: {
|
||
loader: () => import('./components/PvzGame.vue'),
|
||
supports: ['double_points', 'bomb', 'shield'],
|
||
controls: '点击卡片选植物后点击草坪种植,点击阳光收集,守住五条防线',
|
||
},
|
||
linkgame: {
|
||
loader: () => import('./components/LinkGame.vue'),
|
||
supports: ['double_points', 'hint', 'time_extend', 'bomb'],
|
||
controls: '点击两个相同图案,连线拐弯不超过两次即可消除;共 12 关,每关图块移动规则不同,后 6 关限时更紧',
|
||
levels: {
|
||
total: 12,
|
||
names: ['经典', '下落', '上浮', '左靠', '右靠', '分裂', '经典⚡', '下落⚡', '上浮⚡', '左靠⚡', '右靠⚡', '分裂⚡'],
|
||
},
|
||
},
|
||
match3: {
|
||
loader: () => import('./components/Match3Game.vue'),
|
||
supports: ['double_points', 'hint', 'bomb'],
|
||
controls: '拖拽(或点击)相邻两个团子交换位置,凑成三连消除;共 12 关,步数内达成目标分即过关',
|
||
levels: { total: 12 },
|
||
},
|
||
starve: {
|
||
loader: () => import('./components/StarveGame.vue'),
|
||
supports: ['double_points'],
|
||
saveable: true, // 云存档:每天清晨自动存,死亡删档(永久死亡);仅单人模式
|
||
wide: true, // 宽屏游戏:游玩页解除 1200px 限宽,画布自适应铺满可视区域
|
||
coop: true, // 组队联机:进入时可选单人冒险 / 组队联机(2~4 人共享世界)
|
||
mods: true, // Mod 装载:开局可勾选内置 mod(难度类 mod 影响得分系数)
|
||
controls:
|
||
'WASD 移动 · 空格采集 · F 攻击 · 1~9 使用物品栏 · C 合成 · M 地图 · Esc 关面板(鼠标点击同样可用);夜晚完全黑暗会遭查理袭击,务必备火;科学机器/炼金引擎解锁高级配方,烹饪锅可炖官方料理;历经秋冬春夏四季(冬季注意保暖、提防独眼巨鹿),猪人可喂肉结盟;每活一天 +100 分并自动云存档;支持 2~4 人组队联机与 30 款人物皮肤',
|
||
},
|
||
}
|