领取MOLI红包
你的位置:JAM中文网 > Bit.Store中文网 > >Python中pygame游戏模块的用法详解
热点资讯
Bit.Store中文网

Python中pygame游戏模块的用法详解

发布日期:2025-01-03 17:23    点击次数:191

Python中的pygame游戏模块的使用 Pygame 是一组用来开发游戏软件的 Python 程序模块,Pygame 在 SDL(Simple DirectMedia Layer) 的基础上开发而成。它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块,擅长开发 2D 游戏,Python 也提供了开发 3D 游戏的软件包,比如 Pyglet、Panda3D、PyOgre 等。Pygame 是一个高可移植性的模块可以支持多个操作系统。用它来开发小游戏非常适合。官网https://www.pygame.org/news pygame模块的安装 若使用pygame模块(python的2D游戏开发库),这是第三方(扩展)模块,若未预先装,需要在CMD中,使用 pip install pygame 先装入,可能需要花点时间。 查看是否电脑上是否有pygame,在CMD中,使用pip list命令,参见下图 若没有 pygame,需要在CMD中,使用 pip install pygame 命令安装,参见下图: 验证是否成功安装 法一、在CMD中,使用python -m pygame.examples.aliens命令验证,参见下图: 法二、进入Python的交互界面,输入以下命令验证是否成功安装,参见下图: 不报错,则说明安装成功。 pygame快速入门 Pygame的坐标原点(0,0)点位于左上角,X轴自左向右,Y轴自上向下,单位为像素,参见下图: 在游戏中,所有可见的元素都是以矩形区域来描述位置的; pygame专门提供了一个类Rect 用于 描述矩形区域,格式: Rect(x,y,width,height) Pygame的Rect对象,表示的区域必须位于一个 Surface 对象之上,比如游戏的主窗口(screen)。上述方法由四个关键参数值构成,分别是 left、top、width、height pygame. Rect(left, top, width, height) display 用于创建、管理游戏窗口 pygame.display.set_mode()    #初始化游戏显示窗口 pygame.dispaly.update()      #刷新屏幕内容显示,稍后使用 为了做到游戏程序启动后,不会立即退出,通常会在游戏程序中使用一个游戏循环。 pygame开发游戏的大体框架结构如下: 示例代码如下: 运行之,显示如下: Pygame设置窗口图标和设置窗口背景图片 #设置窗口图标,下面两句icon = pygame.image.load("./images/xyicon.png") # 加载图像数据pygame.display.set_icon(icon)  #设置图标   #设置窗口背景图片,下面三两句bg = pygame.image.load("./images/background.png") # 加载图像数据screen.blit(bg,(0,0)) #绘制图像 blit(图像,位置);pygame.display.update() #更新屏幕显示 在前面示例代码,设置窗口标题之后,添加设置窗口图标和设置窗口背景图片: 运行之,如下图所示: Pygame播放音频 有两个方法: ☆播放特效声音: pygame.mixer.Sound(filename) 该方法返回一个Sound对象,调用它的.play( )方法,即可播放较短的音频文件(如游戏中的枪炮声等); ☆播放背景音乐: pygame.mixer.music.load(filename) 该方法用来加载背景音乐,之后调用pygame.mixer.music.play( )方法就可以播放背景音乐(在同一个时刻只允许加载一个背景音乐) # 加载并播放一个特效音频文件) sound = pygame.mixer.Sound('./music/alter.mp3') sound.play() # 加载背景音乐文件 pygame.mixer.music.load('./music/bgmusic.mp3') # 播放背景音乐,第一个参数为播放的次数(-1表示无限循环),第二个参数是设置播放的起点(单位为秒) pygame.mixer.music.play(-1, 0.0) 可以在适当的地方,作为测试在背景图片之后插入播放音频代码段,当然音频文件需要准备好。 Pygame绘制图形 Pygame绘制图形的常用的方法: ☆ pygame.draw.line(Surface, color, start_pos, end_pos, width)此方法用于绘制一条线段 ☆ pygame.draw.aaline(Surface, color, start_pos, end_pos, blend)此方法用于绘制一条抗锯齿的线 ☆ pygame.draw.lines(Surface, color, closed, pointlist, width)此方法用于绘制一条折线 ☆ pygame.draw.rect(Surface, color, Rect)此方法用于绘制一个矩形 ☆ pygame.draw.rect(Surface, color, Rect, width)此方法用于绘制一个矩形框 ☆ pygame.draw.ellipse(Surface, color, Rect)此方法用于绘制一个椭圆 ☆ pygame.draw.ellipse(Surface, color, Rect, width)此方法用于绘制一个椭圆框 ☆ pygame.draw.polygon(Surface, color, pointlist, width)此方法用于绘制一个多边形 ☆ pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width)此方法用于绘制一条弧线 ☆ pygame.draw.circle(Surface, color, Rect, radius)此方法用于绘制一个圆 示例代码 运行之,显示如下: Pygame绘制文字 Pygame不仅可以在屏幕上绘制形状,还可以将文本绘制到屏幕上。Pygame 提供了一些非常简单易用的函数,可以创建字体和文本。字体(font)是字体类型的一种描述,表示按照统一风格绘制的一整套的字母、数字、符号和字符,例如 宋体 和 Times New Roman 都是字体。 ☆font.SysFont()函数来创建一个 Font 对象,这个函数有两个参数,第 1 个参数是字体名称,第 2 个参数是字体大小(以像素点为单位) ☆font.render()函数的参数:第 1 个参数是要绘制的文本的字符串;第 2 个参数指定是否想要抗锯齿的一个 Boolean 值,如果是 True,文本看上去更加平滑一些;第 3 个参数是用来渲染文本的颜色,这个例子中使用的是白色。 ☆blit() 函数,将像素从一个 Surface 复制到另一个 Surface 之上。常用两个参数:第一个参数是某矩形图像(Surface实例),第二个参数用于指定绘制的位置。 示例代码 运行之,显示如下: Pygame实现动画 Pygame实现动画 由于人类眼睛的特殊生理结构,当所看画面的帧率高于24的时候,就会认为是连贯的。 帧率(Frame rate)是用于测量显示帧数的量度,所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)。 在原有坐标系的基础上添加偏移量,再重新绘制,依次一张一张的循环绘制下去,就会得到我们想要的物体移动的效果。 Pygame实现动画主要用到的方法: ☆ pygame.image.load(filename) 加载一张图片 ☆pygame.Surface.blit(source, dest, area=None, special_flags = 0) 将图片绘制到屏幕相应坐标上(后面两个参数默认,可以不传) ☆pygame.time.Clock() 获得pygame的时钟 ☆pygame.time.Clock.tick(FPS) 设置pygame时钟的间隔时间 示例代码如下: Pygame事件简介 pygame事件可以处理游戏中的各种事情,事件是一个概念,比如点击鼠标左键,按下一个键盘的按键,关闭窗口等等都是一个事件,pygame提供了一个函数来获取游戏的事件,并把他们存放在一个队列中,程序通过读取整个事件队列,来获取当前发生的时间,并作出响应。 Pygame常用的事件如下表: 事件产生途径参数QUIT用户按下关闭按钮noneACTIVEEVENTPygame被激活或者隐藏gain, stateKEYDOWN键盘被按下unicode, key, modKEYUP键盘被放开key, modMOUSEMOTION鼠标移动pos, rel, buttonsMOUSEBUTTONDOWN鼠标按下pos, buttonMOUSEBUTTONUP鼠标放开pos, buttonVIDEORESIZEPygame窗口缩放size, w, h 示例代码: 效果图如下: 综合例子 下面给出综合例子 1、画一个小房子,房前有树,树顶上有太阳 先给出效果图: 源码如下: 2、用方向键控制小猫移动示例 需要两个素材文件:小猫图片 cat.png 和背景图片bg1.jpg,为简便将它们 和源码程序文件,放在同一文件夹中。 源码如下: 3、拼图游戏 两种实现:点击交换式和拖动交换式 ★拼图游戏之点击交换式 加载一张图片分块打乱,用户用鼠标单击两块图片则两块图片交换位置,拼图完成后提示成功。确保图像文件存在并与代码中指定的路径相匹配——我这里图片名是player.png,和源码文件放在同一文件夹中。 源码如下:  效果示意图如下: ★拼图游戏之拖动交换式 下面给出拼图游戏的另一种实现 功能:窗体上有两个按钮,单击"open"按钮加载的游戏图片,单击"start"按钮将加载的游戏图片分割成9小块打乱排列。游戏规则:将一个小块拖动到另一小块时,两小块图片将交换位置,当恢复原样时,提示"success!"。 源码如下: 在此就不给出效果示意图了,你可以试试。 总结 以上就是Python中pygame游戏模块的用法详解的详细内容,更多关于Python pygame游戏模块的资料请关注脚本之家其它相关文章!

上一篇:没有了
下一篇:星环科技国产化替代再出击,技压群雄