Pygame屏幕宽度

时间:2014-03-24 17:49:50

标签: python pygame

我制作了一个程序,只要单击空格键,就会显示一个单词并播放声音效果。我的问题是,有时当屏幕上的文字被点亮时,它会在屏幕中途或屏幕中间点亮一半。我尝试使用一个声明,如果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()

1 个答案:

答案 0 :(得分:2)

右键!因此,为了确保您的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))

希望有所帮助!,

干杯,亚历克斯