为什么我在Pygame中编码Pong时不能显示球?

问题描述:

我是编码Pygame的新手。我的第一项任务是编码PONG game。但是,我发现两个球不能在屏幕上显示。我不知道原因。我会提供我的代码。谢谢!另外,最后一行有error。不过,我只是从Pygame文档复制我不知道为什么它存在一个error为什么我在Pygame中编码Pong时不能显示球?

import pygame,sys,time 

# Open a brand-new window 
pygame.init() 


Screen_size = (500,400) 
Title = ('Pong') 
Frame_Delay = 0.01 
Surface= pygame.display.set_mode(Screen_size,0,0) 
pygame.display.set_caption(Title) 
# Set up white color for drawing balls 
white=pygame.Color('white') 
# Now, we start to draw two balls 
pos1=(100,200) 
pos2=(400,200) 
rad=50 
ball1=pygame.draw.circle=(Surface,white,pos1,rad,0) 
ball2=pygame.draw.circle=(Surface,white,pos2,rad,0) 
pygame.display.update() 
# Now, define speed 
speed=[2,2] 
# Now, we define a loop 
while ball1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: sys.exit() 

的语法错误会显示以下

Traceback (most recent call last): 
    File "/tmp/guest-54jjJ1/Desktop/pong.py", line 24, in <module> 
    if event.type == pygame.QUIT: sys.exit() 
builtins.SystemExit: 
+0

不是真的这个问题,而是阅读了pep8。 – cmd

这是你的问题:

ball1=pygame.draw.circle=(Surface,white,pos1,rad,0) 
ball2=pygame.draw.circle=(Surface,white,pos2,rad,0) 

你不应该被设定功能=一个元组。你应该叫draw.circle()这样的:

ball1 = pygame.draw.circle(Surface, white, pos1, rad, 0) 
ball2 = pygame.draw.circle(Surface, white, pos2, rad, 0) 

顺便说一句,它真的不好的形式来调用一个变量Surface。这是一个班级的名字pygame

试试这个

while ball1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      sys.exit() 

移动sys.exit()下可以在许多情况下帮助。

+0

谢谢。但我仍然看不到那两个球。我能知道原因吗? –

+0

pep8很好,但这不是它不工作的原因。 – cmd

缩进,队友.....

while ball1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
     sys.exit()