【发布时间】:2014-07-31 03:05:13
【问题描述】:
我正在用 Python 编写一个游戏,它向用户展示了许多方格,其中一个是获胜方格。但是,我不知道如何让方块响应点击,以及如何每次将获胜方块隐藏在不同的位置。到目前为止,这是我的代码:
# Import library
import pygame
# Initialise game engine
pygame.init()
# Examples
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
blue = (0, 0, 255)
# Screen dimensions
size=[700,500]
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Lewis Tough - Find The Gold")
pi=3.141592653
done=False
clock=pygame.time.Clock()
font=pygame.font.Font("C:/Windows/Fonts/TCM_____.ttf", 50)
while done==False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
#all evt processing above here
#start of game logic
#end of game logic
#start of drawing
screen.fill(white)
pygame.draw.rect(screen,green,[20,20,50,50],2)
pygame.draw.rect(screen,green,[70,70,50,50],2)
pygame.draw.rect(screen,green,[20,70,50,50],2)
pygame.draw.rect(screen,green,[70,20,50,50],2)
pygame.draw.rect(screen,green,[120,20,50,50],2)
pygame.draw.rect(screen,green,[170,70,50,50],2)
pygame.draw.rect(screen,green,[120,70,50,50],2)
pygame.draw.rect(screen,green,[170,20,50,50],2)
#breakafter8
pygame.draw.rect(screen,green,[120,120,50,50],2)
pygame.draw.rect(screen,green,[170,170,50,50],2)
pygame.draw.rect(screen,green,[120,170,50,50],2)
pygame.draw.rect(screen,green,[170,120,50,50],2)
pygame.draw.rect(screen,green,[20,120,50,50],2)
pygame.draw.rect(screen,green,[70,170,50,50],2)
pygame.draw.rect(screen,green,[20,170,50,50],2)
pygame.draw.rect(screen,green,[70,120,50,50],2)
#sec3
pygame.draw.rect(screen,green,[220,20,50,50],2)
pygame.draw.rect(screen,green,[270,70,50,50],2)
pygame.draw.rect(screen,green,[220,70,50,50],2)
pygame.draw.rect(screen,green,[270,20,50,50],2)
pygame.draw.rect(screen,green,[320,20,50,50],2)
pygame.draw.rect(screen,green,[370,70,50,50],2)
pygame.draw.rect(screen,green,[320,70,50,50],2)
pygame.draw.rect(screen,green,[370,20,50,50],2)
#sec4
pygame.draw.rect(screen,green,[320,120,50,50],2)
pygame.draw.rect(screen,green,[370,170,50,50],2)
pygame.draw.rect(screen,green,[320,170,50,50],2)
pygame.draw.rect(screen,green,[370,120,50,50],2)
pygame.draw.rect(screen,green,[220,120,50,50],2)
pygame.draw.rect(screen,green,[270,170,50,50],2)
pygame.draw.rect(screen,green,[220,170,50,50],2)
pygame.draw.rect(screen,green,[270,120,50,50],2)
#next half
pygame.draw.rect(screen,green,[20,220,50,50],2)
pygame.draw.rect(screen,green,[70,270,50,50],2)
pygame.draw.rect(screen,green,[20,270,50,50],2)
pygame.draw.rect(screen,green,[70,220,50,50],2)
pygame.draw.rect(screen,green,[120,220,50,50],2)
pygame.draw.rect(screen,green,[170,270,50,50],2)
pygame.draw.rect(screen,green,[120,270,50,50],2)
pygame.draw.rect(screen,green,[170,220,50,50],2)
#breakafter8
pygame.draw.rect(screen,green,[120,320,50,50],2)
pygame.draw.rect(screen,green,[170,370,50,50],2)
pygame.draw.rect(screen,green,[120,370,50,50],2)
pygame.draw.rect(screen,green,[170,320,50,50],2)
pygame.draw.rect(screen,green,[20,320,50,50],2)
pygame.draw.rect(screen,green,[70,370,50,50],2)
pygame.draw.rect(screen,green,[20,370,50,50],2)
pygame.draw.rect(screen,green,[70,320,50,50],2)
#sec3
pygame.draw.rect(screen,green,[220,220,50,50],2)
pygame.draw.rect(screen,green,[270,270,50,50],2)
pygame.draw.rect(screen,green,[220,270,50,50],2)
pygame.draw.rect(screen,green,[270,220,50,50],2)
pygame.draw.rect(screen,green,[320,220,50,50],2)
pygame.draw.rect(screen,green,[370,270,50,50],2)
pygame.draw.rect(screen,green,[320,270,50,50],2)
pygame.draw.rect(screen,green,[370,220,50,50],2)
#sec4
pygame.draw.rect(screen,green,[320,320,50,50],2)
pygame.draw.rect(screen,green,[370,370,50,50],2)
pygame.draw.rect(screen,green,[320,370,50,50],2)
pygame.draw.rect(screen,green,[370,320,50,50],2)
pygame.draw.rect(screen,green,[220,320,50,50],2)
pygame.draw.rect(screen,green,[270,370,50,50],2)
pygame.draw.rect(screen,green,[220,370,50,50],2)
pygame.draw.rect(screen,green,[270,320,50,50],2)
#start of text
text=font.render("Welcome to Find the Gold!", True, black)
screen.blit(text, [100,425])
score = 0
texta = font.render("Score:"+str(score), True, black)
screen.blit(texta,[480,50])
pygame.display.flip()
#end of drawing
clock.tick(20)
pygame.quit()
有人有什么想法吗?
非常感谢!
【问题讨论】:
-
首先...您可能想创建一个循环来帮助您绘制这些图块,这样代码的可读性会更高。