1. 程式人生 > 其它 >2022/12/3 Python實驗報告

2022/12/3 Python實驗報告

  實驗報告

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、實驗結果分析

  例項與實戰的程式設計結果都正確,但是編碼相比比較混雜,可以更簡潔些,而且實戰有參考網上答案,希望之後可以自己編碼。