以下是主程式
import pygame
from plane_sprites import *
class PlaneGame(object):
'''飛機大戰主游戲'''
def __init__(self):
print("游戲初始化")
#創建游戲視窗
self.screen = pygame.display.set_mode(SCRENT_RECT.size)
#創建游戲時鐘
self.clock = pygame.time.Clock()
#呼叫私有方法,精靈和精靈組的創建
self.__create_sprites()
def __create_sprites(self):
# 創建背景精靈和精靈組
bg1 = Background("./images/background.png")
self.back_group = pygame.sprite.Group(bg1)
def statr_game(self):
print("游戲開始")
while True:
# 設定重繪幀率
self.clock.tick(FRAME_PER_SEC)
# 時間監聽
self.__event_handler()
# 碰撞檢測
self.__check_collide()
# 更新繪制精靈組
self.__create_sprites()
# 更新顯示
pygame.display.update()
pass
def __event_handler(self):
for event in pygame.event.get():
# 判斷是否退出游戲
if event.type == pygame.QUIT:
PlaneGame.__game_over()
def __check_collide(self):
pass
def __update_sprites(self):
self.back_group.update()
self.back_group.draw(self.screen)
@staticmethod
def __game_over():
print("游戲結束")
pygame.quit()
exit()
if __name__ == '__main__':
'''創建游戲物件'''
game = PlaneGame()
#啟動游戲
game.statr_game()
以下是提供的精靈
import pygame
#螢屏大小的常量
SCRENT_RECT = pygame.Rect(0,0,480,700)
#重繪的幀率
FRAME_PER_SEC = 60
class GameSprite(pygame.sprite.Sprite):
"""飛機大戰游戲精靈"""
def __init__(self,image_name,speed=1):
#呼叫父類的初始化方法
super().__init__()
#定義物件的屬性
self.image = pygame.image.load(image_name)
# 定義rect記錄飛機的初始位置
self.rect = self.image.get_rect()
self.speed = speed
def update(self):
#在螢屏的垂直方向移動
self.rect.y += self.speed
class Background(GameSprite):
'''游戲背景精靈'''
def update(self):
#1呼叫父類的方法實作
super().update()
#判斷是否移出螢屏如果移除螢屏將影像移到螢屏上方
if self.rect.y >= SCRENT_RECT.height:
self.rect.y = -self.rect.height
運行結果沒有背景圖片沒有被加載出來 有正常設定大小的框
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57309.html
上一篇:當下熱門的神經網路是什么東西?
下一篇:JavaScript的資料型別
