2022/12/3 Python實驗報告
阿新 • • 發佈:2022-12-03
實驗報告
1、實驗目的和要求
瞭解並掌握Pygame的基本應用
2、實驗環境
筆記本與Python書本
3、實驗過程
例項01 製作一個跳躍的小球遊戲
建立一個遊戲視窗,然後在遊戲視窗內建立一個小球。以一定速度移動小球,當小球碰到遊戲視窗的邊緣時,小球彈回,繼續移動。
步驟:(1)建立一個遊戲視窗,寬和高設定為640*480.
# -*- coding:utf-8 -*- import pygame import sys pygame.init() #初始化pygame size = width, height = 320,240 #設定視窗 screen = pygame.display.set_mode(size)#顯示視窗 #執行死迴圈,確保視窗一直顯示 while True: #檢查事件 for event in pygame.event.get(): #遍歷所有事件 if event.type == pygame.QUIT: #如果單擊關閉視窗,則退出 sys.exit() pygame.quit() #退出pygame
(2)執行上述程式碼,會出現一個一閃而過的黑色視窗,這是因為程式執行完成後,會自動關閉。如果讓視窗一直顯示,需要使用while True讓程式一直執行,此外,還需要設定關閉按鈕。
(3)在視窗新增小球。讓我們先準備好ball.png圖片,然後載入該圖片,最後將圖片顯示在視窗中
(4)下面該讓小球動起來了。ball.get_rect()方法返回值ballrect是一個Rect物件,該物件有一個move()方法可以用於移動矩形。move(x,y)函式有兩個引數,第一個引數是X軸移動的距離,第二個引數是Y軸移動的距離。窗體左上角座標為(0,0),如果設定move(100,50),小球移動後的座標位置改變
(5)小球在螢幕中一閃而過,沒有真正消失,而是移動到窗體外,此時需要新增碰撞檢測的功能。當小球與窗體任一邊發生碰撞,則更改小球的移動方向。
(6)由於小球在飛速運轉,需要新增“時鐘”來控制程式執行的時間。這時就需要使用Pygame的time模組。必須先建立Clock物件,然後在while迴圈中設定多長時間迴圈一次
import pygame #匯入pygame模組 import sys #匯入sys模組 pygame.init()#初始化pygame size = width,height = (1040,750) #設定視窗 (根據自己的電腦顯示器進行調整) screen = pygame.display.set_mode(size)#顯示視窗 color = (0,0,0) #設定顏色 ball = pygame.image.load("ball.jpeg") #載入圖片 ballrect = ball.get_rect() #獲取矩形區域 speed = [1,1] #設定移動的x軸,y軸距離(數值越大越快) while True: #執行死迴圈,確保視窗一直顯示,並檢查事件 for event in pygame.event.get(): if event.type == pygame.QUIT: #如果單擊關閉視窗,則退出 sys.exit() ballrect = ballrect.move(speed) #移動小球 if ballrect.left <0 or ballrect.right > width: speed[0] = -speed[0] if ballrect.top <0 or ballrect.bottom >height: speed[1] = -speed[1] screen.fill(color) #填充顏色 screen.blit(ball,ballrect) #將圖片畫到視窗上 pygame.display.flip() #更新全部顯示 pygame.quit()
4、實驗結果分析
例項與實戰的程式設計結果都正確,但是編碼相比比較混雜,可以更簡潔些,而且實戰有參考網上答案,希望之後可以自己編碼。