Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 简单pygame刺激中的对象延迟/远程传输_Python_Python 3.x_Pygame - Fatal编程技术网

Python 简单pygame刺激中的对象延迟/远程传输

Python 简单pygame刺激中的对象延迟/远程传输,python,python-3.x,pygame,Python,Python 3.x,Pygame,我试图创建一个简单的程序来刺激双星系统中恒星的旋转,但是当我运行这个程序时,其中一个“恒星”出现了小故障,实际上是在给定路径上传送到不同的位置。我怎样才能解决这个问题?代码如下: import pygame, sys, math, keyboard run = True black = (255, 255, 255) white = (0, 0, 0) angle = 0 size = width, height = 1550, 800 screen = pygame.display.set_

我试图创建一个简单的程序来刺激双星系统中恒星的旋转,但是当我运行这个程序时,其中一个“恒星”出现了小故障,实际上是在给定路径上传送到不同的位置。我怎样才能解决这个问题?代码如下:

import pygame, sys, math, keyboard

run = True
black = (255, 255, 255)
white = (0, 0, 0)
angle = 0
size = width, height = 1550, 800
screen = pygame.display.set_mode(size)
clock = pygame.time.Clock()
screen.fill(black)

while run:
    msElapsed = clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    def star1():
        global angle
        screen.fill(white)
        x = int(math.cos(angle) * 70) + 775
        y = int(math.sin(angle) * 100) + 400
        pygame.draw.circle(screen, black, (x, y), 10)
        pygame.display.flip()
        angle += 0.05


    def star2():
        global angle
        screen.fill(white)
        x = int(math.cos(angle) * 100) + 775
        y = int(math.sin(angle) * 70) + 400
        pygame.draw.circle(screen, black, (x, y), 10)
        pygame.display.flip()
        angle += 0.05

    star1()
    star2()

    if keyboard.is_pressed('Esc'):
        print("System Terminated ('ESC')")
        sys.exit(0)

pygame.quit()

问题是由
screen.fill(白色)
和对的多次调用引起的。该函数使用纯色填充整个曲面。在应用程序循环开始时调用fill一次。应用程序循环结束时的显示更新就足够了。多次调用
pygame.display.update()
pygame.display.flip()
会导致闪烁

从代码中删除对
pygame.display.flip()
的所有调用,但在应用程序循环结束时调用一次

您根本不需要
keboard
包。改用新的

运行时:
msepersed=时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
def star1():
全局角

#screen.fill(白色)@anurag on codereview它会在心跳的一瞬间被关闭为离题。不按预期工作的代码不存在。