Pygame的简单使用方法
程序员文章站
2022-06-26 17:57:56
Pygame的简单使用方法首先安装 Pygamepip install Pygame随后开始进行以下操作,首先我们需要了解基本的步骤为先初始化构建一个窗口设置标题让其保持运行状态,直到用户手动关闭先检测事件,如果检测到关闭按钮那么就退出好,知道了这些就差不多可以开始了代码如下1,Pygame简单应用import pygame#初始化pygame.init()#构建一个游戏窗口pygame.display.set_mode((600,600)) #...
Pygame的简单使用方法
首先安装 Pygame
pip install Pygame
随后开始进行以下操作,首先我们需要了解基本的步骤为
-
先初始化
-
构建一个窗口
-
设置标题
-
让其保持运行状态,直到用户手动关闭
先检测事件,如果检测到关闭按钮那么就退出
好,知道了这些就差不多可以开始了
代码如下
1,Pygame简单应用
import pygame
#初始化
pygame.init()
#构建一个游戏窗口
pygame.display.set_mode((600,600)) #pygame.display 访问显示设备
#设置游戏标题
pygame.display.set_caption('南城的游戏')
#让游戏保持运行状态,直到用户手动关闭
while True:
#检测事件
for x in pygame.event.get(): #pygame.event 管理事件
#如果检测到关闭按钮,那么就退出
if x .type==256:
exit()
上面的代码是简单的运用pygame使窗口存在,接下来让其显示图片
2,显示图片
import pygame
#游戏初始化
pygame.init()
#游戏窗口
chuangkou = pygame.display.set_mode((600,600)) #构建600x600的游戏窗口
#给窗口设置背景颜色
chuangkou.fill((255,255,255))
#加载图片
t1 = pygame.image.load('图片存放路径')
#渲染图片
chuangkou.blit(t1,(0,0)) #pygame.image加载和存储图片
# #blit 是渲染的意思
#处理图片
#1,获取图片尺寸
w,h = t1.get_size()
# print(w,h)
#重新渲染
chuangkou.blit(t1,(w-500,h-200)) #blit 是渲染的意思
#2缩放
#1)scale (缩放目标是谁,目标大小)
# t2 = pygame.transform.scale(t1,(986,491))
# chuangkou.blit(t2,(0,0))
#2)rotozoom(目标,旋转角度,缩放比例)
t3 = pygame.transform.rotozoom(t1,360,0.5) #括号内180为旋转角度,0.8为缩放比例
chuangkou.blit(t3,(0,0))
#刷新显示页面
#pygame.display.flip() #第一次刷新
pygame.display.update()
while True:
#检测事件
for x in pygame.event.get(): #pygame.event 管理事件
#如果检测到关闭按钮,那么就退出
if x .type==256:
exit()
上面代码是让其运行之后并显示图片,接下来设置一下文字并且添加图片
3,文字的处理
import pygame
#游戏初始化
pygame.init()
#构建游戏窗口
chuangkou = pygame.display.set_mode((600,600)) #构建600x600的游戏窗口
#添加图片
t1 = pygame.image.load('图片的路径') #pygame.image加载和存储图片
pygame.display.set_caption('显示文字')
#给窗口设置背景颜色
chuangkou.fill((255,255,255))
#======刷新前显示文字========
#创建字体对象
font = pygame.font.Font('字体路径',30) #pygame.font使用字体 Font()选择字体样式
#创建文字
text = font.render('奔行世界',True,(255,0,0),(255,255,0))
#渲染图片
t2 = pygame.transform.rotozoom(t1,360,0.5) #括号内180为旋转角度,0.8为缩放比例
chuangkou.blit(t2,(0,0)) #(t2,(0,0))里面的(0,0)表示位置相当于(x,y)
#把文字渲染到窗口上
# chuangkou.blit(text,(230,400))
#===处理文字===
#1,获取最终显示文字尺寸
w,h = text.get_size()
# print(w,h)
#重新渲染
# chuangkou.blit(text(400-w,500-h))
#2缩放
text1 = pygame.transform.rotozoom(text,180,0.8) #括号内180为旋转角度,0.8为缩放比例
chuangkou.blit(text1,(230,400)) #(text1,(0,0))里面的(0,0)表示位置相当于(x,y)
#刷新显示
pygame.display.flip()
while True:
#检测事件
for x in pygame.event.get(): #pygame.event 管理事件
#如果检测到关闭按钮,那么就退出
if x .type==256:
exit()
接下来进行图形的处理,试着画一下直线,椭圆,圆形,矩形等
4,图形的处理
import pygame
from math import pi
#初始化
pygame.init()
#构建窗口
chuangkou = pygame.display.set_mode((600,600))
pygame.display.set_caption('显示文件')
#pygame.display访问显示设备 set_caption('')里面的文字是你框框上面的字
#给窗口设置背景颜色
chuangkou.fill((255,255,255))
#===开始画直线===
#1,画直线 line(画在哪里,线的颜色,线的起点,线的终点,线的宽度=1)线宽默认1
pygame.draw.line(chuangkou,(0,255,0),(10,20),(200,30),width=3)
#2,画折线 lines(画在哪里,线的颜色,是否闭合,多个点,线的宽度=1)线宽默认1
points = [(20,20),(100,150),(180,260),(300,100)]
pygame.draw.lines(chuangkou,(0,255,0),True,points,3)
#3,画圆 circle(线画在哪,线的颜色,坐标,半径,线宽)宽度默认为1
pygame.draw.circle(chuangkou,(0,0,255),(200,300),50,5)
#4,矩形 rect(线画在哪,线的颜色,矩形范围,线宽)宽度默认为1
pygame.draw.rect(chuangkou,(130,45,255),(35,45,85,125),5) #范围的意思就是定4个点让其生成一个形状
#5,椭圆 ellipsis(线画在哪,线的颜色,椭圆范围,线宽)宽度默认为1 #范围的意思就是定4个点让其生成一个形状
pygame.draw.ellipse(chuangkou,(198,155,189),(30,80,200,50),5)
#6,画圆 arc(线画在哪,线的颜色,范围,起始弧度,结束弧度,线宽)宽度默认为1
pygame.draw.arc(chuangkou,(45,88,66),(40,90,130,230),0,pi,5) #范围的意思就是定4个点让其生成一个形状
#刷新显示
pygame.display.flip()
while True:
#检测事件
for x in pygame.event.get(): #pygame.event 管理事件
#如果检测到关闭按钮,那么就退出
if x .type==256:
exit()
代码有点多,而且有点相似,慢慢看,不着急
最后试着做一下动态的动画效果
5,动画效果
import pygame
WIN_WIDTH = 800
WIN_HEIGHT = 800
#初始化
pygame.init()
#构建游戏窗口
chuangkou = pygame.display.set_mode((WIN_WIDTH,WIN_HEIGHT))
#设置游戏标题
pygame.display.set_caption('动画原理')
# 填充背景
chuangkou.fill((255,255,255))
pygame.display.flip()#第一次刷新,显示修改
#显示静态 画圆
#pygame.draw.circle(chuangkou,(0,0,255),(200,300),50,5)
image = pygame.image.load('图片存放路径')
pygame.display.update() #再次刷新
y = 50
r = 5
d = 0 #初始化旋转的角度
num =1
#用循环移动球
while True:
num += 1
# if num % 10 == 0:
# pygame.draw.circle(window, (0,255, 0), (100, y), r)
# y += 2
# r += 1
# print(y,r)
# pygame.draw.circle(window, (255, 0, 0), (100, y), r)
# pygame.display.update()
if num % 10 == 0:
d+=1
newimage = pygame.transform.rotozoom(image, d, 0.2)
chuangkou.blit(newimage, (0, 0))
pygame.display.update()
for x in pygame.event.get(): #pygame.event 管理事件
#如果检测到关闭按钮,那么就退出
if x .type==256:
exit()
如果看注释还是有些代码不知到什么意思,可以参考这篇Pygame的基本代码
注释掉的地方是用图形的方式进行动画效果,没有注释掉的是用图片进行动画效果
如果有不对的地方麻烦请各位大佬指出!!
本文地址:https://blog.csdn.net/nancheng114/article/details/110449128