【问题标题】:Trying to get and display user input in pygame试图在pygame中获取和显示用户输入
【发布时间】:2013-03-05 12:12:41
【问题描述】:

我正在 pygame 中为我的课程制作一个与物理相关的程序。 主题是简谐运动,我的程序将(希望)显示一个简单的钟摆运动以及它的速度、加速度、位移等的所有相对值。 为了开始模拟,我要求用户输入一些关于这个钟摆运动的值,例如它的振幅、时间周期和它的弦长。

我的第一个问题是如何获得这个输入,而不是为每个场景编写代码(即如果 keydown = 1:、如果 keydown = 2:、如果 keydown = 3: 等等......)无论如何都可以概括整个整数列表,所以我可以说,如果 keydown 是一个整数,那么时间段 = 输入。

其次,我希望这种情况实时发生,这样一旦他们输入数字,他们就可以看到它并在按 Enter 确认之前对其进行修改,就像在普通表单上一样,我将如何在实时?

如果这些问题看起来真的很幼稚,我深表歉意,但到目前为止我所做的唯一计算机编程都非常具体到考试委员会的教学大纲,它不允许非常广泛的范围。

【问题讨论】:

  • @DavidKiger OP 询问从键码读取键,而不是 python 解释器

标签: pygame


【解决方案1】:

您可以指定翻阅编辑不同的属性。键入某些内容会调用钟摆上的重新启动方法。

至于数字,键码是按顺序排列的,所以你可以有一个 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

【讨论】:

    【解决方案2】:

    您可以让他们在启动时将这些值输入到终端中,然后有一个按钮可以冻结您的窗口并在他们单击时返回到终端以询问输入,如下所示:

    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")
            ...
    

    【讨论】:

      猜你喜欢
      • 2020-12-12
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多