[Day22] PyGame 經典小遊戲製作專案 I


請先在 Accupass 活動通報名,並參考課程兌換教學完成課程兌換。


問題討論區
加入問題討論
作業任務區
提交作業任務


hokou Jan 16, 2020

請問一下,點擊滑鼠,圖片會移動位置
抓到的座標看起來對應是圖片的左上角
有可能讓它置中嗎?

還是要抓到圖片大小再來換算
畢竟圖片可能大小尺寸不同
就要各別換算嗎

happycoder Jan 16, 2020

一種是用圖片大小和視窗手工計算,一種是利用 get_rect() 取得和圖片一樣大小的矩形並搭配 screen.get_rect().center 取得視窗中間值後讓該矩形置中,在渲染時使用該矩形定位來渲染圖片(pygame 常用到的技巧,取得元素矩形物件進行定位)

import pygame

pygame.init()

window_size = [800, 600]
screen = pygame.display.set_mode(window_size)

image = pygame.image.load('./duck.png')
image_rect = image.get_rect(center=screen.get_rect().center)

# 顯示圖片到視窗上中間位置
screen.blit(image, image_rect)

# 這個是決定是否跳出遊戲迴圈的變數
is_game_over = False

while not is_game_over:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            is_game_over = True
    # 更新畫面
    pygame.display.flip()

# 最後記得關閉 pygame
pygame.quit()