Skip to content

nominsol/PythonPlantsVsZombies-master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Python ๊ธฐ๋ฐ˜ PlantsVsZombies ๊ฒŒ์ž„ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ํ”„๋กœ์ ํŠธ

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” Python ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„์ธ PlantsVsZombies๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ๋ฐ ๊ฐœ์„ ํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ๊ฐœ๋ฐœ์ž์˜ ๊ฒŒ์ž„์„ ์ƒˆ๋กญ๊ฒŒ ์ˆ˜์ •ํ•˜์—ฌ ๋ณด๋‹ค ์™„์„ฑ๋„ ๋†’์€ ๊ฒŒ์ž„์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒ€์›๋“ค์ด Python ์–ธ์–ด์™€ ์˜คํ”ˆ์†Œ์Šค ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ•˜๊ณ , ํ˜‘์—…์„ ํ†ตํ•œ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ •๋ณด

  • ์˜คํ”ˆ์†Œ์Šค ์ด๋ฆ„: PythonPlantsVsZombies
  • ๊ฐœ๋ฐœ์ž: Marblexu
  • ์‚ฌ์šฉ ์–ธ์–ด: Python
  • ์ฃผ์š” ํŒจํ‚ค์ง€: Pygame

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ๋ฐ ๊ธฐ๋Œ€ ํšจ๊ณผ

ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ์ 

  • ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„์˜ ๊ธฐ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ชจ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒŒ์ž„์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
  • ํŒ€์› ์ „์ฒด๊ฐ€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ์—ฌ์ž๋กœ์จ ์‹ค๋ ฅ์„ ๊ฐ–์ถ”๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Œ€ ํšจ๊ณผ

  • ๋‹ค์–‘ํ•œ ์Šคํ…Œ์ด์ง€์™€ ์ถ”๊ฐ€์ ์ธ ๋””ํŽœ์Šค ์บ๋ฆญํ„ฐ, ๋‚œ์ด๋„ ์„ค์ •์„ ํ†ตํ•ด ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ ์š”์†Œ๋ฅผ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด Python ์–ธ์–ด์— ๋Œ€ํ•œ ์ˆ™๋ จ๋„๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ, ์‹ค๋ฌด ๊ฐœ๋ฐœ์—์„œ์˜ ํ˜‘์—… ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๋ฐ ๊ฐœ์„  ๋‚ด์šฉ

์ฃผ์š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • ์ƒˆ๋กœ์šด ์Šคํ…Œ์ด์ง€ ๋ฐ ๋‚œ์ด๋„ ๋ชจ๋“œ: ๊ฒŒ์ž„์— ๋‹ค์–‘ํ•œ ์Šคํ…Œ์ด์ง€์™€ ๋‚œ์ด๋„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์œ ์ €๊ฐ€ ๋”์šฑ ๋„์ „์ ์ธ ํ™˜๊ฒฝ์—์„œ ๊ฒŒ์ž„์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ž„ ์†๋„ ์กฐ์ ˆ ๊ธฐ๋Šฅ: ๊ฒŒ์ž„ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์† ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒŒ์ž„ ์ง„ํ–‰ ์†๋„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • UI ๊ฐœ์„ : ๊ฒŒ์ž„ ์‹œ์ž‘ ๋ฒ„ํŠผ, ๋‚œ์ด๋„ ์„ค์ •, ์†Œ๋ฆฌ ์„ค์ •, ์ข…๋ฃŒ ๋ฒ„ํŠผ ๋“ฑ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋Œ€ํญ ๊ฐœ์„ ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šด๋“œ ํšจ๊ณผ: ๊ฒŒ์ž„ ๋‚ด ์‚ฌ์šด๋“œ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชฐ์ž…๊ฐ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ๊ธฐ์ˆ  ๋ฐ ์ž๋ฃŒ ๊ตฌ์กฐ

๊ธฐ์ˆ  ์Šคํƒ

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด: Python
  • ์‚ฌ์šฉ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: Pygame
  • ๋””์ž์ธ ํŒจํ„ด: Singleton Pattern์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์˜ ์‹œ๊ฐ„๊ณผ ์ข€๋น„ ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” GameManager ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„

์ฃผ์š” ๋ชจ๋“ˆ ๋ฐ ์ž๋ฃŒ ๊ตฌ์กฐ

  • map.py: 5x9์˜ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๊ฒŒ์ž„ ๋งต์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • plant.py ๋ฐ zombie.py: ๊ฒŒ์ž„ ๋‚ด ์‹๋ฌผ๊ณผ ์ข€๋น„์˜ ์ด๋ฒคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.
  • mainmenu.py ๋ฐ screen.py: ๋ฉ”์ธ ๋ฉ”๋‰ด์™€ ๊ฒŒ์ž„ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ณผ์ •

  1. ์˜คํ”ˆ์†Œ์Šค ๋ถ„์„: ์˜คํ”ˆ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์™€ ๋™์ž‘์„ ๋ถ„์„ํ•˜๊ณ , ํŒ€์›๋“ค๊ณผ์˜ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๊ฐœ์„ ํ•  ์ ์„ ๋„์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ธฐ๋Šฅ ์ถ”๊ฐ€: ๋ถ„์„ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€๊ณ , ๊ธฐ์กด์˜ ๊ธฐ๋Šฅ์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  3. UI ๊ฐœ์„ : ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ณ ๋ คํ•˜์—ฌ ๋‹ค์–‘ํ•œ UI ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ํ๋ฆ„์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  4. ์ตœ์ข… ํ…Œ์ŠคํŠธ: ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ์ตœ์ข… ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํ‰๊ฐ€ ๋ฐ ๊ฒฐ๋ก 

  • ๋ณธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ฏธ์™„์„ฑ๋œ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ๋ณด์™„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํŒ€์›๋“ค๊ณผ์˜ ํ˜‘์—…์„ ํ†ตํ•ด ๊ฐ์ž์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ์„ฑ์žฅ์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.
  • Python ์–ธ์–ด์™€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์‹ค๋ ฅ ํ–ฅ์ƒ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•œ ๊ฒฝํ—˜์ด์—ˆ์œผ๋ฉฐ, ์ดํ›„ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ์‹œ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • ์–ธ์–ด: Python
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ: Pygame
  • ๋ฒ„์ „ ๊ด€๋ฆฌ: GitHub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages