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[];
}