2013-06-04 5 views
0

Я пишу основную игру Dodge Dodge, и мне нужно блистать маленькими звездами, чтобы увернуться. я сделал это так, что когда одна звезда покидает экран это БЛИЦ снова сверху>, который работает, но БЛИЦ его в том же х положениеBlitting in new x position Pygame

Вот код обновления, который перемещает звезду:

def update(self): 
    self.mouse_pos = pygame.mouse.get_pos() 
    (self.player_r.x, self.player_r.y) = self.mouse_pos 

    self.star_r.x = ran_x 
    self.star_r.y += 2 
    if self.star_r.y > 640: 
     self.star_r.y = 0 

Вот где звезда получает выведено:

def blitPlayer(self, screen): 
    screen.blit(background,(0,0)) 
    screen.blit(self.player,(self.mouse_pos)) 
    screen.blit(self.star,(ran_x, self.star_r.y)) 

Я определяю ran_x вне класса в верхней части, как это:

ran_x = random.randint(10,470) 

То, что я думаю, происходит в том, что когда я запускаю его, ran_x определяется одним случайным числом, а затем сохраняет его, но я хочу, чтобы он менялся каждый раз, когда звезда покидает экран.

Спасибо заранее!

-ChristianCareaga

ответ

1

Тогда почему бы не пересчитывать ran_x здесь:

if self.star_r.y > 640: 
    self.star_r.y = 0 
    ran_x = new random number 
+0

да, что нужно сделать, это вы думаете, есть простой способ блитирования как 2 или 3, в то время вместо одного – Serial

+1

@ Christian Careaga Сделайте 'ran_x' переменную экземпляра, а не статическую или глобальную. например каждая звезда должна быть связана со своим значением для координаты x, поэтому 'star.ran_x' – Patashu

 Смежные вопросы

  • Нет связанных вопросов^_^