内部网站如何做,北京公关公司,做网站业务好干吗,免费无代码开发平台Pygame有很多模块#xff0c;每个模块又有很多方法#xff0c;在此不能够逐一讲解#xff0c;所以#xff0c;我们通过一个实例来学习Pygame#xff0c;然后再分解代码#xff0c;讲解代码中的模块。例#xff1a;制作一个跳跃的小球游戏。创建一个游戏窗口#xff0c;…Pygame有很多模块每个模块又有很多方法在此不能够逐一讲解所以我们通过一个实例来学习Pygame然后再分解代码讲解代码中的模块。例制作一个跳跃的小球游戏。创建一个游戏窗口然后在窗口内创建一个小球。以一定的速度移动小球当小球wordpress碰到游戏窗口的边缘时小球弹回继续移动。可以按照如下步骤实现该功能。(1)创建一个游戏窗口宽和高设置为640*480。代码如下import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口上述代码中首先导入pygame模块然后调用init()方法初始化pygame模块。接下来设置h3cne窗口的宽和高最后使用display模块显示窗体。display模块的常用方法如下表selenium所示。方法名功能pygame.dispaly.init初始化display模块pygame.dispaly.quit结束display模块pygame.dispaly.get_init如果display模块已经被初始化则返回Truepygame.dispaly.set_mode初始化一个准备显示的界面pygame.dispaly.get_surface获取当前的Surface对象pygame.dispaly.flip更新整的待显示的Surface对象到屏幕上pygame.dispaly.update更新部分内容显示到屏幕上如果没有参数则与flip功能相同(2)运行上述代码会出现一个一闪而过的黑色窗口这是因为程序执行完成后会自动关闭。如果让窗口一直显示需要使用while True让程序一直执行此外还需要设置webdriver关闭按钮。具体代码如下#-*-coding:utf-8-*-import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口#执行死循环确保窗口一直显示while True:#检查事件for event in pygame.event.get():if event.type pygame.QUIT: #如果单击关闭窗口则退出sys.exit()pygame.quit() #退出pygame上述代码中添加了轮询事件检测。pygame.event.get()能够获取事件队列使用for...in遍历事件然后根据type属性判断事件类型。这里的事件处理方式与GUI类似如event.tpye等于pygame.QUIT表示检测到关闭pygame窗口事件pygame.KEYDOWN表示键盘按下事件pygame.MOUSEBUTTONDOWN表示鼠标按下事件等。(3)在窗口中添加小球。我们准备好一张ball.png图片然后加载该图片。最后将图片显示DedeCMS在窗口中具体代码如下#-*-coding:utf-8-*-import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口color (0,0,0) #设置颜色ball pygame.image.load(ball.png) #加载图片ballrect ball.get_rect() #获取矩形区域#执行死循环确保窗口一直显示while True:#检查事件for event in pygame.event.get():if event.type pygame.QUIT: #如果单击关闭窗口则退出sys.exit()screen.fill(color) #填充颜色screen.blit(ball,ballrect) #将图片画到窗口上pygame.display.flip() #更新全部显示pygame.quit() #退出pygame上述代码中使用image模块的loda()方法加载图片返回值ball是一个Surface对象。Surface是用来代表图片的Pygame对象可以对一个Surface对象进行涂画、变形、复制等各种操作事实上屏幕也只是一个Surfacepygame,display.set_mode就返回了一个屏幕Surface对象。如果将ball这个Surface对象画到screenSurface对象需要使用bilt()方法最后使用display模块的filp方法更新整个待显示的Surface对象到屏幕上。Surface对象的常用方法如下表所示。方法名功能pygame.Surface.blit将一个图像画到另一个图像上pygame.Surface.convert转换图像的像素格式pygame.Surface.convert_Alpha转换图像的像素格式包含Alpha通道的转换pygame.Surface.fill使用颜色填充Surfacepygame.Surface.get_rect获取Surface的矩形区域运行上述代码结果如下图。(4)下面该让小球动起来了。ball.get_rect()方法返回值ballrect是一个Rect对象该ECShop对象有一个move()方法可以用于移动矩形。move(xy)函数有两个参数第一个参数是X轴移动的距离第二个参数是Y轴移动的距离。窗体左上角坐标为(00)例如move(10050)如下图示。为实现小球不停地移动将move()函数添加到whlie循环内具体h3c代码如下#-*-coding:utf-8-*-import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口color (0,0,0) #设置颜色ball pygame.image.load(ball.png) #加载图片ballrect ball.get_rect() #获取矩形区域speed [5,5] #设置移动的X轴、Y轴距离#执行死循环确保窗口一直显示while True:#检查事件for event in pygame.event.get():if event.type pygame.QUIT: #如果单击关闭窗口则退出sys.exit()ballrect ballrect.move(speed) #移动小球screen.fill(color) #填充颜色screen.blit(ball,ballrect) #将图片画到窗口上pygame.display.flip() #更新全部显示pygame.quit() #退出pygame(5)运行上述代码发现小球在屏幕中一闪而过此时linux小球并没有真正消失而是移动到窗体之外此时需要添加碰撞检测的功能。当小球与窗体任一边缘发生碰撞则更改小球的移动方向。具体代码如下#-*-coding:utf-8-*-import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口color (0,0,0) #设置颜色ball pygame.image.load(ball.png) #加载图片ballrect ball.get_rect() #获取矩形区域speed [5,5] #设置移动的X轴、Y轴距离#执行死循环确保窗口一直显示while True:#检查事件for event in pygame.event.get():if event.type pygame.QUIT: #如果单击关闭窗口则退出sys.exit()ballrect ballrect.move(speed) #移动小球#碰到左右边缘if ballrect.left 0 or ballrect.right width:speed[0] -speed[0]#碰到上下边缘if ballrect.top 0 or ballrect.right height:speed[1] -speed[1]screen.fill(color) #填充颜色screen.blit(ball,ballrect) #将图片画到窗口上pygame.display.flip() #更新全部显示pygame.quit() #退出pygame上述代码中添加了碰撞检测功能。如果碰到左右边缘则更改X轴数据为负数如果碰到上下边缘则更改Y轴数据为负数。运行结果如下图。(6)运行上述代码发现好像有多个小球在飞快移动这是因为自动化测试运行上述代码的时间非常短导致肉眼观察出错觉因此需要添加一个“时钟”来控制程序运行的时间。这是就需要使用软件测试pygame的time模块。使用pygame时钟之前必须先创建Clock对象的一个实例然后在while循环中设置多长时间运行一次。具体代码如下#-*-coding:utf-8-*-import sys #导入sys模块import pygame #导入pygame模块pygame.init() #初始化pygamesize width,height 640,480 #设置窗口screen pygame.display.set_mode(size) #显示窗口color (0,0,0) #设置颜色ball pygame.image.load(ball.png) #加载图片ballrect ball.get_rect() #获取矩形区域speed [5,5] #设置移动的X轴、Y轴距离clock pygame.time.Clock() #设置时钟#执行死循环确保窗口一直显示while True:clock.tick(60) #每秒执行60次#检查事件for event in pygame.event.get():if event.type pygame.QUIT: #如果单击关闭窗口则退出sys.exit()ballrect ballrect.move(speed) #移动小球#碰到左右边缘if ballrect.left 0 or ballrect.right width:speed[0] -speed[0]#碰到上下边缘if ballrect.top 0 or ballrect.right height:speed[1] -speed[1]screen.fill(color) #填充颜色screen.blit(ball,ballrect) #将图片画到窗口上pygame.display.flip() #更新全部显示pygame.quit() #退出pygame至此就完成了测试跳跃的小球游戏。