1. 程式人生 > >pygame 筆記-1 按鍵控制方塊移動

pygame 筆記-1 按鍵控制方塊移動

背景:家裡的娃慢慢長大了,準備教一些兒童入門的程式設計知識,研究了一陣麻省理工的scratch 2 雖然不錯,但是功能有限,很多高階點的東西玩不出來。所以就有了這一系列,先提前自學一下,順便拿來練手python ~_^

pygame雖然不是做大型遊戲的最好選擇,但是入門卻是不錯,python也易於學習,官網的文件也算齊全。

先來一個最基本的程式碼:

import pygame

pygame.init()

win = pygame.display.set_mode((320, 240))  # 畫布視窗的大小
pygame.display.set_caption("first game")  # 視窗標題

x, y = 50, 50  # 方塊的起點
width, height = 30, 30  # 方塊的寬,高
speed = 5  # 速度

run = True
while run:
    # 防止cpu佔用過高
    pygame.time.delay(20)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    # 方向箭頭響應
    if keys[pygame.K_LEFT]:
        x -= speed

    if keys[pygame.K_RIGHT]:
        x += speed

    if keys[pygame.K_UP]:
        y -= speed

    if keys[pygame.K_DOWN]:
        y += speed

    # 防止跑出邊界
    if x > win.get_size()[0] - width:
        x = win.get_size()[0] - width

    if x < 0:
        x = 0

    if y > win.get_size()[1] - height:
        y = win.get_size()[1] - height

    if y < 0:
        y = 0

    # 將每一幀的底色先填充成黑色
    win.fill((0, 0, 0))
    # 畫方塊
    pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
    # 更新畫布
    pygame.display.update()

pygame.quit()

 

效果:

 

參考:

https://www.youtube.com/watch?v=i6xMBig-pP4

https://nerdparadise.com/programming/pygame/part1

https://www.pygame.org/docs/ref/surface.html