|
20鱼币
本帖最后由 flyps 于 2024-2-24 22:44 编辑
- import pygame
- import sys
- from pygame.locals import *
- pygame.init()
- size = width, height = 600, 400
- bg_colour = (255, 255, 255)
- fullscreen = False
- modes = pygame.display.list_modes()
- clock = pygame.time.Clock()
- bg = pygame.image.load("waterfall.jpg")
- pygame.display.set_caption("MyUndertale")
- bg_position = bg.get_rect()
- while True:
- for event in pygame.event.get():
- if event.type == QUIT:
- sys.exit()
- if event.type == KEYDOWN:
- if event.key == K_F4:
- fullscreen = not fullscreen
- if fullscreen:
- screen = pygame.display.set_mode(modes[0], FULLSCREEN | HWSURFACE)
- else:
- screen = pygame.display.set_mode(size)
- screen.fill(bg_colour)
- screen.blit(bg, bg_position)
- pygame.display.flip()
- clock.tick(100)
- #pygame.time.delay(10)
复制代码
问为什么程序运行以后会闪烁?在线等,急!
已经找到闪烁的原因,是在循环中每循环一次都要执行的 if fullscreen:
screen = pygame.display.set_mode(modes[0], FULLSCREEN | HWSURFACE)
else:
screen = pygame.display.set_mode(size)
将这部分代码移到按键判断里去,就能减少这段代码的执行次数
- import pygame
- import sys
- from pygame.locals import *
- pygame.init()
- size = width, height = 600, 400
- bg_colour = (255, 255, 255)
- fullscreen = False
- modes = pygame.display.list_modes()
- clock = pygame.time.Clock()
- bg = pygame.image.load("waterfall.jpg")
- pygame.display.set_caption("MyUndertale")
- bg_position = bg.get_rect()
- screen = pygame.display.set_mode(size)
- while True:
- for event in pygame.event.get():
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
- if event.type == KEYDOWN and event.key == K_F4:
- fullscreen = not fullscreen
- if fullscreen:
- screen = pygame.display.set_mode(modes[0], FULLSCREEN | HWSURFACE)
- else:
- screen = pygame.display.set_mode(size)
- screen.fill(bg_colour)
- screen.blit(bg, bg_position)
- pygame.display.flip()
复制代码
|
最佳答案
查看完整内容
已经找到闪烁的原因,是在循环中每循环一次都要执行的
将这部分代码移到按键判断里去,就能减少这段代码的执行次数
|