import pygame class Mary(pygame.sprite.Sprite): def __init__(self): super(Mary,self).__init__() self.image=pygame.image.load("超级玛丽/mali.png") self.image=pygame.transform.scale2x(self.image)#放大两倍 self.rect=self.image.get_rect() self.rect.x=32 self.rect.y=400-32 self.rect.width=32 #宽 self.rect.height=32 #高 self.krect=self.image.get_rect() #重点 self.krect.width=32 self.krect.height=32 self.krect.x=32*6 self.krect.y=0 self.rStart=0 self.num=0 self.lflag=0 self.fz=1 def 开始向右(self): self.lflag=1 self.num=0 if self.fz<0: self.翻转() self.fz += 1 def 开始向左(self): self.lflag=-1 self.num=6 if self.fz>0: self.翻转() self.fz-=1 def 停止(self): self.lflag=0 def 翻转(self): self.image=pygame.transform.flip(self.imag,True,False) self.fz=0 def 变大(self): self.image= pygame.image.load("超级玛丽/big-mali.png") self.image=pygame.transform.scale2x(self.image) self.rect.y=400-64 self.rect.width=64 self.krect.height=64 def update(self): self.rect.x=self.rect.x+self.lflag*10 if self.lflag>0: #向右走 self.krect.x=self.rStart+32*self.num self.num= self.num+1 if self.num>2: self.num=0 if self.lflag<0: #向左走 self.krect.x=self.rStart + 32 * self.num self.num=self.num-1 if self.num<4: self.num=6 if self.lflag==0: #停止状态 if self.num <=2: #小于 self.krect.x = 32*6 if self.num>=3: self.krect.x=0
时间: 2024-02-15 11:28:33 浏览: 88
精选_基于Python的PyGame实现的超级马里奥游戏_源码打包
这段代码定义了一个名为 Mary 的类,继承于 `pygame.sprite.Sprite` 类。这个类代表了游戏中的玛丽角色。代码中包括以下方法:
- `__init__(self)`:类初始化方法,用于加载玛丽的图片和设置初始位置和状态。
- `开始向右(self)`:让玛丽开始向右移动的方法。
- `开始向左(self)`:让玛丽开始向左移动的方法。
- `停止(self)`:让玛丽停止移动的方法。
- `翻转(self)`:翻转玛丽图片,让玛丽朝向左边或右边。
- `变大(self)`:让玛丽变成大号玛丽的方法。
- `update(self)`:每次游戏循环更新玛丽的状态和位置。
这个类的实现涉及了很多 Pygame 的知识,比如图片加载、矩形操作、翻转等。如果你不熟悉 Pygame,可能需要先学习一下相关知识。
阅读全文