淺談Python Pygame圖像的基本使用
笛卡爾坐標(biāo)系
游戲離不開坐標(biāo),我們來康康pygame中坐標(biāo)是如何設(shè)立的吧~

窗口左上角坐標(biāo)(0,0),橫軸正向向右,縱軸正向向下
實(shí)際效果
碰到邊框就返回(其實(shí)是小球碰撞實(shí)驗(yàn),我不愛用正經(jīng)的小球,所以…)

代碼
import pygame,sys
pygame.init()
size = width, height = 600, 400
speed = [1,1]
BLACK = 0, 0, 0
s = pygame.display.set_mode(size)
pygame.display.set_caption("hi 滑稽")
ball = pygame.image.load("img/361.png")
ballrect = ball.get_rect()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
ballrect = ballrect.move(speed[0], speed[1])
if ballrect.left < 0 or ballrect.right > width:
speed[0] = - speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = - speed[1]
s.fill(BLACK)
s.blit(ball, ballrect)
pygame.display.update()
代碼說明
碰撞原理

方法說明
| 方法 | 說明 |
|---|---|
| pygame.image.load(filename) | 將filename路徑下的圖像載入游戲,支持JPG、PNG、GIF(非動(dòng)畫)等13種常用圖片格式 |
| get_rect() | 返回一個(gè)覆蓋圖像的矩形Rect對象 |
| move(x,y) | 矩形移動(dòng)一個(gè)偏移量(x,y),即在橫軸方向移動(dòng)x像素,縱軸方向移動(dòng)y像素,xy為整數(shù) |
| fill(color) | 顯示窗口背景填充為color顏色,采用RGB色彩體系 |
| blit(src, dest) | 將一個(gè)圖像繪制在另一個(gè)圖像上,即將src繪制到dest位置上。 |
載入圖片
pygame.init()
size = width, height = 600, 400 #設(shè)置了寬高,也可以在pygame.display.set_mode()設(shè)置
speed = [1,1] #速度
BLACK = 0, 0, 0 #顏色黑色
s = pygame.display.set_mode(size)
pygame.display.set_caption("hi 滑稽")
ball = pygame.image.load("img/361.png") #注意圖片路徑
ballrect = ball.get_rect()
surface對象和Rect對象

Rect對象屬性
Rect對象有一些重要屬性,例如:top,bottom,left,right表示上下左右width,height表示寬度、高度。

移動(dòng)
ballrect = ballrect.move(speed[0], speed[1]) # x1
if ballrect.left < 0 or ballrect.right > width: # x2
speed[0] = - speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = - speed[1]
x1:矩形移動(dòng)一個(gè)偏移量(x,y),即在橫軸方向移動(dòng)x像素,縱軸方向移動(dòng)y像素,xy為整數(shù)x2:遇到左右兩側(cè),橫向速度取反;遇到上下兩側(cè),縱向速度取反。
到此這篇關(guān)于淺談Python Pygame圖像的基本使用的文章就介紹到這了,更多相關(guān)Pygame圖像的基本使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 高級教程之線程進(jìn)程和協(xié)程的代碼解析
這篇文章主要介紹了Python 高級教程之線程進(jìn)程和協(xié)程的代碼解析,包括使用線程模塊的簡單示例,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
用Python3通過PyCharm上傳代碼到Git服務(wù)器的詳細(xì)過程
上傳代碼到服務(wù)器,如果不知道的情況下還用傳統(tǒng)的方式上傳很麻煩,現(xiàn)在很多IDE都提供上傳代碼的功能,例如:VSCode,PyCharm等等,本文講解的是PyCharm,需要的朋友可以參考下2024-03-03
django template 模板渲染的實(shí)現(xiàn)
Django 的模板系統(tǒng)旨在使設(shè)計(jì)人員能夠編寫 HTML,同時(shí)以一種安全和靈活的方式動(dòng)態(tài)顯示數(shù)據(jù),本文主要介紹了django template模板渲染的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01
Python virtualenv虛擬環(huán)境實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python virtualenv虛擬環(huán)境實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
pytest利用request?fixture實(shí)現(xiàn)個(gè)性化測試需求詳解
這篇文章主要為大家詳細(xì)介紹了pytest如何利用request?fixture實(shí)現(xiàn)個(gè)性化測試需求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09
Python3簡單爬蟲抓取網(wǎng)頁圖片代碼實(shí)例
這篇文章主要介紹了Python3簡單爬蟲抓取網(wǎng)頁圖片代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
人工智能深度學(xué)習(xí)OpenAI?baselines的使用方法
這篇文章主要為大家介紹了人工智能深度學(xué)習(xí)OpenAI?baselines的使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

