2014-02-05 151 views
1
import pygame, random, time 

class Game(object): 
    def main(self, screen): 
     bg = pygame.image.load('data/bg.png') 
     select = pygame.image.load('data/select.png') 
     block1 = pygame.image.load('data/enemy1.png') 
     clock = pygame.time.Clock() 

     while 1: 
      clock.tick(30) 

      spriteList = [] 

      for event in pygame.event.get(): 
       if event.type == pygame.QUIT: 
        return 
       if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: 
        return 
      if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE: 
       spriteList.append(block1, (0, 0)) 

      mouse = pygame.mouse.get_pos() 
      print(mouse) 
      screen.fill((200, 200, 200)) 
      screen.blit(bg, (0, 0)) 
      screen.blit(select, (mouse)) 
      for sprite in spriteList: 
       screen.blit(sprite[0], sprite[1]) 

      pygame.display.flip() 

if __name__ == '__main__': 
    WINDOWWIDTH = 640 
    WINDOWHEIGHT = 480 
    pygame.init() 
    screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) 
    pygame.display.set_caption('Sandbox') 
    Game().main(screen) 

我試圖讓它在你移動鼠標的地方跟着它。然後,當您單擊空格鍵時,將「放置」一個圖像放在空間處,然後將其放在那裏,並且可以將其他圖像放置在其他位置,而不會影響第一個圖像。我嘗試使用spriteList,但我對從這裏走到哪裏感到困惑。 當我運行它時,我收到一個錯誤消息:.append() takes one argument (2 given)Pygame當你按下一個按鍵時,如何「放置」圖像

回答

1

將元組添加到列表中。另外,存儲鼠標位置,不是(0,0)。更改

spriteList.append(block1, (0, 0)) 

spriteList.append((block1, mouse)) 

此外,您還可以重寫

for sprite in spriteList: 
      screen.blit(sprite[0], sprite[1]) 

for (img, pos) in spriteList: 
      screen.blit(img, pos) 
+0

謝謝!它顯示鼠標在哪裏的block1,但是當我停止按下空格鍵時沒有。有沒有一種方法可以讓它將block1放在鼠標的位置並在釋放空格鍵後停留在那裏? – OverRatedProgrammer

+0

是的,在* while循環之前放置'spriteList = []'*行。否則,你可以清除每一幀的列表。 – sloth

+0

非常感謝兄弟! – OverRatedProgrammer

相關問題