2014-03-24 218 views
2

我做了一個程序,顯示一個單詞並在您每次點擊空格鍵時播放音效。我的問題是,有時候這個單詞被屏蔽到屏幕上時,它會在屏幕的一半或屏幕的一半處閃爍。我嘗試使用一個聲明,如果x> 800,但我知道必須有更好的方式來做到這一點,我只是不知道任何幫助,非常感謝!Pygame屏幕寬度

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() 

回答

2

對!所以,爲了確保你的盲點表面(在這種情況下呈現的文字)將永遠在屏幕內,你需要在你的隨機世代中加入一些限制!

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

這樣無關文字的大小,隨機位置永遠是你的屏幕:) 內,然後就可以放心地位塊傳輸文本:

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

希望這有助於!

乾杯,亞歷克斯

+0

工程像一個魅力非常感謝!你的解釋也很有幫助! – Gumpy