2012-01-11 48 views
0

我不能讓我的精靈Ball類獲取KEYDOWN/KEYUP事件的值從主循環中的「else」語句更新自己。下面是主循環代碼和球類:如何讓這個精靈類與我的主循環(Pygame)

class Ball(): 
    def __init__(self): 
     global ball 
     ball = pygame.sprite.Sprite() 
     ball.image = pygame.image.load('red_ball.png').convert() 
     ball.rect = ball.image.get_rect() 
     ball.image.set_colorkey((white)) 

    def event_handle(self, event): 
     x,y = 285, 430 
     m_x, m_y = 0,0 
     if event.type == KEYDOWN: 
      if event.key == K_a: 
        m_x = -4 
      elif event.key == K_d: 
        m_x = +4 
      if event.type == KEYUP: 
       if event.key == K_a: 
         m_x = 0 
       elif event.key == K_d: 
         m_x = 0 

     x+= m_x 
     y+= m_y 
     if x > 640: 
      x = 0 
     if x < 0: 
      x = 640 
    def update(self): 
     screen.blit(ball.image,(x,y)) 
     pygame.display.update() 

def main(): 
    m_x, m_y = 0,0 
    while True: 
     ball = Ball() 
     screen.blit(background, (0,0)) 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       pygame.quit() 
       sys.exit() 
      else: 
       ball.event_handle(event) 
     ball.update() 
     pygame.display.update() 
+0

..... * facepalm * – 15H 2012-01-11 13:20:59

回答

1

我沒有比河旁1繼續讀下去......這球應該從sprite.Sprite

正如我所說的別的地方你繼承應該閱讀一些教程。我沒有時間去找到一個精靈,但如果我找到了一次,你也應該能夠找到它。祝你好運 !

0

的問題是,你有這樣的:

if key down: 
    if k=a: 
     do stuff 
    if k=s: 
     do stuff 
    ***if k up: 
      do stuff*** 

你需要,如果,如果按下按鍵之外k上一動。現在你要說的是,如果鑰匙已關閉,並且鑰匙已關閉,請在鑰匙關閉時按照自己的意願進行操作。