如何/在何处实施随机函数

时间:2015-02-22 03:51:11

标签: python random pygame

我在python中制作了2048,除了在每个用户转动后初始化下一个随机块之外,我对游戏的任何部分都没有任何问题。创建执行此操作的功能很简单,只需要随机更改块条目数组中的一个条目。我遇到的问题是它是一个随机函数,它在(游戏)循环中。这意味着它不断被调用,并继续提供不同的输出,这意味着它应该在只更改一次时不断更改数组。游戏循环本身发布在下面,应该是非常明显的。我关心的函数是addTile()函数。我曾想过跟踪if语句的时间,或者在某个地方存储随机函数的输出,但这似乎不起作用。我怎么能在需要的时候有选择地调用这个函数?

while not done:

screen.fill((0,0,0))
board()

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        done = 1

pressed = pygame.key.get_pressed()

if pressed[pygame.K_UP]:
    state = 1
if pressed[pygame.K_DOWN]:
    state = 2
if pressed[pygame.K_LEFT]:
    state = 3
if pressed[pygame.K_RIGHT]:
    state = 4

if state == 0:
    tiles(positions)
elif state == 1:
    positions = addTile(positions)
    positions = up(positions)
    tiles(positions)
elif state == 2:
    positions = down(positions)
    tiles(positions)
elif state == 3:
    positions = left(positions)
    tiles(positions)
elif state == 4:
    positions = right(positions)
    tiles(positions)

pygame.display.flip()
clock.tick(60)

1 个答案:

答案 0 :(得分:1)

即使你处理了按键,你的state仍然是1。在处理按键操作后,您应该将state设置回0