pygame
游戏的最小系统
import pygame
import random
#1.游戏初始化
pygame.init()
#创建游戏窗口
'''
set_mode(窗口大小)- 窗口大小是一个元祖。有两个元素:width,height
set_mode((宽度,高度))
宽度和高度的单位是像素
'''
window = pygame.display.set_mode((600,800))
#将窗口填充成指定的颜色
'''
fill(颜色)- fill((r,g,b))
计算机颜色- 计算机三原色 -红,绿,蓝(RGB)
颜色值就是由三个数字组成,分别代表红、绿、蓝 数字范围(0-255)
python中的颜色是一个元祖,元祖中有三个颜色,分别是 r,g,b
(255.255.255)-白色
(255.0.0)-红色
(0.0.0)-黑色
(0.255.0)-绿色
'''
window.fill((random.randint(0,255)))
#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
#4.检测事件
for event in pygame.event.get():
#区分不同事件,做出不同反应
pass
#判断关闭按钮点击事件是否发生
if event.type == pygame.QUIT:
exit()#窗口关闭
在窗口显示图片
import pygame
import random
pygame.init()
window = pygame.display.set_mode((1500,800))
window.fill((random.randint(0,255)))
#--========显示图片==========
#1.加载图片
'''
pygame.image.load(图片地址)- 加载指定路径下的图片,返回一个图片对象
'''
image_obj = pygame.image.load('files/27r58PICkj7_1024.jpg')
#2.渲染图片
'''
blit(渲染对象,位置)
渲染对象:图片对象(显示对象)
位置:元祖,(x坐标,y坐标)
'''
# window.blit(new_image2,(100,200))
#3.获取图片大小
'''
图片对象.get_size()- 获取图片大小,返回值是元祖(width,height)
'''
im_w,im_h = image_obj.get_size()
#4.图片缩放和旋转
'''
a.缩放
pygame.transform.scale(图片对象,大小)-将指定图片缩放之指定大小
'''
new_image = pygame.transform.scale(image_obj,(50,20))
# window.blit(new_image,(500,200))
'''
b.旋转缩放
pygame.transform.rotozoom(图片对象,旋转角度,缩放比例)
'''
new_image2 = pygame.transform.rotozoom(image_obj,180,0.5)
window.blit(new_image2,(100,200))
#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
#4.检测事件
for event in pygame.event.get():
#区分不同事件,做出不同反应
pass
#判断关闭按钮点击事件是否发生
if event.type == pygame.QUIT:
exit()#窗口关闭
显示文字
import pygame
import random
pygame.init()
window = pygame.display.set_mode((800,500))
window.fill((255,255,255))
#--========显示文字==========
#1.创建字体对象(选笔)
'''
a.系统字体
pygame.font.SysFont(字体名,字体大小,是否加粗=False,是否倾斜=False)-返回字体对象
b.自定义字体
'''
font = pygame.font.SysFont('Times',20,True,True)
font1 = pygame.font.Font('files/aa.ttf',20)
#2.根据字体常见文字对象
'''
render(文字内容,是否平滑,文字颜色)
'''
text = font.render('hello pygame',True,(255,0,0))
text1 = font1.render('李毅猪皮',True,(255,0,0))
#3.将文字渲染到窗口上
window.blit(text,(100,100))
window.blit(text1,(300,100))
#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
#4.检测事件
for event in pygame.event.get():
#区分不同事件,做出不同反应
pass
#判断关闭按钮点击事件是否发生
if event.type == pygame.QUIT:
exit()#窗口关闭
显示图形
import pygame
from color import Color
import math
# 游戏最小系统
pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill((255, 255, 255))
# ======显示图形=========
# 1.画直线
"""
line(画在哪儿, 线的颜色, 起点, 终点, 线宽=1)
"""
pygame.draw.line(window, Color.green, (0, 0), (100, 100), 10)
"""
lines(画在哪儿, 线的颜色, 是否闭合, 点列表, 线宽=1)
依次连接点列表中所有的点(是否闭合决定是否连接起点和终点)
"""
points = [(10, 10), (100, 70), (100, 170), (40, 230), (40, 320)]
pygame.draw.lines(window, Color.red, True, points, 5)
# 2.画圆
"""
circle(画在哪儿, 颜色, 圆心坐标, 半径, 线宽=0)
注意:线宽为0的时候画实心圆
"""
pygame.draw.circle(window, Color.yellow, (100, 100), 80, 3)
# 3.画弧线
"""
arc(画在哪儿,颜色,矩形(Rect),起始弧度,终止弧度,线宽=1)
矩形 - (x, y, width, height); x,y是矩形坐上角的坐标,width,height是矩形的宽高
"""
pygame.draw.arc(window, Color.blue, (150, 300, 50, 100), 0, math.pi, 10)
pygame.display.flip()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
事件和动画
import pygame
from color import Color
pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill((255, 255, 255))
# 在这儿写的代码是静态的(界面上的内容)
x = 100
y = 100
width = 100
height = 80
pygame.draw.rect(window, Color.green, (x, y, width, height))
pygame.display.flip()
while True:
y += 3
# width -= 2
window.fill(Color.white) # 覆盖原来的状态
pygame.draw.rect(window, Color.rand_color(), (x, y, width, height))
pygame.display.update() # 重新显示
# 有事件产生的时候才会进入for循环
for event in pygame.event.get():
# 1.type属性
"""
不同的type值对应不同类型的事件
QUIT - 关闭按钮被点击事件
a.鼠标相关事件 - 按的位置
MOUSEMOTION - 鼠标移动
MOUSEBUTTONDOWN - 鼠标按下
MOUSEBUTTOUP - 鼠标弹起
event.pos - 获取鼠标事件产生的位置
b.键盘事件 - 按的是哪个键
KEYDOWN - 按键按下
KEYUP - 按键弹起
event.key - 被按的键对应的字符的编码值
"""
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.MOUSEMOTION:
# print('鼠标移动', event.pos)
# pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
# pygame.display.flip()
pass
elif event.type == pygame.MOUSEBUTTONDOWN:
# 鼠标按下要做什么就写在这儿
print('鼠标按下', event.pos)
pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
pygame.display.flip()
elif event.type == pygame.MOUSEBUTTONUP:
print('鼠标弹起!', event.pos)
elif event.type == pygame.KEYDOWN:
print('按键按下')
print(event.key, chr(event.key))
elif event.type == pygame.KEYUP:
print('按键弹起')
print(event.key, chr(event.key))
网友评论