
Pygame拓展知识
文章平均质量分 77
Pygame拓展知识
棉猴
这个作者很懒,什么都没留下…
展开
-
Pygame实现动画效果2-2
此时运行程序后,发现汽车的行驶速度非常快,可以通过设置帧率的方式调整速度。在“1.2 图片实现动画的原理”中提到,通过在不同位置处显示图片,可以实现图片的动画效果,而帧率表示每秒显示图片的次数,帧率越高速度越快,帧率越低速度越慢。设置帧率的代码如图8和图9所示所示。通过该窗口调用blit()方法将汽车图片显示到指定的位置处,第一个参数表示显示的汽车图片,第二个参数以元组的方式指定了图片显示的位置,carx和cary分别表示横纵坐标。在定义了帧率相关的变量后,通过图9所示的代码设置帧率。原创 2025-03-04 10:47:02 · 412 阅读 · 0 评论 -
Pygame实现动画效果2-1
原始图片中,汽车头的方向是朝下的,通过第15行代码旋转图片,调整汽车头的方向,通过pygame.transform模块中的rotate()函数实现,该函数的第一个参数表示要旋转的图片,第二个参数表示逆时针旋转的角度,90表示将汽车头从朝下的方向旋转为朝右边。程序运行后,汽车向右侧行驶,因此第24行代码判断汽车的行驶方向direction是否是“right”,如果是,则此时通过第25行代码增加汽车图片的横坐标carx,实现向右行驶的效果;通过在设置像素的不同位置,可以实现像素动画效果,其原理如图1所示。原创 2025-03-04 10:45:26 · 1059 阅读 · 0 评论 -
Pygame中Sprite类实现多帧动画3-3
使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例,之后使用相关函数对该实例进行操作。原创 2024-09-09 20:11:23 · 592 阅读 · 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 · 897 阅读 · 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 · 674 阅读 · 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 · 688 阅读 · 0 评论 -
Pygame中将鼠标形状设置为图片2-1
要将鼠标的形状改为图片,需要要导入该图片。因此,首先定义导入图片的方法,代码如图2所示。图2 导入图片的代码从图中代码可以看出,导入图片的方法的名字叫做load_image(),该方法的参数name表示要导入图片的路径。第4行待用通过pygame.image模块的load()方法导入图片,该方法的返回值image是一个Surface类型的变量,表示导入的图片。此时已经成功地导入了图片,为什么还有有接下来的5-7行代码呢?如果没有这几行代码,表示鼠标的图片显示的效果如图3所示。原创 2023-10-12 18:49:53 · 944 阅读 · 0 评论 -
Pygame实现黑客帝国屏幕效果
黑客帝国的屏幕效果如图1所示。图1 黑客帝国屏幕效果实现以上功能,实际上就是在Pygame中创建两个Surface,其中一个Surface是纯黑屏背景,用来覆盖之前的屏幕,达到数字逐渐消失的效果;另一个Surface用来显示数字,达到数字下移的效果。原创 2023-09-30 16:44:42 · 624 阅读 · 0 评论 -
Pygame中Sprite的使用方法6-6
其中,screen表示程序的整个界面,将其绘制为白色背景;之后通过all_sprites_list.draw()绘制碰撞后剩下的方块(碰撞的方块已经在group中删除);最后显示重新绘制的内容。每次碰撞发生后,程序界面需要重新绘制,代码如下所示。以上程序的完整代码如下所示。原创 2023-09-24 18:59:39 · 209 阅读 · 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 · 339 阅读 · 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 · 490 阅读 · 0 评论 -
Pygame中Sprite类的使用6-3
pygame.sprite.Group类是一个容器,可以包含多个Sprite类的实例。可以对Group类中的Sprite实例进行同一的绘制和更新,使得代码得到了简化。原创 2023-09-19 13:09:51 · 1398 阅读 · 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 · 328 阅读 · 0 评论 -
Pygame中Sprite类的使用6-1
在Pygame中有一个名为sprite的模块,又叫做“精灵”模块。通过该模块中的Sprite类可以实现图形的绘制、移动以及碰撞检测等功能。原创 2023-09-10 18:14:28 · 846 阅读 · 0 评论