程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python實踐——利用pygame構建一個游戲初始界面(一)

編輯:Python

學了一段時間的python,還是需要一些實踐環節才能深刻理解,畢竟是個剛入門的小白,就先做點簡單的小游戲項目來給自己一些鼓勵吧,哈哈哈,不說了,上菜。

  • 創建一個背景為藍色的python窗口
    首先利用pycharm創建一個項目文件,命名方式最好取與所做項目相關的,見名知意。
    先創建一個空的pygame窗口並設置其背景色(背景色可以自定義,顏色的RGB通過百度獲取)

main_color.py

#導入模塊sys和pygame
import sys
import pygame
def run_game():
pygame.init()#初始化背景設置
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption('blue shy')
bg_color = (135,206,235)#設置背景色,天青藍
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:#檢測玩家單擊游戲窗口關閉按鈕
sys.exit()#退出游戲
#每次循環時都重繪屏幕
screen.fill(bg_color)
#讓最近繪制的屏幕可見
pygame.display.flip()
run_game()

方法pygame.event.get()是用來檢測用戶事件,判斷用戶進行的那些操作。
方法screen.fill() 使用背景色填充屏幕。
代碼包含了以下幾個過程:

  1. 模塊的導入(我們在下面游戲設置中需要使用的模塊,在這裡有兩個,模塊pygame包含開發游戲所需的功能,模塊sys用來退出游戲)
  2. 初始化游戲並創建屏幕對象(設置屏幕屬性)
  3. 開啟游戲循環(檢測用戶操作,更新屏幕)


結果如圖所示,窗口的大小可以根據自己的需要自己設定。
如果在後面還有很多功能需要添加,就可以考慮創建一些類,分別存放不同的功能,這樣在需要大量功能修改的時候才不會顯得雜亂,代碼的可讀性也更強。在這裡因為不需要實現大量的功能,就不用創建單獨的類來存放代碼。

  • 將一個圖像放在屏幕中央,並將背景色設置為相同
    在屏幕中添加一個圖像,創建一個ship類,用來管理圖像的設置,看代碼。
    ship.py
import pygame
class Ship():
def __init__(self, screen):
'''初始化圖像並設置其初始位置'''
self.screen = screen
#注:定義方法__init__()。(包含兩個形參:self, screen 。方法__init__()接受這些形參的值,並將他們存儲在根據這個類創建的實例屬性中)
#加載圖像並獲取圖像和屏幕的外接矩形
self.image = pygame.image.load("C:\python項目文件\練習001\images\Bee.bmp")
self.image_rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
#在指定位置放置飛船
self.image_rect.centerx = self.screen_rect.centerx
self.image_rect.centery = self.screen_rect.centery
def blitme(self):
'''在指定位置繪制圖像'''
self.screen.blit(self.image, self.image_rect)#定義方法blitme(),根據self.image_rect 指定的位置將圖像繪制到屏幕上

注:定義方法__init__()。(包含兩個形參:self, screen 。方法__init__()接受這些形參的值,並將他們存儲在根據這個類創建的實例屬性中),__ 是兩條下劃線,最初只打了一條,找了挺久的錯誤。

pygame中,原點(0,0)位於屏幕左上角。
如上,通過在ship類的代碼設置,圖像的基本位置已經設定好了,接下來只需在main_color.py中更新代碼就可實現功能。
以下是更新好了的代碼文件:更新的位置後面有#***

import sys
import pygame
from ship import Ship#***
def run_game():
pygame.init()
screen = pygame.display.set_mode((400,300))
pygame.display.set_caption('blue shy')
#創建圖像
ship = Ship(screen)#***
bg_color = (135,206,235)#設置背景色,天青藍
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:#檢測玩家單擊游戲窗口關閉按鈕
sys.exit()#退出游戲
#每次循環時都重繪屏幕
screen.fill(bg_color)
ship.blitme() #***
#讓最近繪制的屏幕可見
pygame.display.flip()
run_game()

從這兩個小的功能實現中,我們使用了很多pygame模塊中的方法,直接調用模塊內部已經設置好的方法來實現功能,的確提供了不少便利,所以想要自己寫一個復雜的游戲時,對各個模塊以及各個方法的功能作用的了解是必不可少的,當然,寫的多了,也自然就會了。
來看一下效果圖:

圖像居中,背景色沒調,選圖的時候如果有背景是透明的應該效果會更好,圖片格式要位圖(也就是後綴是.bmp)。當然,圖片的上下左右移動也可以實現,這裡就不一一寫出來了,後面更新的博客中會說到,其實寫的這些博客也沒有技術水平,只是當做個筆記順帶加上一些自己的理解,方便以後查閱,順帶可以加深印象。
獨樂樂,不如眾樂樂:寫是樂,評是樂,看是樂,樂最重要。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved