Pygame:每 2 秒移动一次距离

问题描述

我试图在指定的时间内将一条线移动一段距离。到目前为止的基本代码是这样的:

    ticks = 0
    aud_time_ms = int(self.AUD_MAN.get_aud_length(selected_aud,milleseconds=True))
    selected_img_width = self.get_img_size(selected_img)[1]

    while self.RUNNING:
        # start with filling screen
        self.WIN.fill(WHITE)

        # blit audio wave images
        self.WIN.blit(ref_wave_img,ref_wave_rect)

        # blit text
        self.WIN.blit(controls_text_surf,(10,0))

        # blit moving line
        pg.draw.rect(self.WIN,RED,self.LINE_RECT)

        if(self.AUD_FINISHED):
            self.WIN.blit(aud_finished_text_surf,(100,100))

        if(self.PLAYING_AUD):
            self.move_ref_aud_line(self.LINE_DX,ticks)
        

        # check events
        for event in pg.event.get():

            if event.type == aud_finished_event:
                self.AUD_FINISHED = True

            # check key presses
            elif event.type == pg.KEYDOWN:
                # check if key pressed == "r",then we record
                if event.key == pg.K_r:
                    # reset the audio
                    self.AUD_FINISHED = False
                    self.PLAYING_AUD = True
                    pg.time.set_timer(aud_finished_event,aud_time_ms)

                    self.move_ref_aud_line(dx=self.LINE_DX,ticks=ticks)

                    print("R")
                # check if key press == "p",then we play the audio
                elif event.key == pg.K_p:
                    # reset the audio
                    self.AUD_FINISHED = False
                    pg.time.set_timer(aud_finished_event,aud_time_ms)

                    print("P")
            


            # if event is quit,quit
            if event.type == pg.QUIT:
                self.RUNNING = False


        # update the surf
        pg.display.update()
        self.CLOCK.tick(30)
        ticks = self.CLOCK.tick(60)
    
    pg.quit()

基本上,我希望我的 self.LINE_RECT 以速度 self.LINE_DX 在时间长度 aud_time_ms 内移动距离 selected_img_width。

我怎样才能做到这一点,以便在按下“p”时,一条线会在 2 秒内完全穿过图像?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)