PyGame 人物鼠标互动,鼠标点击获取当前人物信息

在这里插入图片描述

  1. 当鼠标触碰人物,并且点击人物时就将人物及相应信息展示在下方窗口
  2. 当主角移动时,下方小窗口人物也会跟着同方向同步移动

新增类

  • 用于展示单个目标 方便后面更新,如当前人物状态、背包、技能按钮等展示新的界面
class 初始化界面显示():
    def __init__(self,目标人物):
        # 人物显示区域 =====================================================
        #界面开关
        #如果 点击了人物 就展示 以下信息  那么此开关应为 true
        if 目标人物.展示所有信息:
            #增加小窗口遮盖图层
            self.小窗口显示人物 = 目标人物.小窗口展示人物()
            self.显示血量信息 = 目标人物.展示当前血量与剩下血量()
            self.默认面板 = 目标人物.默认面板信息展示() # 则该地板 将人物 及 血量展示上面
		self.移动开关 = False
        self.展示所有信息 = False
        self.血量 = 100
        self.蓝量 = 100
        self.记录的血量 = self.血量
        self.记录的蓝量 = self.蓝量
        self.力量 = 10
        self.敏捷 = 10
        self.智力 = 10
        self.物理攻击 = 3
        self.法术攻击 = 3
        self.最大物理攻击 = 25
        self.最大法术攻击 = 25
        self.防御力 = 2

def 小窗口展示人物(self):
    if 动态图片开关:
        self.image = self.images[目前动态位置]
        screen.blit(self.image[self.index % 3], ( 430,910)  )
        self.index += 1
        if self.移动开关:
            self.人物移动()
    if 静态图片开关:
        self.im = self.imag[目前静态位置]
        screen.blit(self.im,( 430, 910) )

def 展示当前血量与剩下血量(self):
    font = pygame.font.SysFont("kaiti", 10)
    当前血量百分比 = (int(self.血量 / self.记录的血量 * 100))
    当前蓝量百分比 = (int(self.蓝量 / self.记录的蓝量 * 100))
    当前图片百分比 = 100
    当前图片最大百分比 = 100
    当前图片百分比 = (int(当前图片百分比 / 当前图片最大百分比 * 100))

    # 血量 等图形配置信息
    # 绘制血条 效果
    pygame.draw.rect(screen, [255, 0, 0], [410, 1006, 当前血量百分比, 15], 0)
    # 绘制蓝量 效果
    pygame.draw.rect(screen, [173, 216, 230], [410, 1026, 当前蓝量百分比, 15], 0)

    # 血量 等信息
    血量展示 = font.render(str(self.血量) + "/" + str(self.记录的血量), True, pygame.Color(255, 255, 255))
    screen.blit(血量展示, (450, 1008))
    蓝量展示 = font.render(str(self.蓝量) + "/" + str(self.记录的蓝量), True, pygame.Color(255, 255, 255))
    screen.blit(蓝量展示, (450, 1028))

def 默认面板信息展示(self):
    font = pygame.font.SysFont("kaiti", 16, True)

#展示三项
    蓝量展示 = font.render(str(self.物理攻击) + " - " + str(self.最大物理攻击), True, pygame.Color(255, 255, 255))
    screen.blit(蓝量展示, (642, 898))
    法术展示 = font.render(str(self.法术攻击) + " - " + str(self.最大法术攻击), True, pygame.Color(255, 255, 255))
    screen.blit(法术展示, (642, 948))
    防御力展示 = font.render(str(self.防御力), True, pygame.Color(255, 255, 255))
    screen.blit(防御力展示, (642, 1005))

    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值