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