๐Ÿ“• [ TIL ] : 6์ผ์ฐจ_2022.04.25.(์›”) - ๋‘ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

๊น€๋ฐฅยท2022๋…„ 4์›” 25์ผ
2

20220425(MON)_TODAY TIL

TODAY PROJECT

- ํŒŒ์ด์ฌ์œผ๋กœ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ(๊ฐœ์ธํ”„๋กœ์ ํŠธ) : 'Juke Dino'
- Juke Dino์˜ ๋ฉ”์ธ ์บ๋ฆญํ„ฐ์ธ Dino๋ฅผ ์›€์ง์—ฌ๋ณด์ž!

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

VSCode, Python 3.x

์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

pygame, os, sys, datetime

โœ๏ธ REMIND : PROJECT .๋งŒ๋“ค๊ฒŒ ๋œ ๊ณ„๊ธฐ

  • ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๊ฐ€ ์‹ฌ์‹ฌํ•ด์งˆ๋•Œ ํ˜น์€ ์กฐ๊ธˆ ํœด์‹์ด ํ•„์š”ํ•  ๋•Œ ํ‰ํ™”๋กœ์šด ์Œ์•…์„ ์ž๋™์œผ๋กœ ํ‹€์–ด์ฃผ๊ณ  ๋™๋ฌผ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์„ ์ œ์ž‘ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค.
  • ๋งˆ์น˜ ๋™๋ฌผ์˜ ์ˆฒ, ์ฟ ํ‚ค๋Ÿฐ ํ‚น๋ค, ์Šคํƒ€๋“€๋ฐธ๋ฆฌ์™€ ๊ฐ™์€ ํ‰ํ™”๋กœ์šด ๋งˆ์„ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ์Œ์•…๊ณผ ํ”ฝ์…€ ๋™๋ฌผ ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด์„œ ์ œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ์œ ๋ช…ํ•œ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ๊ณต๋ฃก๊ฒŒ์ž„(์ธํ„ฐ๋„ท ์ ‘์†์ด ๋Š๊ธฐ๋ฉด ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋“ฑ์žฅํ•˜๋Š” ๊ณต๋ฃก๊ฒŒ์ž„)์ธ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ๊ฒŒ์ž„(Dino T-Rex)์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„์„œ ์ด ๊ณต๋ฃก ์บ๋ฆญํ„ฐ๋ฅผ ์ฐจ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

โœ๏ธ REMIND : PROJECT .๋ฌด์—‡์„ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?

- ์ธํŠธ๋กœ ํ™”๋ฉด, ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉํ•  ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ ์›€์ง์ด๊ธฐ

๊ธฐ๋Šฅ ์‹œ์—ฐ

๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ณต๋ฃก์ด ์›€์ง์ธ๋‹ค.

์ฝ”๋“œ ์ฒจ๋ถ€

# ์›€์ง์ด๋Š” ๊ณต๋ฃก
import pygame
import os
current_path = os.path.dirname(__file__)  # ํ˜„์žฌ ํŒŒ์ผ์˜ ์œ„์น˜ ๋ฐ˜ํ™˜
image_path = os.path.join(current_path, "images")  # images ํด๋” ์œ„์น˜ ๋ฐ˜ํ™˜

pygame.init()
screen_width = 600
screen_height = 300
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('chrome game')

background = pygame.image.load(
    os.path.join(image_path, "white.png"))
character = pygame.image.load(
    os.path.join(image_path, "dino1.png"))
character_size = character.get_rect().size
character_width = character_size[0]
character_height = character_size[1]
character_x_pos = (screen_width/2-character_width/2)
character_y_pos = (screen_height/2)

to_x = 0
to_y = 0

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                to_x -= 2

            elif event.key == pygame.K_RIGHT:
                to_x += 2
            elif event.key == pygame.K_UP:
                to_y -= 2
            elif event.key == pygame.K_DOWN:
                to_y += 2

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                to_x = 0
            elif event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                to_y = 0

    character_x_pos += to_x
    character_y_pos += to_y

    if character_x_pos < 0:
        character_x_pos = 0
    elif character_x_pos > screen_width-character_width:
        character_x_pos = screen_width-character_width

    if character_y_pos < 0:
        character_y_pos = 0
    elif character_y_pos > screen_height-character_height:
        character_y_pos = screen_height-character_height

    screen.blit(background, (0, 0))
    screen.blit(character, (character_x_pos, character_y_pos))
    pygame.display.update()

pygame.quit()

์‚ฌ์šฉํ•œ ์†Œ์Šค

๊ณต๋ฃก ์ด๋ฏธ์ง€

๐ŸŒพ ์ถ”ํ›„ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •ํ•  ๊ฒƒ

  • ์ฐฝ ํ™•๋Œ€, ์ถ•์†Œ (F1์œผ๋กœ ํ™•๋Œ€, F2๋กœ ์ถ•์†Œ)
  • ๊ณต๋ฃก์ด ๋ฌผ์ฒด์— ๋‹ฟ์œผ๋ฉด ์Œ์•…์— ๋Œ€ํ•œ ์„ค๋ช…์ด ๋‚˜์˜ค๋ฉด์„œ ์Œ์•… ์žฌ์ƒ
    (์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ ์Œ์•… ํ‘œ์‹œ, ๋‹ค๋ฅธ ์ฅฌํฌ๋ฐ•์Šค์— ๋‹ฟ์œผ๋ฉด ๊ธฐ์กด ์žฌ์ƒํ•˜๋˜ ์Œ์•… ์ข…๋ฃŒ ํ›„ ์ƒˆ๋กœ์šด ์Œ์•… ์žฌ์ƒ๋จ)
  • [SPACE] ํ‚ค ๋ˆ„๋ฅผ ์‹œ ์Œ์•… ์ข…๋ฃŒ
  • [ESC] ํ‚ค ๋ˆ„๋ฅผ ์‹œ '์ข…๋ฃŒํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?' ํ™”๋ฉด์— ์ถœ๋ ฅ

๐ŸŒพ ๊ฒŒ์ž„ ์‘์šฉ ๋ฐฉ์•ˆ

  • ์—ฌ๋Ÿฌ ํ™”๋ฉด์„ ์—ฐ๊ฒฐํ•ด์„œ ์ง‘, ์•„์นจ, ์ ์‹ฌ, ์ €๋… ๋“ฑ ๋งˆ์„๊ฒŒ์ž„์œผ๋กœ ๋งŒ๋“ค๊ธฐ ๊ฐ€๋Šฅ
  • ๋ฐฉํƒˆ์ถœ ๊ฒŒ์ž„์œผ๋กœ ์‘์šฉ ๊ฐ€๋Šฅ

์˜ค๋Š˜ ์ž‘์—…ํ•œ ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ๋‚˜์˜_๊นƒํ—ˆ๋ธŒ ์— ๊ฒŒ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ’ฉ

profile
๋ธ”๋กœ๊ทธ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€