Pygame入门
文章平均质量分 74
棉猴
这个作者很懒,什么都没留下…
展开
-
Pygame中Sprite实现逃亡游戏4
在中实现了玩家跳跃飞火的效果,接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。原创 2024-09-26 16:21:35 · 514 阅读 · 0 评论 -
Pygame中Sprite实现逃亡游戏3
在中实现了飞龙和飞火的显示。接下来实现玩家跳跃效果,如图1所示。图1 玩家跳跃效果。原创 2024-09-25 11:17:11 · 870 阅读 · 0 评论 -
Pygame中Sprite实现逃亡游戏2
在中实现了奔跑的玩家,接下来实现显示追赶玩家的飞龙以及对面过来的飞火。原创 2024-09-24 16:04:09 · 934 阅读 · 0 评论 -
Pygame中Sprite实现逃亡游戏1
在系列中,通过pygame中的sprite类(精灵类)实现了多帧动画。在该动画的基础上,可以来实现一个逃亡游戏,如图1所示。图1 逃亡游戏效果从图1中可以看出,玩家被飞龙追赶,可以通过跳跃躲避前面的火焰,让火焰击中飞龙,这样就可以使得玩家与飞龙之间的距离原来越远。对于以上提到的逃亡游戏,首先实现的是玩家奔跑的显示,如图2所示。图2 奔跑的玩家。原创 2024-09-23 17:06:55 · 835 阅读 · 0 评论 -
Pygame中Sprite类实现多帧动画3-3
使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例,之后使用相关函数对该实例进行操作。原创 2024-09-09 20:11:23 · 491 阅读 · 0 评论 -
Pygame中Sprite类实现多帧动画3-2
获取图片中最后一帧的编号的代码如图7所示。图7 获取图片中最后一帧的编号的代码其中,第1行代码通过get_rect()方法获取整张图片的宽度和高度,保存在rect变量中,第2行代码通过rect.width//width获取整张图片中帧的列数,rect.height//height获取整张图片中帧的行数,两者的乘积减去1即为最后一帧的编号(帧的编号从0开始)。注意1 图7代码中的rect与图6代码中的self.rect不是同一个变量。原创 2024-09-09 20:04:11 · 740 阅读 · 0 评论 -
Pygame中Sprite类实现多帧动画3-1
通过多个帧实现动画的原理如图1所示。图1 多个帧其中图1包含了6个飞龙的动作,这6个动作可以看作6个帧,按照一定的时间间隔显示这6个帧,就可以得到飞龙飞行的效果,如图2所示。图2 飞龙飞行动画相关链接1 帧:是影像动画中的最小单位画面。在影像动画中,一帧是一幅静止的画面,连续的帧形成动画或视频。Pygame中的Sprite类用于游戏开发,表示游戏中的角色、道具或者背景等各种元素。通过Sprite类,可以轻松管理和操作游戏中的图形对象,使得游戏开发变得更加简单和高效。Sprite类也叫做“精灵”类。原创 2024-09-09 20:01:16 · 542 阅读 · 0 评论 -
Pygame中获取鼠标按键状态的方法
在中提到,可以通过鼠标事件和mouse模块中的函数获取鼠标位置,这两种方法同样适用于获取鼠标按键状态。原创 2024-09-05 18:23:04 · 799 阅读 · 0 评论 -
Pygame中获取鼠标位置的方法
在pygame中,可以通过鼠标通过鼠标事件或者mouse模块中的函数获取鼠标位置。原创 2024-09-05 17:05:43 · 1188 阅读 · 0 评论 -
Pygame中播放音频的方法
mixer模块包含了用于导入与播放音频的类,而mixer模块中的music模块可以直接将音频文件导入到内存中用于播放。原创 2024-05-15 16:17:05 · 649 阅读 · 0 评论 -
Pygame实现黑客帝国屏幕效果
黑客帝国的屏幕效果如图1所示。图1 黑客帝国屏幕效果实现以上功能,实际上就是在Pygame中创建两个Surface,其中一个Surface是纯黑屏背景,用来覆盖之前的屏幕,达到数字逐渐消失的效果;另一个Surface用来显示数字,达到数字下移的效果。原创 2023-09-30 16:44:42 · 519 阅读 · 0 评论 -
Pygame中实现图片的移动
在和中提到将鼠标设置为指定图片。接下来在该文章涉及到的代码基础之上,实现图片的移动,效果如图1所示。图1 图片移动效果从图1中可以看出,导入一个大猩猩的图片,让大猩猩图片可以在创建的屏幕上左右移动。原创 2023-10-19 20:54:07 · 1056 阅读 · 0 评论 -
Pygame中将鼠标形状设置为图片2-2
其中,第20行代码调用pygame.mouse模块中的set_visible()方法,将其参数设置为False,表示隐藏鼠标;第24行代码使用使用pygame.sprite模块中的RenderPlain()方法将mouse加入到Group中,实际上RenderPlain()方法与Group()方法的作用相同。其中,第26行中的going是控制程序是否运行的标志,当用户点击屏幕右上角的退出按键后,根据28-30行的代码,将going设置为False,此时while循环结束,程序退出;原创 2023-10-12 18:53:04 · 636 阅读 · 0 评论 -
Pygame中将鼠标形状设置为图片2-1
要将鼠标的形状改为图片,需要要导入该图片。因此,首先定义导入图片的方法,代码如图2所示。图2 导入图片的代码从图中代码可以看出,导入图片的方法的名字叫做load_image(),该方法的参数name表示要导入图片的路径。第4行待用通过pygame.image模块的load()方法导入图片,该方法的返回值image是一个Surface类型的变量,表示导入的图片。此时已经成功地导入了图片,为什么还有有接下来的5-7行代码呢?如果没有这几行代码,表示鼠标的图片显示的效果如图3所示。原创 2023-10-12 18:49:53 · 872 阅读 · 0 评论 -
Pygame中监控鼠标动作的方法
在中提到,通过在while True循环中获取队列中事件的方法监控键盘动作。监控鼠标动作的方法与监控键盘动作的方法相同。原创 2023-09-28 16:44:04 · 1032 阅读 · 0 评论 -
Pygame中Sprite的使用方法6-6
其中,screen表示程序的整个界面,将其绘制为白色背景;之后通过all_sprites_list.draw()绘制碰撞后剩下的方块(碰撞的方块已经在group中删除);最后显示重新绘制的内容。每次碰撞发生后,程序界面需要重新绘制,代码如下所示。以上程序的完整代码如下所示。原创 2023-09-24 18:59:39 · 156 阅读 · 0 评论 -
Pygame中Sprite的使用方法6-5
block_list包含了所有绿色方块的Group实例,因为在碰撞发生后,被碰撞的绿色方块要消失,因此,把spritecollide()方法的第三个参数设置为True。其中,通过pygame.mouse.get_pos()获取鼠标的当前位置,并将鼠标的横坐标pos[0]赋值给蓝色方块的x坐标player.rect.x,鼠标的纵坐标pos[1]赋值给蓝色方块的y坐标player.rect.y。蓝色方块会随着鼠标移动,当碰到绿色方块时,则当前分数加1,当碰到红色方块时,当前分数减1。原创 2023-09-24 18:57:05 · 262 阅读 · 0 评论 -
Pygame中Sprite的使用方法6-4
首先定义Sprite派生类Block,Block表示程序中的方块,代码如下所示。其中,Block类的__init__()方法的color参数表示方块的颜色,width和height表示方块的宽度和高度。在__init__()方法中首先调用父类也就是Sprite类的__init__()方法;之后通过pygame.Surface()方法创建方块;接下来调用fill()方法为方块填充颜色;最后通过get_rect()获取方块的位置。相关链接1 pygame.sprite.Sprite类的使用,请参考。原创 2023-09-24 18:53:29 · 411 阅读 · 0 评论 -
Pygame中Sprite类的使用6-3
pygame.sprite.Group类是一个容器,可以包含多个Sprite类的实例。可以对Group类中的Sprite实例进行同一的绘制和更新,使得代码得到了简化。原创 2023-09-19 13:09:51 · 371 阅读 · 0 评论 -
Pygame中Sprite类的使用6-2
之后将z1的rect的x每次减5,表示每次循环僵尸向左侧移动5个单位,之后就是通过draw()和update()来绘制并且在新位置上显示僵尸;每绘画一次,就是一帧。tick()函数的作用是设置FPS的值,参数10表示FPS的值10,即每秒所运行的帧数不超过10次,也就是保证了while循环每秒只能循环10次。让僵尸能够动起来,也就是让僵尸从屏幕右边走到屏幕左边,此时只需要使用while循环,改变僵尸图片的x轴坐标即可,代码如下所示。之后,在while循环的内部,来设置FPS的值,代码如下所示。原创 2023-09-10 18:17:54 · 255 阅读 · 0 评论 -
Pygame中Sprite类的使用6-1
在Pygame中有一个名为sprite的模块,又叫做“精灵”模块。通过该模块中的Sprite类可以实现图形的绘制、移动以及碰撞检测等功能。原创 2023-09-10 18:14:28 · 736 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-6
【代码】Pygame中Trivia游戏解析6-6。原创 2023-09-02 17:40:36 · 98 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-5
当scored或者failed有一个是True时,即用户回答了当前题目,把与题目相关的变量恢复初始值,current表示当前题目所在的函数,而下一题目所在的行数应该是当前题目所在的行数加6(6行包括了当前题目内容1行,题目选项4行,正确答案1行,如图6所示)。当变量scored和failed都不是False时,即用户还没给出题目的答案时,判断用户给出的题目number与题目的正确答案correct是否相等。在Trivia的主程序中,对程序所需的变量进行初始化,之后创建了Trivia类的对象,代码如下所示。原创 2023-09-02 17:38:54 · 1098 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-4
当用户的答案是正确时,用绿色字体显示正确选项,红色字体显示用户选择的错误选项,并且会有红色字体的提示,如图7①和图7②所示。其中,current表示当前题目内容在data中的行数,接下来的4行是题目的选项,之后的第5行即为正确答案,如图6所示。当failed是True时,表示答案错误,wronganser表示错误答案,correct表示正确答案。在显示题目选项时,有三种情况:分别是用户还未选择答案时;当用户的答案是正确时,用绿色字体显示该选项,并且会有绿色字体的提示,如图5①和图5②所示。原创 2023-09-02 17:35:32 · 370 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-3
font1和font2在程序中定义的两个字体。因为题目内容在读取到数据data的当前行,str(question)表示第几个题目,self.data[self.current]表示题目的内容,如图3①、图3②所示。主要包括显示题目框架、显示题目内容和显示题目选项等三部分。以上代码通过调用Trivia类的print_text()函数,显示了题目的框架,如图2①-④所示。在show_question()函数中,通过以下代码显示题目的框架。在show_question()函数中,通过以下代码显示题目的内容。原创 2023-09-02 17:30:30 · 564 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-2
text表示指定内容,color表示指定颜色;在函数内部,如果shadow是True,则表示使用阴影效果,screen.blit()函数的x-2,y-2参数表示显示阴影(与最后一行代码中的screen.blit()函数配合使用)。其中,open()函数的作用是打开文件,该函数的第一个参数filename是Trivia类的参数,在定义该类的对象时指定,表示保存题目的文件名。在《Python中文件的读取》中提到,readlines()函数会读取每一行的换行符,因此需要将该符号去掉,代码如下所示。原创 2023-09-02 17:26:31 · 454 阅读 · 0 评论 -
Pygame中Trivia游戏解析6-1
Trivia的含义是“智力测验比赛中的各种知识”。Trivia游戏类似智力竞赛,由电脑出题,玩家进行作答,之后电脑对玩家的答案进行判断,给出结果并进行评分。该游戏的界面如图1所示。图1 Trivia游戏界面。原创 2023-09-02 17:22:07 · 565 阅读 · 0 评论 -
Pygame中监控键盘按键的方法
当判断出是键盘按键事件后,接下来判断用户按下的是键盘中的哪个按键,根据不同的按键进行不同的处理。按下的是数字2键,则显示数字2,以此类推。其中,event.key表示按键对应的值,pygame.K_1到pygame_K_4分别表示数字1键到数字4键对应的值。在Pygame中获取按键的基本原理就是从队列中取出这些事件,如果是键盘事件,则继续判断用户按下的是哪个键,根据不同的按键进行不同的处理。其中,event.type表示事件的类型,KEYUP在pygame.locals中定义,表示键盘中的某个键被按下。原创 2023-07-02 11:44:19 · 5297 阅读 · 2 评论 -
Pygame实现方块反弹
在移动方块的时候,需要定义方块的位置变量和移动的速度,代码如下所示。vel_x = 2vel_y = 1其中,变量pos_x和pos_y表示方块的起始位置,即横坐标和纵坐标。代码中的取值表示方块从屏幕的中心位置开始移动。变量vel_x和vel_y表示方块在横向和纵向移动的速度。原创 2023-02-28 09:09:58 · 645 阅读 · 0 评论 -
Pygame中画圆
在Pygame中,可以通过draw模块下的circle()函数来进行画圆。原创 2023-02-17 23:17:55 · 1430 阅读 · 0 评论 -
Pygame显示文字
使用Pygame显示文字的步骤如图1所示。图1 显示文字的步骤。原创 2023-02-09 13:33:56 · 4234 阅读 · 0 评论