2017-06-17 8 views
-2

私は上のキーを押したときに四角形がyの位置を変えない理由は分かりません。私は何の誤りもなく、すべてが現れている。Pygame、私の矩形が動かないのはなぜですか

def __init__(self, screensize): 

    self.screensize = screensize 

    self.center_x = int(screensize[0]*0.5) 
    self.center_y = int(screensize[1]*0.5) 

    self.width = 50 
    self.height = 50 

    self.rect = pygame.Rect(self.center_x-25, self.center_y-50, self.width, self.height) 

    self.color = (100, 255, 100) 

    self.speed = 10 

    self.direction = 0 

def update(self): 

    self.center_y += self.direction*self.speed 



def render(self, screen): 
    pygame.draw.rect(screen, self.color, self.rect, 0) 

DEF run_game(): pygame.init()

screensize = (640, 480) 


background_image = pygame.image.load('Sky_back_layer.png') 

screen = pygame.display.set_mode(screensize) 

clock = pygame.time.Clock() 

snake = SnekHead(screensize) 

running = True 

while running: 

    clock.tick(64) 

    for event in pygame.event.get(): 

     if event.type == KEYDOWN: 
      if event.key == K_ESCAPE: 
       running = False 

      elif event.key == K_UP: 
       snake.direction = -1 

    snake.update() 

    screen.blit(background_image, (0, 0)) 

    snake.render(screen) 

    pygame.display.flip() 

pygame.quit() 

run_game(pygame.localsインポート*

クラスSnekHead(オブジェクト)から

インポートpygameの )

+0

ので、あなたのコードを再投稿してみ読むのが簡単です。最初にコードを投稿し、それをすべて強調表示してから、コードボタンを押します。それはより良いフォーマットになります。 –

答えて

0

このクエストにご相談くださいn。キーを押した後のself.rectの値は何ですか? (あなたは、キーが押されたとき、あなたはsnake.center_yを更新snake.directionをデクリメントが、snake.rectは同じままで、それはあなたがあなたのrender()機能にpygame.draw.rect()に渡しているものですので、その矩形の位置を行います)

関連する問題