diff --git a/app/assets/app.css b/app/assets/app.css index c6f55d2..c37c484 100644 --- a/app/assets/app.css +++ b/app/assets/app.css @@ -17,6 +17,13 @@ font-style: normal; } +@font-face { + font-family: "NDS12 Bold"; + src: url("/assets/fonts/nds-12px-bold.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} + @font-face { font-family: "NDS39"; src: url("/assets/fonts/nds-39px.ttf") format("truetype"); diff --git a/app/assets/fonts/nds-12px-bold.woff2 b/app/assets/fonts/nds-12px-bold.woff2 new file mode 100644 index 0000000..11e8c3a Binary files /dev/null and b/app/assets/fonts/nds-12px-bold.woff2 differ diff --git a/app/components/Home/BottomScreen/Background.vue b/app/components/Home/BottomScreen/Background.vue index 16cabcf..a018654 100644 --- a/app/components/Home/BottomScreen/Background.vue +++ b/app/components/Home/BottomScreen/Background.vue @@ -7,7 +7,10 @@ const app = useAppStore(); const { assets } = useAssets(); onRender((ctx) => { - ctx.globalAlpha = app.booted ? 1 : store.intro.stage1Opacity; + ctx.fillStyle = "#fbfbfb" + ctx.fillRect(0, 0, LOGICAL_WIDTH, LOGICAL_HEIGHT); + + ctx.globalAlpha = store.isIntro? store.intro.stage1Opacity:1; assets.images.home.bottomScreen.background.draw(ctx, 0, 0); }); diff --git a/app/components/Home/TopScreen/Background.vue b/app/components/Home/TopScreen/Background.vue index 88ae153..8c61cab 100644 --- a/app/components/Home/TopScreen/Background.vue +++ b/app/components/Home/TopScreen/Background.vue @@ -6,7 +6,10 @@ const app = useAppStore(); const { assets } = useAssets(); onRender((ctx) => { - ctx.globalAlpha = app.booted ? 1 : store.intro.stage1Opacity; + ctx.fillStyle = "#fbfbfb" + ctx.fillRect(0, 0, LOGICAL_WIDTH, LOGICAL_HEIGHT); + + ctx.globalAlpha = store.isIntro? store.intro.stage1Opacity:1; assets.images.home.topScreen.background.draw(ctx, 0, 0); }); diff --git a/app/components/Intro/BottomScreen/BottomScreen.vue b/app/components/Intro/BottomScreen/BottomScreen.vue new file mode 100644 index 0000000..85db1c5 --- /dev/null +++ b/app/components/Intro/BottomScreen/BottomScreen.vue @@ -0,0 +1,100 @@ + + + diff --git a/app/components/Intro/TopScreen/TopScreen.vue b/app/components/Intro/TopScreen/TopScreen.vue new file mode 100644 index 0000000..7d25f64 --- /dev/null +++ b/app/components/Intro/TopScreen/TopScreen.vue @@ -0,0 +1,35 @@ + + + diff --git a/app/stores/home.ts b/app/stores/home.ts index c07a84b..3c0d0d5 100644 --- a/app/stores/home.ts +++ b/app/stores/home.ts @@ -20,14 +20,11 @@ export const useHomeStore = defineStore("home", { actions: { animateIntro() { - const appStore = useAppStore(); - this.isIntro = true; const timeline = gsap.timeline({ onComplete: () => { this.isIntro = false; - if (!appStore.booted) appStore.booted = true; }, }); diff --git a/app/stores/intro.ts b/app/stores/intro.ts new file mode 100644 index 0000000..f18caf4 --- /dev/null +++ b/app/stores/intro.ts @@ -0,0 +1,68 @@ +import gsap from "gsap"; + +export const useIntroStore = defineStore("intro", { + state: () => ({ + intro: { + textOpacity: 0, + logoFrameIndex: 0, + }, + + outro: { + textOpacity: 1, + }, + + isIntro: true, + isOutro: false, + }), + + actions: { + animateIntro() { + this.isIntro = true; + + const { assets } = useAssets(); + const totalFrames = Object.keys(assets.images.intro.logoAnimated).length; + const logoDuration = totalFrames / 25; + + gsap + .timeline() + .to({}, { duration: 2 }) + .to( + this.intro, + { + textOpacity: 1, + duration: 0.1, + ease: "none", + }, + 3, + ) + .to( + this.intro, + { + logoFrameIndex: totalFrames - 1, + duration: logoDuration, + ease: "steps(" + (totalFrames - 1) + ")", + }, + 3, + ) + .call(() => { + this.isIntro = false; + }); + }, + + animateOutro() { + this.isOutro = true; + + gsap + .timeline() + .to(this.outro, { + textOpacity: 0, + duration: 0.25, + ease: "none", + }) + .call(() => { + const app = useAppStore(); + app.booted = true; + }); + }, + }, +}); diff --git a/public/nds/images/intro/logo-animated/01.webp b/public/nds/images/intro/logo-animated/01.webp new file mode 100644 index 0000000..1192c4b Binary files /dev/null and b/public/nds/images/intro/logo-animated/01.webp differ diff --git a/public/nds/images/intro/logo-animated/02.webp b/public/nds/images/intro/logo-animated/02.webp new file mode 100644 index 0000000..13c2af9 Binary files /dev/null and b/public/nds/images/intro/logo-animated/02.webp differ diff --git a/public/nds/images/intro/logo-animated/03.webp b/public/nds/images/intro/logo-animated/03.webp new file mode 100644 index 0000000..7849347 Binary files /dev/null and b/public/nds/images/intro/logo-animated/03.webp differ diff --git a/public/nds/images/intro/logo-animated/04.webp b/public/nds/images/intro/logo-animated/04.webp new file mode 100644 index 0000000..7536108 Binary files /dev/null and b/public/nds/images/intro/logo-animated/04.webp differ diff --git a/public/nds/images/intro/logo-animated/05.webp b/public/nds/images/intro/logo-animated/05.webp new file mode 100644 index 0000000..46c5bd7 Binary files /dev/null and b/public/nds/images/intro/logo-animated/05.webp differ diff --git a/public/nds/images/intro/logo-animated/06.webp b/public/nds/images/intro/logo-animated/06.webp new file mode 100644 index 0000000..263bbd5 Binary files /dev/null and b/public/nds/images/intro/logo-animated/06.webp differ diff --git a/public/nds/images/intro/logo-animated/07.webp b/public/nds/images/intro/logo-animated/07.webp new file mode 100644 index 0000000..81b5a01 Binary files /dev/null and b/public/nds/images/intro/logo-animated/07.webp differ diff --git a/public/nds/images/intro/logo-animated/08.webp b/public/nds/images/intro/logo-animated/08.webp new file mode 100644 index 0000000..9145c86 Binary files /dev/null and b/public/nds/images/intro/logo-animated/08.webp differ diff --git a/public/nds/images/intro/logo-animated/09.webp b/public/nds/images/intro/logo-animated/09.webp new file mode 100644 index 0000000..44b291c Binary files /dev/null and b/public/nds/images/intro/logo-animated/09.webp differ diff --git a/public/nds/images/intro/logo-animated/10.webp b/public/nds/images/intro/logo-animated/10.webp new file mode 100644 index 0000000..3f93282 Binary files /dev/null and b/public/nds/images/intro/logo-animated/10.webp differ diff --git a/public/nds/images/intro/logo-animated/11.webp b/public/nds/images/intro/logo-animated/11.webp new file mode 100644 index 0000000..b606d8d Binary files /dev/null and b/public/nds/images/intro/logo-animated/11.webp differ diff --git a/public/nds/images/intro/logo-animated/12.webp b/public/nds/images/intro/logo-animated/12.webp new file mode 100644 index 0000000..6f2fbe6 Binary files /dev/null and b/public/nds/images/intro/logo-animated/12.webp differ diff --git a/public/nds/images/intro/logo-animated/13.webp b/public/nds/images/intro/logo-animated/13.webp new file mode 100644 index 0000000..b465007 Binary files /dev/null and b/public/nds/images/intro/logo-animated/13.webp differ diff --git a/public/nds/images/intro/logo-animated/14.webp b/public/nds/images/intro/logo-animated/14.webp new file mode 100644 index 0000000..79234da Binary files /dev/null and b/public/nds/images/intro/logo-animated/14.webp differ diff --git a/public/nds/images/intro/logo-animated/15.webp b/public/nds/images/intro/logo-animated/15.webp new file mode 100644 index 0000000..247f499 Binary files /dev/null and b/public/nds/images/intro/logo-animated/15.webp differ diff --git a/public/nds/images/intro/logo-animated/16.webp b/public/nds/images/intro/logo-animated/16.webp new file mode 100644 index 0000000..58eb65b Binary files /dev/null and b/public/nds/images/intro/logo-animated/16.webp differ diff --git a/public/nds/images/intro/logo-animated/17.webp b/public/nds/images/intro/logo-animated/17.webp new file mode 100644 index 0000000..837da44 Binary files /dev/null and b/public/nds/images/intro/logo-animated/17.webp differ diff --git a/public/nds/images/intro/logo-animated/18.webp b/public/nds/images/intro/logo-animated/18.webp new file mode 100644 index 0000000..51c1031 Binary files /dev/null and b/public/nds/images/intro/logo-animated/18.webp differ diff --git a/public/nds/images/intro/logo-animated/19.webp b/public/nds/images/intro/logo-animated/19.webp new file mode 100644 index 0000000..92743ba Binary files /dev/null and b/public/nds/images/intro/logo-animated/19.webp differ diff --git a/public/nds/images/intro/logo-animated/20.webp b/public/nds/images/intro/logo-animated/20.webp new file mode 100644 index 0000000..81148a9 Binary files /dev/null and b/public/nds/images/intro/logo-animated/20.webp differ diff --git a/public/nds/images/intro/logo-animated/21.webp b/public/nds/images/intro/logo-animated/21.webp new file mode 100644 index 0000000..81148a9 Binary files /dev/null and b/public/nds/images/intro/logo-animated/21.webp differ diff --git a/public/nds/images/intro/logo-animated/22.webp b/public/nds/images/intro/logo-animated/22.webp new file mode 100644 index 0000000..b6cf60b Binary files /dev/null and b/public/nds/images/intro/logo-animated/22.webp differ diff --git a/public/nds/images/intro/logo-animated/23.webp b/public/nds/images/intro/logo-animated/23.webp new file mode 100644 index 0000000..a4a98f6 Binary files /dev/null and b/public/nds/images/intro/logo-animated/23.webp differ diff --git a/public/nds/images/intro/logo-animated/24.webp b/public/nds/images/intro/logo-animated/24.webp new file mode 100644 index 0000000..8d4edfb Binary files /dev/null and b/public/nds/images/intro/logo-animated/24.webp differ diff --git a/public/nds/images/intro/logo-animated/25.webp b/public/nds/images/intro/logo-animated/25.webp new file mode 100644 index 0000000..ef88839 Binary files /dev/null and b/public/nds/images/intro/logo-animated/25.webp differ diff --git a/public/nds/images/intro/logo-animated/26.webp b/public/nds/images/intro/logo-animated/26.webp new file mode 100644 index 0000000..ce9cac5 Binary files /dev/null and b/public/nds/images/intro/logo-animated/26.webp differ diff --git a/public/nds/images/intro/logo-animated/27.webp b/public/nds/images/intro/logo-animated/27.webp new file mode 100644 index 0000000..2d6f9f4 Binary files /dev/null and b/public/nds/images/intro/logo-animated/27.webp differ diff --git a/public/nds/images/intro/logo-animated/28.webp b/public/nds/images/intro/logo-animated/28.webp new file mode 100644 index 0000000..72413c7 Binary files /dev/null and b/public/nds/images/intro/logo-animated/28.webp differ diff --git a/public/nds/images/intro/logo-animated/29.webp b/public/nds/images/intro/logo-animated/29.webp new file mode 100644 index 0000000..0397d95 Binary files /dev/null and b/public/nds/images/intro/logo-animated/29.webp differ diff --git a/public/nds/images/intro/logo-animated/30.webp b/public/nds/images/intro/logo-animated/30.webp new file mode 100644 index 0000000..0aaf703 Binary files /dev/null and b/public/nds/images/intro/logo-animated/30.webp differ diff --git a/public/nds/images/intro/logo-animated/31.webp b/public/nds/images/intro/logo-animated/31.webp new file mode 100644 index 0000000..b92bb45 Binary files /dev/null and b/public/nds/images/intro/logo-animated/31.webp differ diff --git a/public/nds/images/intro/logo-animated/32.webp b/public/nds/images/intro/logo-animated/32.webp new file mode 100644 index 0000000..2f62d70 Binary files /dev/null and b/public/nds/images/intro/logo-animated/32.webp differ diff --git a/public/nds/images/intro/logo-animated/33.webp b/public/nds/images/intro/logo-animated/33.webp new file mode 100644 index 0000000..7219ac9 Binary files /dev/null and b/public/nds/images/intro/logo-animated/33.webp differ diff --git a/public/nds/images/intro/logo-animated/34.webp b/public/nds/images/intro/logo-animated/34.webp new file mode 100644 index 0000000..57f5290 Binary files /dev/null and b/public/nds/images/intro/logo-animated/34.webp differ diff --git a/public/nds/images/intro/logo-animated/35.webp b/public/nds/images/intro/logo-animated/35.webp new file mode 100644 index 0000000..850eb1d Binary files /dev/null and b/public/nds/images/intro/logo-animated/35.webp differ diff --git a/public/nds/images/intro/logo-animated/36.webp b/public/nds/images/intro/logo-animated/36.webp new file mode 100644 index 0000000..c55399c Binary files /dev/null and b/public/nds/images/intro/logo-animated/36.webp differ diff --git a/public/nds/images/intro/logo-animated/37.webp b/public/nds/images/intro/logo-animated/37.webp new file mode 100644 index 0000000..5f8217a Binary files /dev/null and b/public/nds/images/intro/logo-animated/37.webp differ diff --git a/public/nds/images/intro/logo-animated/38.webp b/public/nds/images/intro/logo-animated/38.webp new file mode 100644 index 0000000..8adf5ee Binary files /dev/null and b/public/nds/images/intro/logo-animated/38.webp differ diff --git a/public/nds/images/intro/logo-animated/39.webp b/public/nds/images/intro/logo-animated/39.webp new file mode 100644 index 0000000..c6d960c Binary files /dev/null and b/public/nds/images/intro/logo-animated/39.webp differ diff --git a/public/nds/images/intro/warning.webp b/public/nds/images/intro/warning.webp new file mode 100644 index 0000000..52b482d Binary files /dev/null and b/public/nds/images/intro/warning.webp differ