2014-02-05 147 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

相关问题