我們假定你已經(jīng)安裝好了我們開發(fā)python程序的sublime text,如果不知道怎么安裝的可以參照我前面的博文。這里只需要解決的是配置好Pygame的問題。本篇博文主要解決開發(fā)環(huán)境配置以及第一個(gè)游戲界面的顯示問題。
文章原出處: https://blog.csdn.net/haigear/article/details/130173836
一、配置好pygame
沒有pygame我們僅僅使用Python來編寫游戲難度還是比較大的,雖然我們都說Python何等簡單強(qiáng)大,Python之所以強(qiáng)大就是它背后有無所的支持庫。這里我們重點(diǎn)看看在sumbline text中如何安裝,為什么要使用sublime text呢,它輕量級(jí),適合于企圖入門的小伙伴。
1、安裝pygame
如果實(shí)在以前從來沒有聽說過pygame的小伙伴,可以直接到其官網(wǎng)上看看,www.pygame.org.老辦法,我們?cè)赾md模式下輸入指令pip install pygame
我的安裝事件比較久,但記得幾年前安裝是很快的,也不知道問題出在哪里,難道現(xiàn)在玩這個(gè)東東的人多了很多嗎??不得而知,我們不去管它。如果實(shí)在是嫌棄太慢了,用清華鏡像:
pip install pygame -i https://pypi.mirrors.ustc.edu.cn/simple/
怎樣叫做安裝成功了呢?如果我們?cè)谖覀兊臏y(cè)試代碼文件中包涵pygame的包,編譯不報(bào)錯(cuò)就表示成功了,當(dāng)然,你也可以在cmd下執(zhí)行import pygame,如下:
兩種驗(yàn)證方式,都說明你可以使用pygame了。
3、安裝pygame遇到問題了
如果遇到這個(gè)問題,那就是你的Pip 需要升級(jí)了,我們可以查看一下pip
那我們升級(jí)一下吧,如果網(wǎng)絡(luò)不暢,就用清華鏡像:
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
3、給pygame配好代碼自動(dòng)補(bǔ)全
有了這個(gè)自動(dòng)補(bǔ)全工具,可以提高我們以后的開發(fā)效率,其他的就不多說了。
二、開始第一個(gè)游戲窗體
1、游戲大體步驟
一個(gè)pygame游戲代碼的必要的步驟如下:
1、引入pygame包,包括pygame.locals
2、初始化pygame.init,并且設(shè)置顯示模式
3、開啟while循環(huán),否則你的窗口一閃即逝
import pygame
from pygame.locals import *
runing=True
pygame.init()
size=width,height=(400,600)
pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")
while runing:
for event in pygame.event.get():
if event.type==QUIT:
runing=False
2、代碼說明
from pygame.locals import * 這里包涵了后面使用到的pygame.event的類型、pygame.key,pygame.time等常用的類型常量枚舉等
pygame.init()是pygame開啟的初始化方法,必須首先運(yùn)行,不能少
pygame.display.set_mode()設(shè)置顯示模式,即屏幕大小,可以直接輸入寬高即可
pygame.display.set_caption()設(shè)置標(biāo)題
pygame.event.get()獲取的都是各類事件類型
這里采用了,如果在獲取到的事件類型中,如果有QUIT類型,那么退出while循環(huán),游戲結(jié)束。
運(yùn)行起來,我們得到了一個(gè)黑色的屏幕
三、讓游戲動(dòng)起來吧!
1、改個(gè)底色
pygame.init()
size=width,height=(400,600)
screen=pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")
screen.fill((200,100,0))
pygame.display.update()
注意,這里沒display.update,我們對(duì)畫面的任何修改和設(shè)置都顯示不出來。
2、加載個(gè)圖片
這里,我們加載個(gè)飛機(jī)的圖標(biāo)以及背景圖片,看看效果如何;
代碼如下:
import pygame
from pygame.locals import *
import os
# 加載圖片
aircraft=pygame.transform.scale(pygame.image.load(os.path.join("assets","aircraft.png")),(80,80))
bg=pygame.transform.scale(pygame.image.load(os.path.join("assets","bg.jpg")),(width,height))
runing=True
pygame.init()
size=width,height=(400,600)
screen=pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")
screen.fill((200,100,0))
#游戲運(yùn)行循環(huán)
while runing:
for event in pygame.event.get():
if event.type==QUIT:
runing=False
screen.blit(aircraft,(100,300))
pygame.display.update()
這里加載圖片時(shí),我們使用了os庫中的path方法,而且還是用了圖片縮放方法transform.scale,縮放至我們滿意的大小。
3、動(dòng)起來吧
下面的代碼,要達(dá)到的目的就是讓我們的飛機(jī)在按下對(duì)應(yīng)的鍵(W、S、A、D)后能夠上下左右的移動(dòng),主要利用了pygame.key.get_pressed()來獲取按鍵值。其中一個(gè)重要的方法blit,是用來繪制刷新畫面的。
import pygame
from pygame.locals import *
import os
size=width,height=(400,600)
# 加載圖片
aircraft=pygame.transform.scale(pygame.image.load(os.path.join("assets","aircraft.png")),(80,80))
bg=pygame.transform.scale(pygame.image.load(os.path.join("assets","bg.jpg")),(width,height))
runing=True
pygame.init()
screen=pygame.display.set_mode(size)
aircraft_local=aircraft.get_rect(x=100,y=200)
pygame.display.set_caption("firstPygame Window")
screen.fill((200,100,0))
while runing:
for event in pygame.event.get():
if event.type==QUIT or pygame.key.get_pressed()[pygame.K_ESCAPE]:
runing=False
presskey=pygame.key.get_pressed()
if presskey[pygame.K_a]:#left
aircraft_local.x=aircraft_local.x-1
if presskey[pygame.K_d]:#left
aircraft_local.x=aircraft_local.x+1
if presskey[pygame.K_s]:#left
aircraft_local.y=aircraft_local.y+1
if presskey[pygame.K_w]:#left
aircraft_local.y=aircraft_local.y-1
screen.blit(bg,(0,0))
screen.blit(aircraft,aircraft_local)
pygame.display.update()
如果你的發(fā)現(xiàn)上面的代碼在運(yùn)行的時(shí)候你按鍵后飛機(jī)沒有動(dòng),那有可能是你的中文輸入法處于打開狀態(tài),切換到英文輸入狀態(tài)或者索性關(guān)閉它就正常了。
運(yùn)行效果如下:
上面的代碼可能會(huì)存在很多的問題,這也正是我們后面需要繼續(xù)改進(jìn)的地方,這里只是讓飛機(jī)動(dòng)起來了。也許你會(huì)發(fā)現(xiàn),這是的飛機(jī)都起來速度太快,有些不受控制的快,而且圖片也需要再美化,等等一些列的問題,我們都留待后面來一一解決。
下一篇,我們繼續(xù)介紹,如何讓我們的飛機(jī)更靈活一些。
點(diǎn)擊這里閱讀第二節(jié)《新手使用Python開發(fā)游戲pygame入門很合適-02》文章來源:http://www.zghlxwxcb.cn/news/detail-823365.html
文章隨時(shí)可能更新,轉(zhuǎn)載請(qǐng)注明原出處:https://blog.csdn.net/haigear/article/details/130173836文章來源地址http://www.zghlxwxcb.cn/news/detail-823365.html
到了這里,關(guān)于很合適新手入門使用的Python游戲開發(fā)包pygame實(shí)例教程-01[開發(fā)環(huán)境配置與第一個(gè)界面]的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!