fix: 通关成功状态判断,完成游戏后无法点击问题

This commit is contained in:
streakingman 2022-10-19 23:49:17 +08:00
parent c6671038a8
commit 331b96c8f0
3 changed files with 17 additions and 11 deletions

View File

@ -171,6 +171,7 @@ const Game: FC<{
Record<MySymbol['id'], number> Record<MySymbol['id'], number>
>({}); >({});
const [finished, setFinished] = useState<boolean>(false); const [finished, setFinished] = useState<boolean>(false);
const [success, setSuccess] = useState<boolean>(false);
const [animating, setAnimating] = useState<boolean>(false); const [animating, setAnimating] = useState<boolean>(false);
// 音效 // 音效
@ -326,6 +327,7 @@ const Game: FC<{
// 重开 // 重开
const restart = () => { const restart = () => {
setFinished(false); setFinished(false);
setSuccess(false);
setScore(0); setScore(0);
setLevel(1); setLevel(1);
setQueue([]); setQueue([]);
@ -395,21 +397,25 @@ const Game: FC<{
// 输了 // 输了
if (updateQueue.length === 7) { if (updateQueue.length === 7) {
setFinished(true); setFinished(true);
setSuccess(false);
} }
if (!updateScene.find((s) => s.status !== 2)) { if (!updateScene.find((s) => s.status !== 2)) {
// 胜利 // 队列清空了
if (level === maxLevel) { if (level === maxLevel) {
// 胜利
setFinished(true); setFinished(true);
return; setSuccess(true);
} else {
// 升级
// 通关奖励关卡对应数值分数
setScore(score + level);
setLevel(level + 1);
setQueue([]);
checkCover(makeScene(level + 1, theme.icons));
} }
// 升级
// 通关奖励关卡对应数值分数
setScore(score + level);
setLevel(level + 1);
setQueue([]);
checkCover(makeScene(level + 1, theme.icons));
} else { } else {
// 更新队列
setQueue(updateQueue); setQueue(updateQueue);
checkCover(updateScene); checkCover(updateScene);
} }
@ -496,7 +502,7 @@ const Game: FC<{
level={level} level={level}
time={usedTime} time={usedTime}
score={score} score={score}
success={level === maxLevel} success={success}
pure={theme.pure} pure={theme.pure}
restartMethod={restart} restartMethod={restart}
/> />

View File

@ -2,7 +2,7 @@ import React, { FC, MouseEventHandler, useState } from 'react';
import style from './WxQrCode.module.scss'; import style from './WxQrCode.module.scss';
import classNames from 'classnames'; import classNames from 'classnames';
const WxQrCode: FC<{ title?: string; onClick?: MouseEventHandler }> = ({ const WxQrCode: FC<{ title?: string; onClick?: MouseEventHandler }> = ({
title = '【广告位招租中】同时如果您喜欢这个项目的话,可以点击扫描下方收款码分摊后台相关费用,感谢~😘', title = '如果您喜欢这个项目的话,可以点击扫描下方收款码分担后台相关费用(或请我喝杯咖啡),感谢~😘',
onClick, onClick,
}) => { }) => {
const [fullScreen, setFullScreen] = useState<Record<number, boolean>>({ const [fullScreen, setFullScreen] = useState<Record<number, boolean>>({

View File

@ -25,7 +25,7 @@ export const getDefaultTheme: () => Theme<DefaultSoundNames> = () => {
title: '有解的羊了个羊', title: '有解的羊了个羊',
desc: '真的可以通关~', desc: '真的可以通关~',
dark: true, dark: true,
maxLevel: 20, maxLevel: 5,
backgroundColor: '#8dac85', backgroundColor: '#8dac85',
icons: icons.map((icon) => ({ icons: icons.map((icon) => ({
name: icon, name: icon,