Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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中闪烁的图形?只更新一次屏幕 将pygame导入为pg 从pygame.constants导入MOUSEBUTTONDOWN、MOUSEBUTTONUP 随机输入 第init页() 宽度=700 高度=700 屏幕=pg.display.set_模式((宽度、高度)) 屏幕填充(“白色”) boxIMG=pg.image.load('asteroid.png') rndCorner=[(0,0)、(0,700)、(700,0)、(700,700)] def draw_屏幕(): 障碍物=pg.绘制线(屏幕,(0,0,0),(随机选择(rndCorner)),(200200),2) def箱(x,y): 屏幕blit(boxIMG,(x,y)) def game_loop(): 运行=真 左键单击=错误 boxX=0 方形=0 时钟=pg.time.clock() 运行时: 屏幕填充(“白色”) 对于pg.event.get()中的事件: 如果event.type==pg.QUIT: 运行=错误 第页退出 如果event.type==MOUSEBUTTONDOWN: 如果event.button==1: 左键单击=真 如果event.type==MOUSEBUTTONUP: 如果event.button==1: 左键单击=错误 如果左键单击: boxX,boxY=pg.mouse.get_pos() boxX-=32.5 方形-=32.5 如果boxX635: boxX=635 elif boxY635: 方形=635 #更新屏幕 绘制屏幕() 盒子(长方体,长方体) pg.display.update() 时钟滴答(60) 博弈(循环)_Python_Pygame - Fatal编程技术网

Python 如何修复PyGame中闪烁的图形?只更新一次屏幕 将pygame导入为pg 从pygame.constants导入MOUSEBUTTONDOWN、MOUSEBUTTONUP 随机输入 第init页() 宽度=700 高度=700 屏幕=pg.display.set_模式((宽度、高度)) 屏幕填充(“白色”) boxIMG=pg.image.load('asteroid.png') rndCorner=[(0,0)、(0,700)、(700,0)、(700,700)] def draw_屏幕(): 障碍物=pg.绘制线(屏幕,(0,0,0),(随机选择(rndCorner)),(200200),2) def箱(x,y): 屏幕blit(boxIMG,(x,y)) def game_loop(): 运行=真 左键单击=错误 boxX=0 方形=0 时钟=pg.time.clock() 运行时: 屏幕填充(“白色”) 对于pg.event.get()中的事件: 如果event.type==pg.QUIT: 运行=错误 第页退出 如果event.type==MOUSEBUTTONDOWN: 如果event.button==1: 左键单击=真 如果event.type==MOUSEBUTTONUP: 如果event.button==1: 左键单击=错误 如果左键单击: boxX,boxY=pg.mouse.get_pos() boxX-=32.5 方形-=32.5 如果boxX635: boxX=635 elif boxY635: 方形=635 #更新屏幕 绘制屏幕() 盒子(长方体,长方体) pg.display.update() 时钟滴答(60) 博弈(循环)

Python 如何修复PyGame中闪烁的图形?只更新一次屏幕 将pygame导入为pg 从pygame.constants导入MOUSEBUTTONDOWN、MOUSEBUTTONUP 随机输入 第init页() 宽度=700 高度=700 屏幕=pg.display.set_模式((宽度、高度)) 屏幕填充(“白色”) boxIMG=pg.image.load('asteroid.png') rndCorner=[(0,0)、(0,700)、(700,0)、(700,700)] def draw_屏幕(): 障碍物=pg.绘制线(屏幕,(0,0,0),(随机选择(rndCorner)),(200200),2) def箱(x,y): 屏幕blit(boxIMG,(x,y)) def game_loop(): 运行=真 左键单击=错误 boxX=0 方形=0 时钟=pg.time.clock() 运行时: 屏幕填充(“白色”) 对于pg.event.get()中的事件: 如果event.type==pg.QUIT: 运行=错误 第页退出 如果event.type==MOUSEBUTTONDOWN: 如果event.button==1: 左键单击=真 如果event.type==MOUSEBUTTONUP: 如果event.button==1: 左键单击=错误 如果左键单击: boxX,boxY=pg.mouse.get_pos() boxX-=32.5 方形-=32.5 如果boxX635: boxX=635 elif boxY635: 方形=635 #更新屏幕 绘制屏幕() 盒子(长方体,长方体) pg.display.update() 时钟滴答(60) 博弈(循环),python,pygame,Python,Pygame,因此,我遇到了一个问题,在调用“draw_Screen()”时,我画的线在闪烁。我尝试使用doublebuf,但这并没有解决我的问题。如果你想知道我想实现什么,我试图在按住左键的同时移动盒子(主要玩家),因此“如果左键点击”,你可以在每一帧中选择一个新的随机角点坐标。这会导致闪烁。拾取一次随机角点,并在每个帧中使用相同的坐标: random\u corner=random.choice(rndCorner) def draw_屏幕(): 障碍物=pg.绘制线(屏幕,(0,0,0),随机角,(20

因此,我遇到了一个问题,在调用“draw_Screen()”时,我画的线在闪烁。我尝试使用doublebuf,但这并没有解决我的问题。如果你想知道我想实现什么,我试图在按住左键的同时移动盒子(主要玩家),因此“如果左键点击”,你可以在每一帧中选择一个新的随机角点坐标。这会导致闪烁。拾取一次随机角点,并在每个帧中使用相同的坐标:

random\u corner=random.choice(rndCorner)
def draw_屏幕():
障碍物=pg.绘制线(屏幕,(0,0,0),随机角,(200,200),2)

你每帧从角落到中间(ish)随机画一条线,每秒60次,然后用白色填充屏幕,然后再画另一条,难怪它们会闪烁。你想用角落里的线做什么?
import pygame as pg
from pygame.constants import MOUSEBUTTONDOWN, MOUSEBUTTONUP
import random

pg.init()
WIDTH = 700
HEIGHT = 700

screen = pg.display.set_mode((WIDTH, HEIGHT))
screen.fill("white")

boxIMG = pg.image.load('asteroid.png')

rndCorner = [(0, 0), (0, 700), (700, 0), (700, 700)]

def draw_screen():
    obstacle = pg.draw.line(screen, (0, 0, 0), (random.choice(rndCorner)), (200, 200), 2)

def box(x, y):
    screen.blit(boxIMG, (x, y))

def game_loop():
    
    running = True
    left_clicking = False
    boxX = 0
    boxY = 0
    clock = pg.time.Clock()
    
    while running:            
        screen.fill("white")
        for event in pg.event.get():
            if event.type == pg.QUIT:
                running = False
                pg.quit()
                
            if event.type == MOUSEBUTTONDOWN:
                if event.button == 1:
                    left_clicking = True
                    
            if event.type == MOUSEBUTTONUP:
                if event.button == 1:
                    left_clicking = False
                    
        if left_clicking:
            boxX, boxY = pg.mouse.get_pos()
            boxX -= 32.5
            boxY -= 32.5
            
            if boxX < 0:
                boxX = 0
            elif boxX > 635:
                boxX = 635
            elif boxY < 0:
                boxY =  0
            elif boxY > 635:
                boxY = 635
                
        # Update Screen
        draw_screen()
        box(boxX, boxY)
        pg.display.update()
        
        clock.tick(60)
                    
game_loop()