2017-09-26 5 views
0

Récemment, je me suis lancé dans la POO, un sujet très nouveau pour moi, et j'avais déjà fait un jeu de pong qui n'utilisait pas d'objets et je pensais faire un nouveau script avec des objets utilisés. Le problème est, quand je cours le code, il affiche un écran vide et je ne suis pas sûr de ce que j'ai fait mal (je suis encore nouveau à OOP). Quelqu'un peut-il aider?J'essaie d'utiliser la POO pour faire rebondir une balle dans un jeu de pong

import pygame 

class Ball(): 
    def __init__(self, x, y, xmove, ymove, color, size): 

     self.x = 0 
     self.y = 0 
     self.xmove = 0 
     self.ymove = 0 
     self.color = (255, 255, 255) 
     self.size = 10 

    def draw(self, screen): 

     pygame.draw.circle(screen, self.color, [self.x, self.y], self.size) 

    def ballmove(self): 

     self.x += self.xmove 
     self.y += self.ymove 

done = False 

pygame.init() 
WIDTH = 640 
HEIGHT = 480 
clock = pygame.time.Clock() 

screen = pygame.display.set_mode((WIDTH, HEIGHT)) 

ball = Ball(0, 0, 1.5, 1.5, [255, 255, 255], 10) 

while done != False: 

    screen.fill(0) 
    ball.ballmove() 
    ball.draw(screen) 

    pygame.display.update() 

Répondre

1

Je pense que vous avez utilisé une mauvaise condition dans votre boucle. Cela devrait signifier while done == False: ou while done != True:

Votre constructeur est également erroné. Le paramètre que vous donnez à la balle ne sera jamais défini, car vous avez initialisé tous les paramètres avec des valeurs par défaut. Utilisez ce constructeur à la place

def __init__(self, x, y, xmove, ymove, color, size): 

     self.x = x 
     self.y = y 
     self.xmove = xmove 
     self.ymove = ymove 
     self.color = color 
     self.size = size 
+0

Omg vous avez raison! Je viens de lire un livre de tutoriel et j'ai été confondu avec la définition des valeurs par défaut et l'attribution de variables avec des attributs. Merci beaucoup!! :RÉ –