gpt4 book ai didi

python - Pygame 屏幕宽度

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:18 26 4
gpt4 key购买 nike

我制作了一个程序,它会在您每次单击空格键时显示一个单词并播放声音效果。我的问题是,有时当单词被 blits 到屏幕时,它要么在屏幕中途 blits,要么在屏幕中途。我尝试使用一条声明,如果 x > 800 但我知道必须有更好的方法来做到这一点,我只是不知道它,非常感谢任何帮助!

import pygame, random, sys
from pygame.locals import *
pygame.init()
screen_size = ((800,600))
pygame.mixer.music.load("Derp.wav")
screen = pygame.display.set_mode(screen_size)
while True:
newSat = random.randint(1,100)
r = random.randint(1,255)
g = random.randint(1,255)
b = random.randint(1,255)
newSize = random.randint(1,50)
myfont = pygame.font.SysFont("Ubuntu", newSize)
derp = myfont.render("Derp",newSat,(r,g,b))
newX = random.randint(1,800)
newY = random.randint(1,600)
newSpot = random.randint(1,800)
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
if event.type == KEYDOWN:
if event.key == K_SPACE:
screen.blit(derp,(newX,newY))
pygame.mixer.music.play(0)
if event.key == K_ESCAPE:
sys.exit()
pygame.display.update()

最佳答案

没错!因此,为了确保您的 blitted 表面(在本例中为呈现的文本)始终位于屏幕内,您需要对随机生成设置一些限制!

derp = myfont.render("Derp",newSat,(r,g,b))
newX = random.randint(1,800 - derp.get_width())
newY = random.randint(1,600 - derp.get_height())

这样,无论文本大小如何,随机位置将始终在您的屏幕内 :)然后你就可以安全地 blit 你的文本了:

screen.blit(derp,(newX,newY))

希望对您有所帮助!

干杯,亚历克斯

关于python - Pygame 屏幕宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22616870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com