一、創建窗口
import pygame #導入模塊
if __name__ == '__main__':
# 1.初始化pygame
pygame.init()
# 2.創建窗口
# set_mode((寬,高)) 單位像素
screen=pygame.display.set_mode((600,400))
# 3.游戲循環
while True:
#檢測事件
for event in pygame.event.get():
#檢測窗口上的關閉按鈕是否被點擊
if event.type==pygame.QUIT:
#退出游戲
print('關閉按鈕被點擊')
exit()
創建的窗口如下:
image.png
窗口中顯示文字
import pygame
from pygame import font
if __name__ == '__main__':
pygame.init()
screen=pygame.display.set_mode((600,400))
#設置窗口的背景顏色
screen.fill((255,255,0))
#1.創建字體對象(找一只筆)
"""
SysFont(name, size, bold=0, italic=0, constructor=None)
name->字體名
size->字體大小
bold->加粗 (有默認值,不用傳參)
italic->傾斜 (有默認值,不用傳參)
"""
# font=pygame.font.SysFont('Script',50)
"""
#創建自定義字體
Font(字體文件路徑,字體大小)
"""
font=pygame.font.Font('./font/bbb.ttf',50)
#2.根據字體去創建顯示對象(找內容)
"""
render渲染
render(self, text, antialias, color, background=None)
self
text->要顯示的文字內容(str)
antialias->是否平滑(True,False)
color->計算機三原色(紅R、綠G、藍B)RGB顏色,值得范圍0-255
(255,255,255)->白色
(0,0,0)->黑色
(0,255,0)->綠色
(255,0,0)->紅色
(x,x,x)->灰色
"""
surface=font.render('你好,hello pygame',True,(0,255,0))
print(surface,type(surface))
#3.將內容添加到窗口上(畫到紙上)
"""
blit(需要顯示的對象,顯示位置)
需要顯示的對象->Surface類型的數據
顯示位置->坐標(x,y)
"""
screen.blit(surface,(100,100))
#4.將窗口上的內容展示出來(將畫有文字的紙貼出來)
pygame.display.flip()
#游戲循環
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
三、窗口中顯示圖片
import pygame
if __name__ == '__main__':
pygame.init()
screen=pygame.display.set_mode((600,400))
screen.fill((255,255,255))
#1.獲取圖片對象
image=pygame.image.load('./image./1.jpg')
"""
(1)獲取圖片大小
get_size()
"""
image_size=image.get_size()
print(image_size)
"""
(2)圖片的縮放
transform(形變):形變包含縮放、旋轉和平移
scale(縮放對象,新的大小)--->返回一個縮放后的新對象(縮放到指定大小)
"""
image=pygame.transform.scale(image,(600,400))
"""
旋轉
rotate(旋轉對象,旋轉角度)
"""
image=pygame.transform.rotate(image,180)
"""
旋轉、縮放(按比例)
def rotozoom(旋轉對象,旋轉的角度,縮放比例)
"""
image=pygame.transform.rotozoom(image,270,0.5)
#2.將圖片對象渲染到窗口上
screen.blit(image,(0,0))
#3.展示在屏幕上
pygame.display.flip()
#循環游戲:
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
運行效果:
image.png
四、顯示圖形
import pygame
if __name__ == '__main__':
pygame.init()
screen=pygame.display.set_mode((600,400))
screen.fill((255,255,255))
"""
1.畫直線
line(外觀對象,線顏色,起點,終點,線條寬度)
Surface->畫在哪里
color->線的顏色
start_pos->起點
end_pos->終點
width->線的寬度
lines(外觀對象,線條顏色,是否閉合,點的列表,width=1)
"""
pygame.draw.line(screen,(0,255,0),(50,50),(100,100),5)
pygame.draw.lines(screen,(255,0,0),True,[(10,10),(20,50)])
"""
2.畫矩形
rect(位置,顏色,(起點坐標,寬,高),線寬為零即填充)
"""
pygame.draw.rect(screen,(0,255,0),(0,0,200,200),0)
"""
3.畫曲線
arc(圖形對象,顏色,范圍,起始角度,終止角度,線寬)
Rect->(x,y,width,height)矩形
"""
from math import pi
pygame.draw.arc(screen,(0,0,0),(200,200,100,100),pi,2*pi)
"""
4.畫圓
circle(位置,顏色,圓心位置,半徑,width=0)
"""
import random
pygame.draw.circle(screen,\
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),\
(400, 200), 100)
"""
5.畫橢圓
ellipse(Surface, color, Rect, width=0)
"""
pygame.draw.ellipse(screen,(0,100,0),(100,300,200,80),0)
#將內容展示在屏幕上
pygame.display.flip()
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
運行效果:
image.png
五、動畫原理
import pygame
if __name__ == '__main__':
pygame.init()
screen=pygame.display.set_mode((600,400))
screen.fill((255,255,255))
x=0
y=0
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
x+=1
y+=1
screen.fill((255,255,255))
pygame.draw.circle(screen,(255,255,0),(x,y),80)
pygame.display.flip()