我正在pygame中为我的课程制作一个与物理相关的程序。 主题是简单的谐波运动,我的程序将(希望)显示一个简单的钟摆运动以及它的速度,加速度,位移等所有相对值。 为了开始模拟,我要求用户输入一些关于这个摆的运动的值,例如它的振幅,时间段和它的长度。
我的第一个问题是我如何得到这个输入,而不是为每个场景编写代码(例如,如果keydown = 1 :,如果keydown = 2 :,如果keydown = 3:等等......)无论如何都要进行推广完整的整数列表,所以我可以说,如果keydown是一个整数,那么时间段=输入。
其次我希望这是实时发生的,这样一旦他们输入数字,他们就可以看到它并修改它,然后按回车确认它,就像你在普通形式上一样,我怎么会在实时?
如果问题看起来很幼稚,我很抱歉,但到目前为止,我所做的唯一计算机编程对考试大纲非常具体,但考试范围很广。
答案 0 :(得分:0)
您可以指定翻阅编辑不同的属性。键入内容会调用钟摆上的重启方法。
至于数字,键码是有序的,所以你可以有一个if语句来查看它是否在0到9之间。这样的事情:
for event in pygame.event.get():
if event.type == KEYDOWN and event.key >= K_0 and event.key <= K_9:
key = event.key - K_0
答案 1 :(得分:0)
你可以让他们在启动时将这些值输入终端,然后有一个按钮冻结你的窗口并返回到终端,当他们点击它时询问输入,如下所示:
int amplitude = raw_input("enter the amplitude")
int length = raw_input("enter the length of the string")
...
while(true) //main loop
if changevariables:
int amplitude = raw_input("enter the new amplitude")
...