2013-10-14 25 views
0

我最近遇到了一個名爲PyGame Sprite的東西,並希望學會創建Pygame精靈,因爲它對我的項目非常有用。如何將函數分組到一個精靈並隨機定位它

這裏是我的代碼:

import pygame 
import sys 
from pygame.locals import * 

white = (255,255,255) 
black = (0,0,0) 

objs = [] 

MAIN_BUTTON = 1 

class Pane(pygame.sprite.Sprite): 
    def __init__(self): 
     pygame.init() 
     self.font = pygame.font.SysFont('Arial', 25) 
     pygame.display.set_caption('Box Test') 
     self.screen = pygame.display.set_mode((600,400), 0, 32) 
     self.screen.fill((white)) 
     pygame.display.update() 

    def addRect(self): 
     self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2) 
     pygame.display.update() 

    def addText(self): 
     self.screen.blit(self.font.render('Hello', True, (black)), (250, 115)) 
     pygame.display.update() 

    def delText(self): 
     self.screen = pygame.display.set_mode((600,400), 0, 32) 
     self.screen.fill((white)) 
     pygame.display.update() 

    def mousePosition(self): #Ignore this. 
     global clickPos 
     global releasePos 
     for event in pygame.event.get(): 
      if event.type == MAIN_BUTTON: 
       self.Pos = pygame.mouse.get_pos() 
       return MAIN_BUTTON 
      else: 
       return False 
    def groupSp(self): 
     pygame.sprite.Sprite.__init__(self, group) 

if __name__ == '__main__': 
    Pan3 = Pane() 
    Pan3.addRect() 
    Pan3.addText() 
    Pan3.mousePosition() 
    group = pygame.sprite.Group(Pan3.addRect(), Pan3.addText()) 
    Pan3.groupSp() 
    group.sprites() 
    while True: 
     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       pygame.quit(); sys.exit(); 

所以我想,如果你能集團想知道這兩個addRect(個體經營)和addText(個體經營)雪碧?如果有,是否有一種方法可以將它隨機放置在屏幕上?或者有更好的方法來做到這一點?

提前感謝您的時間。 :)

回答

1

您只想每個遊戲循環撥打pygame.display.update()一次。 (現在,如果你創建了兩個窗格,並在每個調用addText()兩次,這是每個環路4次更新)。

,如果你能集團都addRect(個體經營)和addText(個體經營)雪碧?

您可以將它們渲染到相同的表面,稍後在屏幕上繪製。

如果是的話,是否有方法可以將它隨機放置在屏幕上?

要隨機放置,使用random.randint() - https://stackoverflow.com/a/10667252/341744

pygame.sprite.Sprite .__的init __(自我,組)

這應該在你的構造Pane.__init__

+0

哦被稱爲好的謝謝 – PythonNovice

相關問題