【发布时间】:2018-12-08 18:03:31
【问题描述】:
我正在创建游戏 2048 并且处于此过程的早期阶段,但已经遇到了一个让我完全困惑的问题。 这是我的主要功能(忽略缩进错误,我是stackoverflow的新手)
def main():
while True:
#Process input
for event in pygame.event.get():
if event.type == pygame.QUIT:
closeGame()
if event.type == pygame.KEYDOWN and event.key == keyESC:
closeGame()
if event.type == pygame.KEYDOWN and event.key == keyLEFT:
gameArray[3][2] = 1
drawGame()
我希望在按下我的左按钮(在其他地方用 keyLEFT = (pygame.K_LEFT) 定义)后更改 gameArray[3][2] = 1 中提到的变量。
那我就有这个函数来绘制游戏了
def drawGame():
screen.fill(WHITE)
pygame.draw.rect(screen, BLACK, (0, 0, 450, 450), 0)
# Printing the rows
for i in range (4):
# Printing the cells
for j in range (4):
pygame.draw.rect(screen, getColour(gameArray[i][j]), (tileGAP + ((tileSPACE) * j), tileGAP + (tileSPACE * i), tileWIDTH, tileWIDTH), 0)
pygame.display.flip()
我的问题是为什么按下左键后gameArray[3][2]的平方没有改变? 抱歉,如果我设置得很糟糕,我是新手。
【问题讨论】:
-
你在哪里声明gameArray?这可能是一个范围问题,其中 gameArray 在一个特定函数中声明,而其他函数无法访问或修改它。
-
就在程序的最开始,甚至在任何函数定义之前