Giter VIP home page Giter VIP logo

game's Introduction

๊ณ ๊ฐ ๋งŒ์กฑ ๐Ÿ’ ๋Œ€๋ฐ• ๋ฆฌ๋ทฐ ์ด๋ฒคํŠธ ๐Ÿ’ ๊ณ ๊ฐ ๊ฐ๋™


Hits

Hello! ๐Ÿ‘‹

๐Ÿ• habitat

habitat url
๐Ÿ™ Portfolio https://dusuna.site
๐Ÿ“ง Email [email protected]
๐Ÿฅ• Youtube https://www.youtube.com/@dusunax
๐ŸŒฑ Blog/tech https://velog.io/@dusunax
๐ŸŒพ Blog/diary https://dusunax.tistory.com/
๐Ÿ‘ฉโ€๐ŸŒพ Notion/memo https://dusunax.notion.site
๐ŸŽจ Drawing/hobby https://www.instagram.com/dusunar/

๐Ÿชฌ Tech Stack

category skills
๐Ÿ” Front-end JavaScript TypeScript React Next.js Tanstack Query Redux Zustand StyledComponent Tailwind Three.js

GitHub stats

dusunax's GitHub stats

โŒ›๏ธ 2024's Learning Goals

  • ๐Ÿ“š Conducting a deep dive into my current tech stack to enhance my computer science knowledge, aiming to become a long-term contributing developer.
  • ๐Ÿ“ Building a portfolio/blog by 2024 to showcase TILs (Today I Learned) and project examples etc.
  • ๐Ÿงฉ Researching and gaining insights into monorepos, design systems, and web views.
  • ๐Ÿค– build a AI related projects.
    • ChooseTale Project: 2024.6 ~

game's People

Contributors

dusunax avatar

Watchers

 avatar

game's Issues

Feat : 10์›” 9์ผ ์ดํ›„ ์ž‘์—… todo list

๊ฐœ์š”

  • 10์›” 9์ผ๊นŒ์ง€ ํ•ญํ•ดํ†ค(1ํšŒ) ์‹ฌ์‚ฌ ๊ธฐ๊ฐ„์ด๋ฏ€๋กœ, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ ์ž‘์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹ฌ์‚ฌ ๊ธฐ๊ฐ„ ์ดํ›„, ์ฃผ๋ง์— ์•„๋ž˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.(์•„๋งˆ๋„ 14~15์ผ)

Todo List

  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€A: ์ ์ˆ˜ ๊ธฐ๋ก (score + nickname) Firebase ์—ฐ๊ฒฐ
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€B: Google Analytics ์ถ”๊ฐ€
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€C: ๊ฒŒ์ž„ ๋„์ค‘์— ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€D: ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์‹œ, ์žฌ์‹œ์ž‘ ๋ฒ„ํŠผ
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€E: ๊ฒŒ์ž„ ์˜ค๋ฒ„, ๊ฒŒ์ž„ ํด๋ฆฌ์–ด ์‹œ Lottie ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถ”๊ฐ€ etc) confetti
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€F: ๊ฒŒ์ž„ sound ์ถ”๊ฐ€
  • ๋ฒ„๊ทธ ์ˆ˜์ •A: ๊ฒŒ์ž„ ์ข…๋ฃŒ ํƒ€์ด๋ฐ ๊ด€๋ จ ๋ฒ„๊ทธ ์ˆ˜์ •
  • ๋ฒ„๊ทธ ์ˆ˜์ •B: MouseConstranit ํƒ€๊ฒŸ ์ œํ•œ
  • ๋ฒ„๊ทธ ์ˆ˜์ •C: stage 4์—์„œ ์†กํŽธ ๊ฐ€๋” ๊ตด๋Ÿฌ ๋–จ์–ด์ง
  • ๋ฒ„๊ทธ ์ˆ˜์ •D: ๊ฐ€๋” ์†กํŽธ์ด ์‚ฌ๋ผ์ง < ? ์žฌํ˜„ ํ•„์š”

ํ˜„์žฌ socre ๋ฐ์ดํ„ฐ_231005

  • ์ง‘๊ณ„ ๋ฐฉ์‹: ์นด์นด์˜คํ†ก ์Šคํฌ๋ฆฐ์ƒท ์ธ์ฆ
  • ์‹ฌ์‚ฌ(10์›” 9์ผ) ์ดํ›„ DB ์ถ”๊ฐ€ ์˜ˆ์ •
score name ๋“ฑ์ˆ˜ (์ƒํ’ˆ)
5180 DSA
5060 KJB
4955 KJB 10/4 ์œ ์ €ํ…Œ์ŠคํŠธ 1๋“ฑ (โ˜•๏ธ)
4925 HSM
4850 YCS
4745 KHJ ์„ ์ฐฉ์ˆœ 1๋“ฑ (โ˜•๏ธ)
4580 CRH
4580 LMS

[9์›” 28์ผ~10์›” 3์ผ] ๋‚ ์งœ๋ณ„ ์ž‘์—… ๊ธฐ๋ก

๋‚ ์งœ๋ณ„ ์š”์•ฝ

  • 9์›” 28์ผ: ์ฃผ์ œ ํ™•์ธ, ์•„์ด๋””์–ด ์ •๋ฆฌ, ํ”„๋กœ์ ํŠธ ์„ธํŒ… ๋ฐ ์„ค์ •
  • 9์›” 29์ผ: ๊ตฌํ˜„ ๋ฐฉ์‹ ์ฐพ์•„๋ณด๊ธฐ (vanilla JS vs MatterJS)
  • 9์›” 30์ผ: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์‹๋ฌธ์„œ ํ™•์ธ, ๊ธฐ๋ณธ ์›”๋“œ ๊ตฌํ˜„
  • 10์›” 1์ผ: ์Šˆํ„ฐ ๊ตฌํ˜„, stage ์„ค์ •
  • 10์›” 2์ผ: ์ถ”๊ฐ€ ๋ ˆํผ๋Ÿฐ์Šค ์‚ดํŽด๋ณด๊ธฐ, ๋‚จ์€ task ํ™•์ธ
  • 10์›” 3์ผ: ์ ์ˆ˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„, ์ด๋ฏธ์ง€ ์ œ์ž‘, ํ…์Šค์ฒ˜ ์ถ”๊ฐ€, ๊ธฐ๋Šฅ ๋ฐ UI ์ •๋ฆฌ, ์ œ์ถœ

๐Ÿ“Œ 9์›” 28์ผ

ํ•ญํ•ด ์ฝ”์œก๋Œ€ ์ฃผ์ œ ํ™•์ธํ•˜๊ธฐ (2์‹œ)
๋ฏธ๋‹ˆ๊ฒŒ์ž„ ์ฃผ์ œ ํ™•์ธ ๋ฐ ์•„์ด๋””์–ด ์ •๋ฆฌ
ํ”„๋กœ์ ํŠธ ์„ธํŒ… ๋ฐ ์„ค์ • ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๋ฒˆํ˜ธ ์ฃผ์ œ ๋‚ด์šฉ ์•„์ด๋””์–ด ๋‚œ์ด๋„
1 ์„ธ๋ฒณ๋ˆ ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋ณธ ๊ณ„์‚ฐ๊ธฐ ์ˆซ์ž๋ฅผ ์•„์ด์ฝ˜ ๋“ฑ์œผ๋กœ ๋Œ€์ฒด
์„ธ๋ฑƒ๋ˆ โ‡’ ๋ˆ ์• ๋‹ˆ๋ฉ”์ด์…˜
๋ˆ ํ†ต์žฅ์— ๋„ฃ๊ธฐ
๊ณ„์‚ฐ๊ฐ’์— ๋”ฐ๋ผ ์ฑ…์ƒ์— ๋ˆ ๋‹ฌ๋ผ์ง€๊ฒŒ
easy
2 ํ–‰๋งจ ๊ฒŒ์ž„ ๊ธฐ๋ณธ ๋‹จ์–ด ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„(์˜์–ด) ํ–‰๋งจ ๋””์ž์ธ ๋‹ค๋ฅด๊ฒŒ easy
3 ์†กํŽธ ํ„ฐ๋œจ๋ฆฌ๊ธฐ ์Šฌ๋ง์ƒท ๊ฒŒ์ž„(๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ฐพ์•„๋ณด๊ธฐ)
ํฌ๋ฌผ์„  โ‡’ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ ํ•˜๋Š”์ง€?
๋‹ฌ๋‚˜๋ผ/์น˜์ฆˆ, ํ† ๋ผ, ์†กํŽธ
3d๋กœ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด?
hard
4 ํ…ŒํŠธ๋ฆฌ์Šค ๊ธฐ๋ณธ ํ…ŒํŠธ๋ฆฌ์Šค(10x20)
๋ ˆํผ๋Ÿฐ์Šค ์ฐพ์•„๋ณด๊ธฐ(๋งŽ์Œ)
๋‹จ๊ณ„๋ณ„ ์ดํŽ™ํŠธ
์†กํŽธ ์•„์ดํ…œ
middle
5 ์ด์•Œ ํ”ผํ•˜๊ธฐ ์ด์ผ ํ”ผํ•˜๊ธฐ ๊ฒŒ์ž„ / ์„ ๋ฐ• ์ด์ง€๋ชจ๋“œ/์ผ๋ฐ˜/ํ•˜๋“œ๋ชจ๋“œ, ์•„์ดํ…œ hard
6 ์ž์œ ์ข…๋ชฉ - - -

์ฝ”์œก๋Œ€ ๊ฐœ์ธ ๋ชฉํ‘œ

25% ๋‹ฌ์„ฑ๐Ÿ˜ข

  • ๋ฆฌ์•กํŠธ ๋นŒ๋“œ๋ฅผ ์ •์ ์œผ๋กœ ๋ฐฐํฌํ•ด๋ณด์ž. (+tailwindCSS)
  • ์ด์ „ ํ•ด์ปคํ†ค์—์„œ ์ผ๋˜ chakra๋ฅผ ํ™œ์šฉ
  • threeJS ์ ์šฉํ•  ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ
  • rottie ์‚ฌ์šฉํ•ด์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋ถ€๊ฐ€ ๋ชฉํ‘œ

์‹œ๊ฐ„ ๋ถ€์กฑ!

  • ์†Œ์…œ ๋กœ๊ทธ์ธ ๋ถ™์ด๊ธฐ
  • AWS ํ™œ์šฉ: ๋žŒ๋‹ค ์‚ฌ์šฉํ•  ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ

ํ”„๋กœ์ ํŠธ init

  • ๋นŒ๋“œ&ํ”„๋ ˆ์ž„์›Œํฌ: vite, react, ts
  • UI: chakra-ui, tailwind-css
  • => next๋กœ ๋ณ€๊ฒฝ
    • app ๋ผ์šฐํŒ…
    • next/font ์“ฐ๊ธฐ => ์ง€์›€
  • ํ•˜๋ฃจ์ข…์ผ ์Šคํƒ ์ •ํ•˜๊ธฐ + ์„ค์ •

Next static export

https://nextjs.org/docs/pages/building-your-application/deploying/static-exports

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: "export",
  distDir: "dist",
  skipTrailingSlashRedirect: true,
  trailingSlash: true,
};

module.exports = nextConfig;

=> ๋นŒ๋“œ config: 28์ผ ์ƒˆ๋ฒฝ๊นŒ์ง€ ๊ฒฝ๋กœ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ–ˆ์œผ๋‚˜ ์‹คํŒจ

๐Ÿ“Œ 9์›” 30์ผ

๊ฒŒ์ž„ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ฐพ๊ธฐ

๋ฐฉ๋ฒ•A: JS๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ธฐ

  • webGL๋ณด๋‹ค threeJS๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋“ฏ, ๋ณดํŽธ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
    • ์„ฑ๋Šฅ, ๊ตฌํ˜„ ์™„์„ฑ๋„, ๊ตฌํ˜„ ์†๋„

๋ฐฉ๋ฒ•B: ๋ฌผ๋ฆฌ ์—”์ง„ ๊ตฌํ˜„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: MatterJS

  • https://brm.io/matter-js/docs/
  • HTML canvas์— 2d context๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
// module aliases
var Engine = Matter.Engine,
    Render = Matter.Render,
    Runner = Matter.Runner,
    Bodies = Matter.Bodies,
    Composite = Matter.Composite;

๐Ÿ“Œ 9์›” 29์ผ

์ถ”์„ ์ง€๋‚ธ ํ›„ => ์˜คํ›„ ์‹œ๊ฐ„ ๊ณต๋ถ€
๊ธฐ์ดˆ ํ™œ์šฉ
์ฃผ์š” ์ฐธ๊ณ  ์ฝ”๋“œ : body.create()์˜ options

๊ณต๋ถ€ ๋ฉ”๋ชจ => ์Šคํฌ๋ฆฐ์ƒท ๋ฐ ๋™์˜์ƒ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ธฐ!

  • rectangle(x, y, w, h)
    • ๋ฌผ์ฒด origin: ์ค‘์•™ (์ขŒํ‘œ ์ค‘์•™๋ถ€ํ„ฐ ๋ฌผ์ฒด ๊ทธ๋ฆผ)
  • gravity
    • ๊ฐ™์€ ๋†’์ด์—์„œ ๋–จ์–ด์งˆ ๋•Œ, ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ๋„ ๊ฐ™์€ ์†๋„๋กœ ๋–จ์–ด์ง
    • ํ”ผ๋ผ๋ฏธ๋“œ ํ˜•ํƒœ๋กœ ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ, ํ๋Š์  ๊ฑฐ๋ฆฌ๋ฉด์„œ ๋ฌด๋„ˆ์ง
  • engine? ์—”์ง„ create๊ณผ update๊ฐ€ ์žˆ์Œ
  • circle ๊ทธ๋ฆฌ๊ธฐ
    • bodies => body.create ์†Œ์Šค์ฝ”๋“œ ํ™•์ธ
  • object๋Š” static์ด๊ฑฐ๋‚˜ dynamic(๊ธฐ๋ณธ๊ฐ’)์ผ ์ˆ˜ ์žˆ๋‹ค

๐Ÿ“Œ 10์›” 1์ผ

mouse, mouseConstraint ๋ชจ๋“ˆ ํ™•์ธ
shooter ๊ตฌํ˜„ํ•˜๊ธฐ

  • ๋ ˆํผ๋Ÿฐ์Šค ์ฐพ๊ธฐ
  • ๊ธฐ๋Šฅ ๊ตฌํ˜„ (๊ฐ ๋ฉ”์†Œ๋“œ ํ™œ์šฉํ•œ stage)
  • constraint ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ํ™•์ธ
  • ํ”ผ๋ผ๋ฏธ๋“œ ์ถœ๋ ฅ ๋ฉ”์†Œ๋“œ ๋ฐœ๊ฒฌ ํ›„ ๊ต์ฒด (์•ˆ ํ๋Š์ ๊ฑฐ๋ฆผ๏ฟฝ)
    image
  • ๋ ˆํผ๋Ÿฐ์Šค ์ฐพ์•„๋ณด๊ธฐ
- https://www.youtube.com/watch?v=W-9DcLtBhVc
- https://www.youtube.com/watch?v=_r955zGxgFQ
    - https://github.com/0shuvo0/Angry-Birds-Clone/blob/main/main.js
- https://www.youtube.com/watch?v=TDQzoe9nslY&t=1865s
- body.create()
    - https://github.com/liabru/matter-js/blob/master/src/body/Body.js
- https://github.com/liabru/matter-js/blob/master/examples/slingshot.js
  • ์ ์ˆ˜ ๊ธฐ์ค€
  • block์ด ๋ฐ”๋‹ฅ์— ๋‹ฟ์•˜์„ ๋•Œ(์†กํŽธ ํ„ฐ์ง ์ƒํƒœ)
    • ๋‹ฟ์•˜๋ƒ ์—ฌ๋ถ€ ํ™•์ธํ•˜๋Š” ๋ฒ• ์ฐพ๊ธฐ => (1)๊ณต์‹๋ฌธ์„œ (2)๋ ˆํผ๋Ÿฐ์Šค
  • ํ™”๋ฉด ํ•ด์ƒ๋„์— ๋Œ€ํ•ด์„œ
    • lookAt ๋ฉ”์†Œ๋“œ๋Š”? mouseConstraint ์ขŒํ‘œ๊ฐ€ lookAt ์œ„์น˜์™€ ๋‹ค๋ฆ„
    • ๋ฐ์Šคํฌํƒ‘ ๋จผ์ € ๊ตฌํ˜„ (๋ชจ๋ฐ”์ผ ์ตœ์ ํ™” x)
  • ์˜ˆ์™ธ ์ผ€์ด์Šค ์ถ”๊ฐ€ ๋ฐ ๋ ˆ๋ฒจ ๊ตฌํ˜„
// mouse interaction
const mouse = Matter.Mouse.create(ref.current);
const mouseConstraint = Matter.MouseConstraint.create(engine, { mouse });

Matter.Events.on(mouseConstraint, "enddrag", (e: any) => {
  birdsLeft.map((bird) => {
    if (!bird) return;

    if (e.body === bird) {
      isFire = true;
    }
  });
});

Matter.Events.on(engine, "afterUpdate", () => {
  if (!life || birdsLeft.length === 0) return;
  if (isFire) {
    birdsLeft.shift();
    setLife(birdsLeft.length);

    const newBird = birdsLeft[0];
    if (!newBird) {
      sling.bodyB = null;
      Composite.remove(engine.world, sling);
    } else {
      sling.bodyB = newBird;
      setTimeout(() => {
        Composite.add(engine.world, newBird);
      }, 500);
    }

    isFire = false;
  }
});
2023-10-01.10.56.05.mov

๐Ÿ“Œ 10์›” 2์ผ

์•ต๊ทธ๋ฆฌ๋ฒ„๋“œ ํด๋ก  ํ™•์ธํ•˜๊ธฐ

๋ ˆํผ๋Ÿฐ์Šค์—์„œ ๋‹ค์Œ ๋‚ด์šฉ ์ฐจ์šฉ

  • composite create์ด๋ž‘, _createStand ํ•จ์ˆ˜ ์ถ”๊ฐ€
  • bodies.fromVertices: svg์ฒ˜๋Ÿผ ์  ์ฐ์–ด์„œ ๋ฒกํ„ฐ ์ด๋ฏธ์ง€ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Œ
    • static body ์ถ”๊ฐ€(๊ฒฝ์‚ฌ ๋ฐ”๋‹ฅ)
    • ๊ฒฝ์‚ฌ ์ถ”๊ฐ€ํ•ด์„œ ๋ชฉ์ˆจ 1๊ฐœ๋กœ ํด๋ฆฌ์–ด ๊ฐ€๋Šฅ!

์ค‘๊ฐ„ ์ ๊ฒ€

  • ๊ฒŒ์ž„ ๊ธฐ๋Šฅ
    • ์‹œ์ž‘ ๋ฒ„ํŠผ
    • ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ
    • ์žฌ์‹œ์ž‘ ๋ฒ„ํŠผ
    • ๊ฒŒ์ž„ ์˜ค๋ฒ„ ๊ธฐ์ค€
      • ์ ์ˆ˜ ๊ธฐ์ค€
      • ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์‹œ ์ ์ˆ˜ ํ‘œ๊ธฐ
  • ๊ธฐ๋Šฅ ์™„์„ฑ
    • ์ ์ˆ˜ ๋ธ”๋ก์—๋Š” mouseConstraint ๋ง‰๊ธฐ
  • 1~3 ๋ ˆ๋ฒจ ๊ตฌํ˜„
    • ๋ ˆ๋ฒจ๋ณ„ bird ๋‹ค๋ฅด๊ฒŒ
    • ๋ ˆ๋ฒจ๋ณ„ ๋ชฉํ‘œ๋ฌผ ๋‹ค๋ฅด๊ฒŒ
  • ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„
    • renderํ•  ์ด๋ฏธ์ง€ ์ฐพ๊ธฐ
      • ์†กํŽธ, ๋‹ฌ, ํ† ๋ผ => ๋ ˆํผ๋Ÿฐ์Šค ์ˆ˜์ง‘ ์™„๋ฃŒ
        • ๋„ํŠธ ๋˜๋Š” ๊ท€์—ฝ๊ฒŒ
          • ๊ท€์—ฌ์šด๊ฒŒ ์ตœ๊ณ 
      • lottie ์• ๋‹ˆ๋ฉ”์ด์…˜
    • ์Œํ–ฅ
  • ๋ถ€์ˆ˜์ ์ธ ๊ตฌํ˜„
    • ๋งํฌ ๋ณต์‚ฌ ๊ธฐ๋Šฅ
    • ์†Œ์…œ๊ณต์œ (ํ™”๋ฉด ์บก์ณ) ๊ธฐ๋Šฅ
    • ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ์ ์ˆ˜์™€ ๋‹‰๋„ค์ž„ ๊ธฐ๋ก << ์—ฌ๊ธฐ๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ
    • ์†Œ์…œ ๋กœ๊ทธ์ธ << ์ด ๋ถ€๋ถ„์€ ์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง, ์‹œ๊ฐ„์ด ๋‚จ์œผ๋ฉด ๋‹ค๋ฅธ ๊ฒŒ์ž„ ๊ตฌํ˜„ํ•˜๊ธฐ
  • ์™„์„ฑํ•˜๊ธฐ
    • ํ‘ธํ„ฐ ์ถ”๊ฐ€ : ์ €์ž‘๊ถŒ, ๊นƒํ—™ ๋งํฌ, ๋ฉ”์ผ์ฃผ์†Œ
    • ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ โ‡’ next ํ”„๋กœ์ ํŠธ build ํ›„ ๊ธฐ์กด github.io ์‚ฌ์ดํŠธ์— static์œผ๋กœ ํด๋”๋งŒ ์ถ”๊ฐ€ํ•ด์„œ ๋ฐฐํฌ๊ฐ€ ์–ด๋ ต๋‹ค๋ฉด ? vercel๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
      • vercel ๋ฐฐํฌ ์™„๋ฃŒ

๐Ÿ“Œ 10์›” 3์ผ

์ ์ˆ˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„: collision & detector ํ™•์ธ
ํ…์Šค์ฒ˜ ์ถ”๊ฐ€
์†กํŽธ ์ด๋ฏธ์ง€ ๊ทธ๋ฆฌ๊ธฐ

  • collision mask? => ๊ทธ๋ฃน์„ ๋‚˜๋ˆ ์„œ filter์— ์ถ”๊ฐ€ํ•ด์„œ ์š”์†Œ๋ฅผ ๊ฒน์น˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
  • detector => id๋ž‘ label๋กœ ๊ด€๋ฆฌ. detect ๋œ ๋‹ค์Œ ์ง€์šฐ๊ธฐ => ์ƒํƒœ๋ฐ” UI ์—…๋ฐ์ดํŠธ
    • ์ ์ˆ˜: ํ•˜ํŠธ=500, ๋ฏธ๋‹ˆ์†กํŽธ=25, ๋ผ์šด๋“œ ํด๋ฆฌ์–ด=1000
  • config option์— texture ์ด๋ฏธ์ง€ ์ถ”๊ฐ€
    • ์™ธ๋ถ€ ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, loader ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š”๋Š” ์—†์Œ (+shooter target์„ ๋งŒ๋“ค๊ณ  constraint์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์ด๋ž‘ ๊ผฌ์ž„)
  • ํ…์Šค์ฒ˜ ํ…Œ์ŠคํŠธ.
    image
  • [Figma] ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ
    • ๋ƒฅ๊ธ€๋ƒฅ๊ธ€์—์„œ ๊ตฅ์ด ๊ทธ๋ฆฐ ์Šคํƒ€์ผ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๊ทธ๋ฆผ
      image
  • vercel ๊ธฐ๋ณธ ๋„๋ฉ”์ธ ๋ฐฐํฌ https://game-q363klszp-kikids.vercel.app/
    • ๋„๋ฉ”์ธ ๋“ฑ๋ก => 1์‹œ๊ฐ„ ์ •๋„ ๊ธฐ๋‹ค๋ฆผ https://www.dusuna.me/
  • ๋ฐฐํฌ ์™„๋ฃŒ ํ›„, 11์‹œ 55๋ถ„์— ์ œ์ถœ โœจ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.