我正在继续一个Hangman项目,我遇到了一个for循环的问题,并在其中执行了一个函数。例如,如果您按一个名为“CANADA”的级别并按“B”,因为在加拿大没有Bs,它应该绘制刽子手的第一行。这就是我目前所做的:
def hangman1():
pygame.draw.line(screen, black, (775, 250), (775, 50), (4))
def hangman2():
pygame.draw.line(screen, black, (750, 250), (800, 250), (4))
def hangman3():
pygame.draw.line(screen, black, (775, 50), (925, 50), (4))
def hangman4():
pygame.draw.line(screen, black, (925, 50), (925, 175), (4))
def hangman5():
pygame.draw.circle(screen, black, (925, 100), 30, (0))
def hangman6():
pygame.draw.line(screen, black, (925, 125), (925, 200), (4))
def hangman7():
pygame.draw.line(screen, black, (885, 160), (965, 160), (4))
def hangman8():
pygame.draw.line(screen, black, (925, 200), (900, 225), (4))
def hangman9():
pygame.draw.line(screen, black, (925, 200), (950, 225), (4))
再加一点代码。。。在
^{pr2}$然后。。。在
hangman = [hangman1, hangman2, hangman3, hangman4, hangman5, hangman6, hangman7, hangman8, hangman9]
for linebyline in hangman:
稍后。。。在
elif b1.collidepoint(pygame.mouse.get_pos()):
letter = letters[1]
check = country.count(letter)
if check >= 1:
if letter == letters[0]:
aPosition = 325, 235
a3 = screen.blit((a), (375, 235))
a4 = screen.blit((a), (425, 235))
a1.x, a1.y = -500, -500
elif letter == letters[2]:
cPosition = 300, 235
c1.x, c1.y = -500, -500
elif letter == letters[13]:
nPosition = 450, 235
n1.x, n1.y = -500, -500
elif letter == letters[3]:
dPosition = 600, 235
d1.x, d1.y = -500, -500
else:
b2 = font.render(str(letters[1]), True, (red))
screen.blit(b2, (485, 325))
linebyline()
time.sleep(0.5)
bPosition = -500, -500
b1.x, b1.y = -500, -500
当我按B键时,它变成红色,0.5秒后它消失了,但它没有画线。有什么帮助吗?在
编辑:我用另一个模块做了一些测试,这个功能可以很好地打印普通文本。但是当我用drawing(Pygame)再次测试它时,它是有效的,但是当组合其他东西(比如time.sleep()
)时,它会显示一个白色屏幕。当与print
结合时,绘图功能不起作用,但打印工作正常。另外,如果我添加了一个time.sleep(1)
,它将有一个黑屏整整9秒钟,而不做任何其他事情。这是我的测试代码:
import pygame, sys, random, time
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1000, 700))
pygame.display.set_caption("Hangman: Countries")
black = 0, 0, 0
def hangman1():
pygame.draw.line(screen, black, (775, 250), (775, 50), (4))
print 'test'
def hangman2():
pygame.draw.line(screen, black, (750, 250), (800, 250), (4))
print 'test somethin'
def hangman3():
pygame.draw.line(screen, black, (775, 50), (925, 50), (4))
print 'test something else'
def hangman4():
pygame.draw.line(screen, black, (925, 50), (925, 175), (4))
print 'eggs'
def hangman5():
pygame.draw.circle(screen, black, (925, 100), 30, (0))
print 'hangman'
def hangman6():
pygame.draw.line(screen, black, (925, 125), (925, 200), (4))
print 'facebook'
def hangman7():
pygame.draw.line(screen, black, (885, 160), (965, 160), (4))
print 'internet'
def hangman8():
pygame.draw.line(screen, black, (925, 200), (900, 225), (4))
print 'more tests'
def hangman9():
pygame.draw.line(screen, black, (925, 200), (950, 225), (4))
print 'cheese'
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
screen.fill((255, 255, 255))
list1 = [hangman1(), hangman2(), hangman3(), hangman4(), hangman5(), hangman6(), hangman7(), hangman8(), hangman9()]
for greet in list1:
greet
time.sleep(1)
pygame.display.flip()
它在shell中同时打印出一堆单词,然后在9秒钟后屏幕变为hangman完全绘制,同样的一组单词又出现了。有什么想法,有没有在Pygame有经验的人?在
我刚做了一个正常的刽子手程序。也许看看这个逻辑会有帮助:
忽略此项:
一些枚举:
^{pr2}$游戏逻辑-如果你在思考《刽子手》的规则时有困难,请看这一部分(为了让它在空格中完全正确运行,为了更容易理解,我省略了一些内容):
交互式循环:
演示游戏:
相关问题 更多 >
编程相关推荐