1 Star 0 Fork 0

tracyluffy/ADOWN2000

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
a.py 2.61 KB
一键复制 编辑 原始数据 按行查看 历史
tracyluffy 提交于 2024-01-28 21:25 . 项目完成!
import pygame
class A(pygame.sprite.Sprite):
"""管理游戏主角A的类"""
def __init__(self,game_screen,game_area,glob_settings):
"""初始化游戏主角A资源以及起始位置"""
super().__init__()
self.screen=game_screen #设置主角A所在游戏窗口
self.screenRect=game_area.get_rect() #获取游戏区域rect对象,以进行A位置设置
self.width=self.screenRect.width/15 #初始化A宽度参数游戏区域1/15
self.height=self.screenRect.height/15 #初始化A高度参数为游戏区域1/15
self.size=(self.width,self.height) #初始化A大小参数
self.image=pygame.transform.scale(pygame.image.load("img/A.png"),self.size) #获取A图片,并创建A实例对象
self.rect=self.image.get_rect() #获取A rect对象,以进行A位置设置
self.rect.topleft=self.screenRect.topleft #初始化A位置位于游戏区域左上方
self.move_left=False #初始化A向左移动的标志,False不移动,True移动
self.move_right=False #初始化A向右移动的标志,False不移动,True移动
self.move_down=True #初始化A向下移动的标志,False为向上移动,True向下移动
self.lr_speed=glob_settings.a_lrspeed #初始化A左右移动的速度
self.down_speed=glob_settings.a_downspeed #初始化A向下移动的速度
def _test_ACollideLine(self,L):
"""测试游戏主角A下边缘是否与Line的上边缘碰撞"""
if 0<=(self.rect.bottom-L.rect.top)<=3:
if L.rect.left<=self.rect.left<=L.rect.right:
return True
elif L.rect.left<=self.rect.right<=L.rect.right:
return True
else:
return False
else:
return False
def _movA(self,line_speed):
"""控制游戏主角A下一帧移动的位置"""
if not self.move_down:
self.rect.y-=line_speed
else:
self.rect.y+=self.down_speed
if self.rect.left != self.screenRect.left and self.move_left:
self.rect.x-=self.lr_speed
if self.rect.right != self.screenRect.right and self.move_right:
self.rect.x+=self.lr_speed
def set_ADownSpeed(self,speed):
"""设置A下降速度已提高难度"""
self.down_speed=speed
def blit(self,line_speed):
"""更新A下一帧位置并绘制游戏主角A到屏幕上"""
self._movA(line_speed)
self.screen.blit(self.image,self.rect)
def blit_stop(self):
"""绘制A停止不动至屏幕上"""
self.screen.blit(self.image,self.rect)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tracyluffy/ADOWN2000.git
[email protected]:tracyluffy/ADOWN2000.git
tracyluffy
ADOWN2000
ADOWN2000
master

搜索帮助