我正在开发一个简单的图形程序,该程序在控制台中接受用户命令,然后有一个pygame窗口在窗口中显示结果。到目前为止,当我设置硬编码命令时,我已经让它工作了,但现在我试图让它接受用户输入,它遇到了问题。
游戏循环内部:
while True:
command = input("Enter a command: " + "n"
"1: input" + "n"
"2: apply transformation" + "n"
"3: display pixels" + "n"
"4: output" + "n"
"5: basic translate" + "n"
"6: basic scale" + "n"
"7: basic rotate" + "n"
"8: scale" + "n"
"9: rotate" + "n"
"Command: ")
command = int(command)
if command == 1:
num = Inputlines(datalines, num)
elif command == 2:
datalines = ApplyTransformation(matrix, datalines)
elif command == 3:
Displaypixels(datalines, num)
pygame.display.update()
elif command == 4:
Outputlines(datalines, num)
elif command == 5:
Tx = int(input("Input a Tx value: "))
Ty = int(input("Input a Ty value: "))
matrix = BasicTranslate(Tx, Ty)
elif command == 6:
Sx = int(input("Input an Sx value: "))
Sy = int(input("Input an Sy value: "))
matrix = BasicScale(Sx, Sy)
elif command == 7:
angle = int(input("Input an Sx value: "))
matrix = BasicRotation(angle)
elif command == 8:
Sx = int(input("Input an Sx value: "))
Sy = int(input("Input an Sy value: "))
Cx = int(input("Input a Cx value: "))
Cy = int(input("Input a Cy value: "))
matrix = Scale(Sx, Sy, Cx, Cy)
elif command == 9:
angle = int(input("Input an angle value: "))
Cx = int(input("Input a Cx value: "))
Cy = int(input("Input a Cy value: "))
matrix = Rotate(angle, Cx, Cy)
else:
print("Not a valid command")
这基本上只是用户从控制台中选择功能的一种方式。函数在大多数情况下都能工作,但当命令=3时就会出现问题它应该调用Displaypixels,这只是一个将所需像素添加到控制台中的函数。然后我调用pygame.display.update((来更新屏幕,但什么也没发生。
屏幕上显示"没有回应"。我仍然可以通过控制台继续这个程序,但什么都不起作用。也许我误解了pygame.display.update((的用途?
我们非常感谢任何帮助或建设性的批评。谢谢你抽出时间。
您应该使用pygame.event.get((来使用系统中的鼠标/任意键。。。。。由于程序挂起,有时系统会终止进程,因此您也应该检查系统中的显示像素