pygame制作飞机大战2——pygame基础知识
程序员文章站
2024-01-17 21:57:52
...
如果使用过scratch的话,相信对于pygame制作游戏的内在逻辑就很容易理解了。
pygame是一个python3自带的库,能够帮我们非常简便的制作各类2D游戏或者3D(嗯哼),它包含了游戏化涉及到的基本操作,例如:键盘控制、鼠标控制、窗口设置、图像移动、帧......
而要制作一个简单的游戏,就需要知道pygame实现一个游戏的最简程序,python的最简程序包括以下部分:
(1)导入函数
(2)参数初始化
- 背景图
- 被控制的控件图
(3)加载并转化图像
(4)窗口参数设定
(5)初始化pygame
(6)游戏主循环
下面分别说下几个部分:
(1)导入函数
import pygame
from pygame.locals import *
from sys import exit
- 导入pygame模块
- pygame.local,python中常用的常量
- exit,退出python程序
(2)参数初始化
background_image_filename = 'sea.jpg'
mouse_image_filename = 'nemo.png'
初始化需要用到的背景图片、操作的控件图片
(3)加载并转化图像/(4)创建窗口及标题
#加载并转换图像
background = pygame.image.load(background_image_filename)
mouse_cursor = pygame.image.load(mouse_image_filename)
#创建窗口及标题
screen = pygame.display.set_mode((500, 375), 0, 32)
pygame.display.set_caption("hello world")
和第五步不冲突,建好窗口,加载好后续需要的图片资源,功能参数具体设定参考文末附页
(5)初始化pygame
pygame.init()
为硬件使用作准备
(6)游戏主循环
#游戏主循环
while True:
# 检测退出事件,判断是否执行退出
for event in pygame.event.get():
if event.type == QUIT:
exit()
#将背景画上去
screen.blit(background, (0, 0))
#获取按键状态
press = pygame.key.get_pressed()
if press[K_LEFT] == True:
x1 = x1 - 2
elif press[K_RIGHT] == True:
x1 = x1 + 2
elif press[K_UP] == True:
y1 = y1 - 2
elif press[K_DOWN] == True:
y1 = y1 + 2
# 获取鼠标位置
#x, y = pygame.mouse.get_pos()
#计算光标在左上角的位置
#x -= mouse_cursor.get_width() / 2
#y -= mouse_cursor.get_height() / 2
#将光标画上去
screen.blit(mouse_cursor, (x1, y1))
# 在新的位置上画图
pygame.display.update()
包括:
- 检测退出事件:例如:当关闭窗口时,event.type关键字变为QUIT,此时退出程序
- 将加载好的背景图画到窗口中去
- 获取按键状态,并根据每按一次对应的键,控件(nemo)移动两步(PS:这里也可以改成鼠标控制,替换成下面的注释内容即可)
- 将更新后的光标位置画到指定的坐标(以此实现不断更新控件位置)
- 承接上一步,将绘制的东西画到屏幕(窗口)上
完整代码:
#参数初始化
background_image_filename = 'sea.jpg'
mouse_image_filename = 'nemo.png'
x1 = 0
y1 = 0
#导入函数
import pygame
from pygame.locals import *
from sys import exit
#加载并转换图像
background = pygame.image.load(background_image_filename)
mouse_cursor = pygame.image.load(mouse_image_filename)
#创建窗口及标题
screen = pygame.display.set_mode((500, 375), 0, 32)
pygame.display.set_caption("hello world")
#初始化pygame,为硬件使用作准备
pygame.init()
#游戏主循环
while True:
# 检测退出事件,判断是否执行退出
for event in pygame.event.get():
if event.type == QUIT:
exit()
#将背景画上去
screen.blit(background, (0, 0))
#获取按键状态
press = pygame.key.get_pressed()
if press[K_LEFT] == True:
x1 = x1 - 2
elif press[K_RIGHT] == True:
x1 = x1 + 2
elif press[K_UP] == True:
y1 = y1 - 2
elif press[K_DOWN] == True:
y1 = y1 + 2
# 获取鼠标位置
#x, y = pygame.mouse.get_pos()
#计算光标在左上角的位置
#x -= mouse_cursor.get_width() / 2
#y -= mouse_cursor.get_height() / 2
#将光标画上去
screen.blit(mouse_cursor, (x1, y1))
# 在新的位置上画图
pygame.display.update()
附页(相关功能):
pygame.display:https://blog.csdn.net/qq_41556318/article/details/85952413
pygame.key:https://blog.csdn.net/qq_41556318/article/details/86304649
pygame.mouse:https://blog.csdn.net/qq_41556318/article/details/86304810
参考网站:
pygame官网:https://www.pygame.org/docs/
上一篇: php生成GUID
下一篇: 如何使用pygame制作游戏