门户网站建设工作总结,嘉兴微信网站建设,郑州制作网站推荐,珠海网站建设杰作科技学习 Python 之 Pygame 开发坦克大战#xff08;一#xff09;Pygame什么是Pygame?初识pygame1. 使用pygame创建窗口2. 设置窗口背景颜色3. 获取窗口中的事件4. 在窗口中展示图片(1). pygame中的直角坐标系(2). 展示图片(3). 给部分区域设置颜色5. 在窗口中显示文字6. 播放音…
学习 Python 之 Pygame 开发坦克大战一Pygame什么是Pygame?初识pygame1. 使用pygame创建窗口2. 设置窗口背景颜色3. 获取窗口中的事件4. 在窗口中展示图片(1). pygame中的直角坐标系(2). 展示图片(3). 给部分区域设置颜色5. 在窗口中显示文字6. 播放音乐Pygame
什么是Pygame?
Pygame是一组Python用于编写视频游戏的模块。Pygame在优秀的SDL库上添加了功能。可以让我们使用python语言创建功能齐全的游戏和多媒体程序并且Pygame是高度可移植的几乎可以在所有平台和操作系统上运行。
初识pygame
官方文档
函数名称作用返回值pygame.display.init()初始化展示模块Nonepygame.display.set_mode(size (0, 0))初始化窗口窗口就是一个Surface对象Surfacepygame.display.set_caption(title, icontitle None)设置窗口标题和图标Nonepygame.Surface.fill(color, rect None)用纯色填充表面Surface对象Nonepygame.Color(b, g, r)创建用于颜色表示的Pygame对象Colorpygame.display.update()更新屏幕Nonepygame.event.get()获取事件队列Eventlistpygame.image.load(filename)从文件加载图片图片跟窗口一样也是Surface对象Surfacepygame.Surface.get_rect()获取Surface对象的rect属性Rectpygame.Surface.blit(source, dest, area None)在一个Surface对象上显示另一个Surface对象Rectpygame.font.init()初始化字体模块Nonepygame.font.SysFont(name, size, bold False, italic False)从系统字体创建字体对象Fontpygame.font.render(text, antialias, color, background None)创建一个带有指定字体的Surface对象Surfacepygame.mixer.init()初始化混合器模块Nonepygame.mixer.Sound(filename)从文件创建声音对象Soundpygame.mixer.Sound.play(loops 0, maxtime 0)播放音乐loops参数控制播放次数播放次数为loops 1次。默认为0表示声音不会重复只播放一次。如果loops为-1声音将无限循环Channelpygame.mixer.Sound.stop()声音停止播放Nonepygame.mixer.Sound.set_volume(value)设置音量None
1. 使用pygame创建窗口
import pygame# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)创建结果
2. 设置窗口背景颜色
# 设置窗口背景颜色
blue 255
green 0
red 255
BACKGROUND_COLOR pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)# 更新窗口
pygame.display.update()完整代码
import pygame# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)# 设置窗口背景颜色
blue 255
green 0
red 255
BACKGROUND_COLOR pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)# 更新窗口
pygame.display.update()不要忘记更新窗口否则不会显示颜色的
3. 获取窗口中的事件
def getWindowEvent():for event in pygame.event.get():# 点击窗口右上角的关闭触发的事件if event.type pygame.QUIT:sys.exit()# 鼠标按下事件elif event.type pygame.MOUSEBUTTONDOWN:x, y event.posprint(鼠标按下, 鼠标位置({x}, {y}).format(x x, y y))# 鼠标抬起事件elif event.type pygame.MOUSEBUTTONUP:print(鼠标抬起)# 键盘按键按下事件elif event.type pygame.KEYDOWN:print(键盘按键按下)# 具体键盘事件触发if event.key pygame.K_j:print(按下键盘 j 键)# 键盘按键抬起事件elif event.type pygame.KEYUP:print(键盘按键抬起)完整代码
import pygame
import sysdef getWindowEvent():for event in pygame.event.get():# 点击窗口右上角的关闭触发的事件if event.type pygame.QUIT:sys.exit()# 鼠标按下事件elif event.type pygame.MOUSEBUTTONDOWN:x, y event.posprint(鼠标按下, 鼠标位置({x}, {y}).format(x x, y y))# 鼠标抬起事件elif event.type pygame.MOUSEBUTTONUP:print(鼠标抬起)# 键盘按键按下事件elif event.type pygame.KEYDOWN:print(键盘按键按下)# 具体键盘事件触发if event.key pygame.K_j:print(按下键盘 j 键)# 键盘按键抬起事件elif event.type pygame.KEYUP:print(键盘按键抬起)# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)# 设置窗口背景颜色
blue 255
green 0
red 255
BACKGROUND_COLOR pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)while 1:# 获取键盘事件getWindowEvent()# 更新窗口pygame.display.update()
运行后按下鼠标左键键盘j键键盘s键 系统的事件都具有一组成员属性。下面是事件类型及其特定属性的列表图图片来源链接
4. 在窗口中展示图片
(1). pygame中的直角坐标系 (2). 展示图片
import pygame# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)# 设置图片路径
path ./picture.jpg
# 加载图片
image pygame.image.load(path)
# 获取直角坐标
rect image.get_rect()
# 设置图片的位置在(0,0)处加载图片
rect.left 0
rect.top 0
# 在窗口显示
window.blit(image, rect)# 更新窗口
pygame.display.update()运行结果图片太大了超过了窗口的尺寸
(3). 给部分区域设置颜色
import pygame# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)# 设置窗口背景颜色
blue 255
green 0
red 255
BACKGROUND_COLOR pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)# 给部分区域设置颜色
rect pygame.Rect(400, 400, 50, 50)
REGION_COLOR pygame.Color(50, 50, 150)
window.fill(REGION_COLOR, rect)# 更新窗口
pygame.display.update() 5. 在窗口中显示文字
import pygame# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH 1100
SCREEN_HEIGHT 600
size (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption(Tank Battle)# 设置文字内容
text Hello Pygame# 初始化字体
pygame.font.init()
# 设置文字字体和大小
fontSize 16
font pygame.font.SysFont(georgia, fontSize)
# 加载文字并设置颜色
fontColor pygame.Color(255, 255, 255)
fontObject font.render(text, True, fontColor)
# 设置展示位置
position (50, 50)
# 展示文字
window.blit(fontObject, position)# 更新窗口
pygame.display.update()运行结果
6. 播放音乐
import pygame# 初始化混合器模块
pygame.mixer.init()
# 加载音乐
sound pygame.mixer.Sound(./star.wav)
# 播放音乐
sound.play()