diff --git a/src/App.css b/src/App.css index d125a98..9083873 100644 --- a/src/App.css +++ b/src/App.css @@ -56,7 +56,7 @@ .symbol-inner img { width: 100%; height: 100%; - object-fit: contain; + object-fit: cover; } .queue-container { diff --git a/src/App.tsx b/src/App.tsx index 4376078..136dd02 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -13,9 +13,10 @@ import { defaultTheme } from './themes/default'; import { Icon, Theme } from './themes/interface'; import { fishermanTheme } from './themes/fisherman'; import { jinlunTheme } from './themes/jinlun'; +import { ikunTheme } from './themes/ikun'; // 主题 -const themes = [defaultTheme, fishermanTheme, jinlunTheme]; +const themes = [defaultTheme, fishermanTheme, jinlunTheme, ikunTheme]; // 最大关卡 const maxLevel = 50; @@ -174,7 +175,11 @@ const App: FC = () => { // 主题切换 useEffect(() => { + setBgmOn(false); restart(); + setTimeout(() => { + setBgmOn(true); + }, 300); }, [curTheme]); // 队列区排序 @@ -439,7 +444,11 @@ const App: FC = () => { {/*bgm*/} {/*音效*/} diff --git a/src/themes/ikun/images/kun.png b/src/themes/ikun/images/kun.png new file mode 100644 index 0000000..6d84b17 Binary files /dev/null and b/src/themes/ikun/images/kun.png differ diff --git a/src/themes/ikun/images/坤舞1.png b/src/themes/ikun/images/坤舞1.png new file mode 100644 index 0000000..4df5638 Binary files /dev/null and b/src/themes/ikun/images/坤舞1.png differ diff --git a/src/themes/ikun/images/坤舞2.png b/src/themes/ikun/images/坤舞2.png new file mode 100644 index 0000000..6e61449 Binary files /dev/null and b/src/themes/ikun/images/坤舞2.png differ diff --git a/src/themes/ikun/images/坤舞3.png b/src/themes/ikun/images/坤舞3.png new file mode 100644 index 0000000..79b8654 Binary files /dev/null and b/src/themes/ikun/images/坤舞3.png differ diff --git a/src/themes/ikun/images/坤舞4.png b/src/themes/ikun/images/坤舞4.png new file mode 100644 index 0000000..bf39a99 Binary files /dev/null and b/src/themes/ikun/images/坤舞4.png differ diff --git a/src/themes/ikun/images/坤舞5.png b/src/themes/ikun/images/坤舞5.png new file mode 100644 index 0000000..936d800 Binary files /dev/null and b/src/themes/ikun/images/坤舞5.png differ diff --git a/src/themes/ikun/images/坤舞6.png b/src/themes/ikun/images/坤舞6.png new file mode 100644 index 0000000..73fdff1 Binary files /dev/null and b/src/themes/ikun/images/坤舞6.png differ diff --git a/src/themes/ikun/images/坤舞7.png b/src/themes/ikun/images/坤舞7.png new file mode 100644 index 0000000..bccc1a5 Binary files /dev/null and b/src/themes/ikun/images/坤舞7.png differ diff --git a/src/themes/ikun/images/尖叫鸡.png b/src/themes/ikun/images/尖叫鸡.png new file mode 100644 index 0000000..17b746f Binary files /dev/null and b/src/themes/ikun/images/尖叫鸡.png differ diff --git a/src/themes/ikun/images/篮球.png b/src/themes/ikun/images/篮球.png new file mode 100644 index 0000000..b83bdf3 Binary files /dev/null and b/src/themes/ikun/images/篮球.png differ diff --git a/src/themes/ikun/index.tsx b/src/themes/ikun/index.tsx new file mode 100644 index 0000000..5df2b02 --- /dev/null +++ b/src/themes/ikun/index.tsx @@ -0,0 +1,64 @@ +import React from 'react'; +import { Theme } from '../interface'; + +import niganma from './sounds/你干嘛哎呦.mp3'; +import dajiahao from './sounds/全民制作人大家好.mp3'; +import jntm from './sounds/鸡你太美.mp3'; +import music from './sounds/music.mp3'; +import lianxisheng from './sounds/个人练习生.mp3'; +import boom from './sounds/篮球击地.mp3'; +import bgm from './sounds/bgm.mp3'; + +type SoundNames = + | '你干嘛' + | '鸡你太美' + | '全民制作人大家好' + | 'music' + | '个人练习生' + | '篮球击地'; + +const pictureSoundMap: Record = { + ['kun']: '全民制作人大家好', + ['坤舞1']: '篮球击地', + ['坤舞2']: '个人练习生', + ['坤舞3']: '篮球击地', + ['坤舞4']: '你干嘛', + ['坤舞5']: '个人练习生', + ['坤舞6']: '鸡你太美', + ['坤舞7']: 'music', + ['尖叫鸡']: '鸡你太美', + ['篮球']: '篮球击地', +}; + +const sounds: { name: SoundNames; src: string }[] = [ + { name: '你干嘛', src: niganma }, + { name: '鸡你太美', src: jntm }, + { name: '全民制作人大家好', src: dajiahao }, + { name: 'music', src: music }, + { name: '个人练习生', src: lianxisheng }, + { name: '篮球击地', src: boom }, +]; + +const imagesUrls = import.meta.glob('./images/*.png', { + import: 'default', + eager: true, +}); + +const icons = Object.entries(imagesUrls).map(([key, value]) => ({ + name: key.slice(9, -4), + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + content: , +})); + +export const ikunTheme: Theme = { + name: 'iKun', + bgm, + icons: icons.map(({ name, content }) => ({ + name, + content, + clickSound: pictureSoundMap[name], + tripleSound: '鸡你太美', + })), + sounds, +}; diff --git a/src/themes/ikun/sounds/bgm.mp3 b/src/themes/ikun/sounds/bgm.mp3 new file mode 100644 index 0000000..aa4824c Binary files /dev/null and b/src/themes/ikun/sounds/bgm.mp3 differ diff --git a/src/themes/ikun/sounds/music.mp3 b/src/themes/ikun/sounds/music.mp3 new file mode 100644 index 0000000..3bcb7dd Binary files /dev/null and b/src/themes/ikun/sounds/music.mp3 differ diff --git a/src/themes/ikun/sounds/个人练习生.mp3 b/src/themes/ikun/sounds/个人练习生.mp3 new file mode 100644 index 0000000..130467f Binary files /dev/null and b/src/themes/ikun/sounds/个人练习生.mp3 differ diff --git a/src/themes/ikun/sounds/你干嘛哎呦.mp3 b/src/themes/ikun/sounds/你干嘛哎呦.mp3 new file mode 100644 index 0000000..6189ec1 Binary files /dev/null and b/src/themes/ikun/sounds/你干嘛哎呦.mp3 differ diff --git a/src/themes/ikun/sounds/全民制作人大家好.mp3 b/src/themes/ikun/sounds/全民制作人大家好.mp3 new file mode 100644 index 0000000..02ebb2c Binary files /dev/null and b/src/themes/ikun/sounds/全民制作人大家好.mp3 differ diff --git a/src/themes/ikun/sounds/篮球击地.mp3 b/src/themes/ikun/sounds/篮球击地.mp3 new file mode 100644 index 0000000..7fbd781 Binary files /dev/null and b/src/themes/ikun/sounds/篮球击地.mp3 differ diff --git a/src/themes/ikun/sounds/鸡你太美.mp3 b/src/themes/ikun/sounds/鸡你太美.mp3 new file mode 100644 index 0000000..1926007 Binary files /dev/null and b/src/themes/ikun/sounds/鸡你太美.mp3 differ diff --git a/src/themes/interface.ts b/src/themes/interface.ts index 75342dd..642e9bd 100644 --- a/src/themes/interface.ts +++ b/src/themes/interface.ts @@ -14,6 +14,7 @@ interface Sound { export interface Theme { name: string; + bgm?: string; icons: Icon[]; sounds: Sound[]; }