今天接著更新小遊戲
用物件導向的方法進行遊戲框架搭建
根據遊戲主程式職責,設計planegame類
新建 plane_main.py 主程式檔案,在其中寫入遊戲主程式
附上** ,裡面有注釋,都挺詳細的
plane_main 遊戲主程式
# -*- coding: utf-8 -*-
import pygame
from plane_sprites import *
class planegame(object):
"""飛機大戰主遊戲
"""def __init__(self):
print("遊戲初始化...")
# 1.建立遊戲視窗
self.screen = pygame.display.set_mode(screen_rect.size)
# 2.建立遊戲時鐘
self.clock = pygame.time.clock()
# 3.呼叫私有方法,建立精靈和精靈組
self.__create_sprites__()
def __create_sprites__(self):
pass
def start_game(self):
print("遊戲開始...")
while true:
# 1. 設定重新整理幀率
self.clock.tick(frame_per_sec)
# 2. 事件監聽
self.__event_handler__()
# 3. 碰撞檢測
self.__check_collide__()
# 4. 繪製/更新精靈組
self.__update_sprites__()
# 5. 更新顯示
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):
pass
# 定義靜態方法,因為不需要用到類屬性
@staticmethod
def __game_over__():
print("遊戲結束!")
pygame.quit()
exit()
if __name__ == '__main__':
# 建立遊戲物件
game = planegame()
# 啟動遊戲
game.start_game()
plane_sprites.py精靈組工具包
# -*- coding: utf-8 -*-
import pygame
# 建立螢幕大小的常量
screen_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)
self.rect = self.image.get_rect()
self.speed = speed
def update(self, *args):
# 在垂直方向向上移動
self.rect.y += self.speed
休息。。。。。。 學習Python之小練習(飛機大戰)(2)
昨天我們繪製完成了遊戲的基本影象,今天繼續分享 先貼上昨天的執行結果 繼續我們今天的分享,先來分享一下遊戲時鐘 我們平時看到的遊戲畫面都是動態的,那麼如果我們要看到畫質比較清晰,那麼每秒我們的遊戲畫面就要重新整理60次以上,所以我們就要設定遊戲的重新整理幀率 再來說一下我們的螢幕重新整理該放在 昨天...
Python 學習 小例子練習
網上了點小例子,練習一下下,都是特別簡單的。而且這些 也都是找的網上的 目的是在於練習一下python和熟悉下python的編碼風格等等 學習一門語言,最快的方法就是把它用在世界的開發中,這樣才能不斷的理解,積累,單純的靠看書,感覺是沒有太大的用途的一點一點慢慢來 第乙個,有1 2 3 4個數字,能...
python學習之相關練習
1.用物件導向的方式實現堆疊的資料結構 後進先出 指令碼編寫如下 class stack object 將棧定義為乙個類 def init self,stack self.stack stack defmanystack self,args 進棧方法 self.stack.extend args d...