ใ€Pygameใ€‘็”ปๅƒใ‚’่กจ็คบ๏ผˆใƒ—ใƒฌใ‚คใƒคใƒผใจ่ƒŒๆ™ฏใฎๆ็”ป๏ผ‰

Pythonใƒฉใ‚คใƒ–ใƒฉใƒชPygameใ‚’็”จใ„ใฆใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆ(็”ป้ข)ใซไธปไบบๅ…ฌใจ่ƒŒๆ™ฏ็”ปๅƒใ‚’ๆ็”ปใ™ใ‚‹ๆ–นๆณ•ใจใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‚’่งฃ่ชฌใ—ใพใ™ใ€‚

Pygameใง็”ปๅƒใฎๆ็”ป

Pygameใงใฏpygame.image.load()ใƒกใ‚ฝใƒƒใƒ‰ใง็”ปๅƒใ‚’่ชญใฟ่พผใฟใ€screen.blit()ใƒกใ‚ฝใƒƒใƒ‰ใง่ชญใฟ่พผใ‚“ใ ็”ปๅƒใ‚’็”ป้ขใซ่ฒผใ‚Šไป˜ใ‘ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
ไปŠๅ›žใฏไปฅไธ‹ใฎใ‚ˆใ†ใซ่ƒŒๆ™ฏ็”ปๅƒใจใƒ—ใƒฌใ‚คใƒคใƒผ็”ปๅƒใ‚’่ชญใฟ่พผใ‚“ใงใ‚ฒใƒผใƒ ็”ป้ขใซ่กจ็คบใ•ใ‚Œใ‚‹ๆ–นๆณ•ใ‚’่งฃ่ชฌใ—ใพใ™ใ€‚

ใ€ไปŠๅ›žไฝฟ็”จใ—ใŸ็”ปๅƒใ€‘
่ƒŒๆ™ฏ:background.png
ใƒ—ใƒฌใ‚คใƒคใƒผ:player.png

ๅ‹•็”ป่งฃ่ชฌ็‰ˆ

ๆœฌใƒšใƒผใ‚ธใฎๅ†…ๅฎนใฏไปฅไธ‹ๅ‹•็”ปใงใ‚‚่งฃ่ชฌใ—ใฆใ„ใพใ™ใ€‚

ใ‚ตใƒณใƒ—ใƒซใ‚ณใƒผใƒ‰

ๅ…ˆ็จ‹ใฎๅฎŸ่กŒ็ตๆžœใฎใ‚ตใƒณใƒ—ใƒซใ‚ณใƒผใƒ‰ใฏไปฅไธ‹ใฎใจใŠใ‚Šใงใ™ใ€‚


ใ‚ณใƒผใƒ‰ใฎ่งฃ่ชฌ

ไธŠ่จ˜ใฎใ‚ตใƒณใƒ—ใƒซใ‚ณใƒผใƒ‰ใซใคใ„ใฆ่งฃ่ชฌใ—ใพใ™ใ€‚

1. ใ‚คใƒณใƒใƒผใƒˆใจๅˆๆœŸ่จญๅฎš

import sys
import pygame
from pygame.locals import *
  • pygameใƒขใ‚ธใƒฅใƒผใƒซใจใใฎใƒญใƒผใ‚ซใƒซๅฎšๆ•ฐใ‚’ใ‚คใƒณใƒใƒผใƒˆใ—ใพใ™ใ€‚
  • sysใƒขใ‚ธใƒฅใƒผใƒซใ‚’ใ‚คใƒณใƒใƒผใƒˆใ—ใฆใ€ใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎ็ต‚ไบ†ๅ‡ฆ็†ใซไฝฟ็”จใ—ใพใ™ใ€‚

2. ็”ป้ขใ‚ตใ‚คใ‚บใจ็”ปๅƒใƒ•ใ‚กใ‚คใƒซใƒ‘ใ‚นใฎ่จญๅฎš

SCREEN_SIZE = (600, 378)
PLAYER_IMG_PATH = "/Users/github/sample/python/pygame/tutorial/player.png"
BACKGROUND_IMG_PATH = "/Users/github/sample/python/pygame/tutorial/background.png"
  • SCREEN_SIZEใง็”ป้ขใ‚ตใ‚คใ‚บใ‚’่จญๅฎšใ—ใพใ™ใ€‚
  • PLAYER_IMG_PATHใจBACKGROUND_IMG_PATHใงใƒ—ใƒฌใ‚คใƒคใƒผใจ่ƒŒๆ™ฏใฎ็”ปๅƒใƒ•ใ‚กใ‚คใƒซใฎ็ตถๅฏพใƒ‘ใ‚นใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚

3. ใƒกใ‚คใƒณ้–ขๆ•ฐใฎๅฎš็พฉ

def main():
    pygame.init()
    pygame.display.set_mode(SCREEN_SIZE)
    screen = pygame.display.get_surface()
  • pygame.init()ใงPygameใ‚’ๅˆๆœŸๅŒ–ใ—ใพใ™ใ€‚
  • pygame.display.set_mode(SCREEN_SIZE)ใงใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใ‚’ไฝœๆˆใ—ใ€็”ป้ขใ‚ตใ‚คใ‚บใ‚’่จญๅฎšใ—ใพใ™ใ€‚
  • pygame.display.get_surface()ใฏใ€ไฝœๆˆใ•ใ‚ŒใŸใƒ‡ใ‚ฃใ‚นใƒ—ใƒฌใ‚คใ‚ตใƒผใƒ•ใ‚งใ‚น๏ผˆใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใฎๆ็”ปๅฏพ่ฑก๏ผ‰ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ตใƒผใƒ•ใ‚งใ‚น๏ผˆSurface๏ผ‰ใฏใ€็”ปๅƒใ‚„ใƒ†ใ‚ญใ‚นใƒˆใชใฉใฎใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏ่ฆ็ด ใ‚’ๆ็”ปใ™ใ‚‹ใŸใ‚ใฎๅŸบๆœฌ็š„ใชใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใงใ™ใ€‚ใ‚ตใƒผใƒ•ใ‚งใ‚นใฏใ€ใƒ”ใ‚ฏใ‚ปใƒซใƒ‡ใƒผใ‚ฟใฎ้›†ๅˆไฝ“ใงใ€ใ‚ฒใƒผใƒ ใฎใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏ่ฆ็ด ใ‚’ๆง‹ๆˆใ™ใ‚‹ใŸใ‚ใฎใ‚ญใƒฃใƒณใƒใ‚นใฎใ‚ˆใ†ใชใ‚‚ใฎใงใ™ใ€‚

4. ็”ปๅƒใฎ่ชญใฟ่พผใฟใจๅˆๆœŸไฝ็ฝฎใฎ่จญๅฎš

bg = pygame.image.load(BACKGROUND_IMG_PATH).convert_alpha()
rect_bg = bg.get_rect()
player = pygame.image.load(PLAYER_IMG_PATH).convert_alpha()
rect_player = player.get_rect()
rect_player.center = (330, 300)
  • pygame.image.load()ใง็”ปๅƒใ‚’่ชญใฟ่พผใฟใ€convert_alpha()ใง้€ๆ˜Žๅบฆใ‚’ไฟๆŒใ—ใพใ™ใ€‚
  • get_rect()ใง็”ปๅƒใฎ็Ÿฉๅฝข๏ผˆไฝ็ฝฎใจใ‚ตใ‚คใ‚บ๏ผ‰ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅˆๆœŸไฝ็ฝฎใฏ (0,0) ใซใชใ‚Šใพใ™ใ€‚
  • rect_player.centerใงใƒ—ใƒฌใ‚คใƒคใƒผ็”ปๅƒใฎไธญๅฟƒไฝ็ฝฎใ‚’๏ผˆ330, 300๏ผ‰ใซ่จญๅฎšใ—ใพใ™ใ€‚

5. ใƒกใ‚คใƒณใƒซใƒผใƒ—

while True:
    pygame.display.update()
    pygame.time.wait(30)
    screen.fill((0, 0, 0, 0))
    screen.blit(bg, rect_bg)
    screen.blit(player, rect_player)
  • pygame.display.update()ใง็”ป้ขใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚
  • pygame.time.wait(30)ใง30ใƒŸใƒช็ง’ๅพ…ๆฉŸใ—ใพใ™ใ€‚
  • screen.fill((0, 0, 0, 0))ใง็”ป้ขใ‚’็œŸใฃ้ป’ใซๅก—ใ‚Šใคใถใ—ใฆใ‚ฏใƒชใ‚ขใ—ใพใ™ใ€‚
  • screen.blit()ใง่ƒŒๆ™ฏใจใƒ—ใƒฌใ‚คใƒคใƒผ็”ปๅƒใ‚’ๆ็”ปใ—ใพใ™ใ€‚ๅ…ˆใซ่ƒŒๆ™ฏ็”ปๅƒใ‚’ๆ็”ปใ™ใ‚‹ใ“ใจใงใ€ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผ็”ปๅƒใฏ่ƒŒๆ™ฏใฎไธŠใซๆ็”ปใ•ใ‚Œใพใ™ใ€‚

6. ใ‚คใƒ™ใƒณใƒˆๅ‡ฆ็†

for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit()
    if event.type == KEYDOWN:
        if event.key == K_ESCAPE:
            pygame.quit()
            sys.exit()
  • pygame.event.get()ใงใ‚คใƒ™ใƒณใƒˆใ‚’ๅ–ๅพ—ใ—ใ€ใƒซใƒผใƒ—ใงๅ‡ฆ็†ใ—ใพใ™ใ€‚
  • ใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใฎ้–‰ใ˜ใ‚‹ใƒœใ‚ฟใƒณใŒๆŠผใ•ใ‚ŒใŸๅ ดๅˆใ‚„ใ€Escใ‚ญใƒผใŒๆŠผใ•ใ‚ŒใŸๅ ดๅˆใซใƒ—ใƒญใ‚ฐใƒฉใƒ ใ‚’็ต‚ไบ†ใ—ใพใ™ใ€‚

7. ใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎใ‚จใƒณใƒˆใƒชใƒผใƒใ‚คใƒณใƒˆ

if __name__ == "__main__":
    main()

ใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒ็›ดๆŽฅๅฎŸ่กŒใ•ใ‚ŒใŸๅ ดๅˆใซmain()้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใพใ™ใ€‚

้–ข้€ฃใƒšใƒผใ‚ธ

Pygameใฎไฝฟใ„ๆ–นใซใคใ„ใฆใฏไปฅไธ‹ใƒšใƒผใ‚ธใง่งฃ่ชฌใ—ใฆใ„ใพใ™ใ€‚

ใ€Pygame่ถ…ๅ…ฅ้–€ใ€‘ไฝฟใ„ๆ–นใจใ‚ตใƒณใƒ—ใƒซใ‚ฒใƒผใƒ ใ‚’่งฃ่ชฌ
Pygameใง2Dใ‚ฒใƒผใƒ ใ‚’็ฐกๅ˜ใซๅˆถไฝœใ™ใ‚‹ๆ–นๆณ•ใ‚’ๅ…ฅ้–€่€…ๅ‘ใ‘ใซ่งฃ่ชฌใ—ใพใ™ใ€‚

Pythonๅ…จ่ˆฌใซใคใ„ใฆใฏไปฅไธ‹ใƒšใƒผใ‚ธใง่งฃ่ชฌใ—ใฆใ„ใพใ™ใ€‚

ใ€Python่ถ…ๅ…ฅ้–€ใ€‘ไฝฟใ„ๆ–นใจใ‚ตใƒณใƒ—ใƒซ้›†
Pythonใฎไฝฟใ„ๆ–นใซใคใ„ใฆใ€ๅŸบ็คŽๆ–‡ๆณ•ใ‹ใ‚‰ๅฟœ็”จไพ‹ใพใงๅ…ฅ้–€่€…ๅ‘ใ‘ใซ่งฃ่ชฌใ—ใพใ™ใ€‚
ใ“ใฎ่จ˜ไบ‹ใ‚’ๆ›ธใ„ใŸไบบ
่ฅฟไฝๆŠ€็ ”

Pythonไฝฟ็”จๆญด10ๅนดไปฅไธŠใ€‚็ ”็ฉถใ€ไป•ไบ‹ใ€่ถฃๅ‘ณใงใƒ‡ใƒผใ‚ฟๅˆ†ๆžใ‚„ไฝœๆฅญ่‡ชๅ‹•ๅŒ–ใชใฉใซๆดป็”จใ—ใฆใใŸใƒŽใ‚ฆใƒใ‚ฆใ‚’ๆƒ…ๅ ฑ็™บไฟกใ—ใฆใ„ใพใ™ใ€‚
่ฉณใ—ใ„ใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซใ‚„ใŠๅ•ๅˆใ›ใฏใ“ใกใ‚‰ใฎใƒšใƒผใ‚ธใพใงใ€‚
โ‡“Youtubeใ‚„X๏ผˆๆ—งTwitter๏ผ‰ใงใ‚‚ๆƒ…ๅ ฑ็™บไฟกไธญใงใ™๏ผ

่ฅฟไฝๆŠ€็ ”ใ‚’ใƒ•ใ‚ฉใƒญใƒผใ™ใ‚‹
PyGame

ใ‚ณใƒกใƒณใƒˆ

  1. ใ‚ธใ‚งใƒณใƒŠใƒผ ใ‚ˆใ‚Š:

    ็”ปๅƒใฎ่ชญใฟ่พผใฟใŒใ†ใพใใ„ใใพใ›ใ‚“ใ€‚ๅๅ‰ใŒๅŒใ˜็”ปๅƒใƒ•ใ‚กใ‚คใƒซใ‚’ๅŒใ˜ใƒ•ใ‚กใ‚คใƒซใฎไธญใซๅ…ฅใ‚ŒใฆใŠใใพใ—ใŸใ€‚

    • ็ฎก็†ไบบ ใ‚ˆใ‚Š:

      ใ‚ณใƒกใƒณใƒˆใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚
      ใ‚จใƒฉใƒผใƒกใƒƒใ‚ปใƒผใ‚ธใงใ€ใ‚ใ‚‹็จ‹ๅบฆๅŽŸๅ› ใŒใ‚ใ‹ใ‚‹ใจๆ€ใ„ใพใ™ใฎใง(ไฟๅญ˜ๅ…ˆใฎๆŒ‡ๅฎšใŒ้–“้•ใฃใฆใ„ใ‚‹ใ‹ใ€ใใ†ใงใชใ„ใ‹็ญ‰)ใ”็ขบ่ชใใ ใ•ใ„ใ€‚