宅在家里,沉迷于pygame编程,这篇文章给大家分享一下基于pygame实现一些简单的小功能,这些功能可以很好的嵌入在游戏中增加游戏的交互性。
这篇文章主要讲述用pygame实现复选框的方式。
文章复用了之前文章中的一些类和方法
目录
下面开始正文。
1. 效果
复选框可以用在游戏中的很多地方,例如游戏开始选择角色,组队,选择多物品等等,废话少说,下面展示代码。
2. 代码
2.1. 按钮
复选框中每一项都可以被认为是一个按钮,不一样的是,在点击之后,该按钮会带上一个勾勾,变为锁定状态。因此我们可以继承之前文章的 KeyboardButton 类来编写我们 Checkbox中的按钮。
class KeyboardCheckbox(KeyboardButton):
def __init__(self, **kwargs):
KeyboardButton.__init__(self, **kwargs)
self.locked = False # 是否锁定
self.render_image_locked() # 渲染按钮被锁定后的图片
def render_image_locked(self):
check_img = pygame.image.load('check.jpg').convert_alpha() # 按钮被锁定后右上角的勾勾
# 缩放一下我们的勾勾然后画在按钮的右上角
check_img_l = min(*self.size) // 5
check_img_pos = self.size[0] - check_img_l, 0
check_img = pygame.transform.smoothscale(check_img, (check_img_l, check_img_l))
self.image_locked = self.image_org.copy()
self.image_locked.blit(check_img, check_img_pos)
def update(self):
if self.clicked:
self.imag