2017-09-26 7 views
0

最近、私は非常に新しいトピックであるOOPに入ってしまいました。オブジェクトを使用していないポンゲームをすでに作っていました。オブジェクトを利用した新しいスクリプト。問題は、コードを実行すると空の画面が表示され、私が間違っていたことがわかりません(私はまだOOPを初めて使っています)。助けてもらえますか?ポンゲームでボールをバウンスするためにOOPを使用しよう

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() 

答えて

1

私はあなたのループに間違ったcondtionを使用したと思います。それは意味する必要がありますwhile done == False:またはwhile done != True:

あなたのコンストラクタは間違っています。すべてのパラメータをデフォルト値で初期化したため、ボールに与えたパラメータは決して設定されません。代わりにこのコンストラクタを使用してください

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

あなたは正しいです!私はちょうどチュートリアルの本を読んで、私はデフォルト値を設定し、属性を変数に割り当てることと混乱しました。どうもありがとうございます!! :D –