如何解决如何在Pygame中多次渲染图像
我正在用python做井字游戏。如果您单击游戏内的特定正方形,则x图像应被变白到屏幕上。我通过使用pygame.MOUSEBUTTONDOWN并指定了坐标来做到这一点。当我单击一个正方形时,图像会在屏幕上变白。问题是,当我单击另一个正方形时,另一个x在该正方形中被遮住,但另一个正方形中的x消失了。这是代码:
snapshot.data[key]
解决方法
创建一个指定矩形区域的列表:
rect_range = [
(250,300,250,199),(301,351,249,201),(351,399,(251,301,310,252),(303,(353,400,312,250),372,314),(302,350,313),(352,369,310)]
使用属性rect
和clicked
创建一个类:
class MyRect:
def __init__(self,x1,x2,y2,y1):
self.rect = pygame.Rect(x1+1,y1+1,x2-x1-1,y2-y1-1)
self.clicked = False
创建对象列表:
rectObjects = [MyRect(*rr) for rr in rect_range]
测试是否在循环中单击矩形:
for event in pygame.event.get():
# [...]
if event.type == pygame.MOUSEBUTTONDOWN:
for rectObj in rectObjects:
if rectObj.rect.collidepoint(event.pos):
rectObj.clicked = True
循环绘制对象:
for rectObj in rectObjects:
if rectObj.clicked:
screen.blit(x,rectObj.rect)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。