2016-05-16 1 views
0

У меня возникли проблемы с получением детектора столкновения для работы в игре в понг без необходимости менять все классы (спрайт, рендер).Как добавить детектор столкновения в мою игру в понг в pygame

Я видел некоторые полезные темы здесь, в StackOverflow, но я не могу заставить их работать.

#Create a class named sprite to use for the paddles and the ball. 
class Sprite(): 
    def __init__(self,x,y,width,height,color): 

     self.x = x 

     self.y = y 

     self.width = width 

     self.height = height 

     self.color= (255,255,255) 
#attirbute for drawing the sprite(s) to the screen 
    def render(self): 
     pygame.draw.rect(screen,self.color,(self.x,self.y,self.width,self.height)) 
#Create the sprites  
Paddle1 = Sprite(50,175,25,150,color[0]) 
Paddle2 = Sprite(650,175,25,150,color[1]) 
Ball = Sprite(300,250,25,25, color[2]) 
#Set the Sprite's color(s) 
Paddle1.color = color[0] 
Paddle2.color = color[1] 
Ball.color = color[2] 
#Variables used for moving the paddles 
moveY1,moveY2=0,0 
#### Spot where my collision detector goes#### 

#### Code for drawing and moving the paddles#### 
    Paddle1.y += moveY1 
    Paddle1.render() 
    Paddle2.y += moveY2 
    Paddle2.render() 
    #Draw the Ball 
    Ball.render() 
+0

В чем конкретный вопрос? можете ли вы сохранить все время, упростив код, чтобы показать только этот вопрос? – rleir

+0

Мой вопрос: «Как я могу добавить детектор столкновения в эту игру в понг, используя pygame? Предпочтительно, не меняя имена классов и т. Д.». –

ответ

0

Это рабочий фрагмент для игры в понг, который я сделал с pygame. Я также сделал для второго бампера, но пропустил, чтобы сэкономить место, поскольку его почти то же самое

def check_bumpers_collision(self): 
    if (self.ball.pos_x < self.bumper_one.pos_x + self.bumper_one.width and 
     self.ball.pos_x + self.ball.size > self.bumper_one.pos_x and 
     self.ball.pos_y < self.bumper_one.pos_y + self.bumper_one.height and 
     self.ball.pos_y + self.ball.size > self.bumper_one.pos_y): 
     # Change Ball X moving direction 
     self.ball.speed_x *= -1 
     # Change Y ball Speed 
     if self.bumper_one.moving_up: 
      self.ball.speed_y -= 5 
     elif self.bumper_one.moving_down: 
      self.ball.speed_y += 5 

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

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