學習Python之小練習(飛機大戰)(2)

2021-09-27 06:16:30 字數 2291 閱讀 2077

昨天我們繪製完成了遊戲的基本影象,今天繼續分享

先貼上昨天的執行結果

繼續我們今天的分享,先來分享一下遊戲時鐘

我們平時看到的遊戲畫面都是動態的,那麼如果我們要看到畫質比較清晰,那麼每秒我們的遊戲畫面就要重新整理60次以上,

所以我們就要設定遊戲的重新整理幀率

再來說一下我們的螢幕重新整理該放在**,昨天說到我們設定了乙個遊戲迴圈,那麼我們需要達到每秒60次的重新整理頻率,

只需要在遊戲迴圈中操作即可

在遊戲初始化建立乙個時鐘物件

在遊戲迴圈中讓時鐘物件呼叫tick(幀率)方法

tick方法會根據上次被呼叫的時間,自動設定遊戲迴圈中的延時

下面貼上**

# 建立時鐘物件

clock = pygame.time.clock()

# 遊戲迴圈--遊戲正式開始

while true:

clock.tick(60)

pass

接下來先說一下pygame.rect()方法,

需要傳四個引數分別為的 x軸位置,y軸位置,的寬,的高

下面貼上做個示範

貼上**

import pygame as pygame

pygame.init()

# 定義飛機大戰遊戲視窗,設定視窗寬高

fly_screen = pygame.display.set_mode((480,700))

# 繪製背景影象

# 1.載入影象資料

background = pygame.image.load("./images/background.png")

# 2.blit方法繪製影象

fly_screen.blit(background,(0,0))

# 3.update更新螢幕顯示

# pygame.display.update()

# 繪製飛機影象

fly_hero = pygame.image.load("./images/me1.png")

hero_rect = pygame.rect(150,500,102,126)

fly_screen.blit(fly_hero,hero_rect)

pygame.display.update()

# 建立時鐘物件

clock = pygame.time.clock()

# 遊戲迴圈--遊戲正式開始

while true:

# 指定迴圈體內部**執行頻率

clock.tick(60)

# 修改飛機位置

hero_rect.y -= 1

# 判斷飛機的位置

if hero_rect.y <= 0:

hero_rect.y = 700

# 呼叫blit方法繪製影象

fly_screen.blit(background,(0,0))

fly_screen.blit(fly_hero,hero_rect)

# 更新顯示

pygame.display.update()

pass

pygame.quit()

再對上面的影象效果進行以下優化,讓英雄飛機完全飛出螢幕以後,再從底部出現

貼上**

# 判斷飛機的位置 botten = y+height

if hero_rect.bottom <= 0:

hero_rect.y = 700

捕獲使用者所做的的操作,然後做出應對。

貼上**

# 捕獲時間

event_list = pygame.event.get()

if len(event_list) > 0:

print(event_list)

貼上結果圖

今天就分享到這裡,加油!!!

學習Python之小練習(飛機大戰)(4)

今天接著更新小遊戲 用物件導向的方法進行遊戲框架搭建 根據遊戲主程式職責,設計planegame類 新建 plane main.py 主程式檔案,在其中寫入遊戲主程式 附上 裡面有注釋,都挺詳細的 plane main 遊戲主程式 coding utf 8 import pygame from pl...

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...