当前位置: 首页 > 后端技术 > Python

06:动画的精髓!起来,给我两步#python游戏编程#红蛋蛋

时间:2023-03-26 18:57:22 Python

声明:原创不易,未经允许不得转载。0.前言朋友们好!我还是那个带你一起写游戏的猫姐。今天是这个游戏的第6集!上一期我们给游戏主角换了马甲,小方块变小男孩啦!今天我们就让小男孩的脚灵活动起来,效果是这样的!1.动图原理我们让小男孩的脚动起来之后,视觉上感觉就像小男孩在走路一样!动图的基本原理就是多张图片连续播放!这里我们使用三张图片。在图片目录下,我准备了三张小男孩的图片。我们将原来的player.png命名为player0.png,最后两张图片分别是player1.png和player2.png。我们回到编写代码。这里,我们仍然修改Player类。我们使用一个for循环来加载这三张图片。图片加载完成后,我们将这三个图片对??象放入self.plays列表中。这里我会先写完代码,逐行解释。self.plays=[]foriinrange(3):image_filename="./images/player"+str(i)+".png"image=pygame.image.load(image_filename)self.plays.append(image)通过foriinrange(3):我们把男孩的图片路径拼接在一起,然后赋值给image_filename,然后使用pygame.image.load函数导入这张图片,传入图片的路径括号。你有没有注意到我多次使用这个pygame.image.load函数,希望你记住这个导入图片的函数。最后通过self.plays的append函数将图片追加到列表中。接下来我们需要在update函数中使用blit函数依次绘制这三张小男孩的图片。我们只需要将self.image替换为self.plays[self.image_index]就可以了!defupdate(self):screen.blit(self.plays[self.image_index],self.rect)这里使用了一个新的变量self.image_index,所以我们需要在init函数中给它赋值0。self.image_index=0我们运行程序看看效果。可以看出,小男孩的脚没有任何变化!这是怎么回事?因为image_index一直为0,所以一直显示图片player0.png。我们还需要让image_index变量一直取0、1、2这三个值。所以,我们需要写一个函数来更新image_index变量:defupdate_image_index(self):self.image_change_time+=1ifself.image_change_time>2:self.image_change_time=0self.image_index=(self.image_index+1)%3上面使用了一个新的变量,self.image_change_time,所以在init函数中,我们将image_change_time赋值为0:self.image_change_time=0最后我们在update函数中添加一行代码调用update_image_index函数。defupdate(self):self.update_image_index()screen.blit(self.plays[self.image_index],self.rect)好了,我们运行游戏看看效果。可以看出,小男孩的脚动了。有意思,很有成就感!关注猫姐,下一期我们搞天上掉下来的蘑菇!