[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Error On Pygame Simple Game
Your indentation was wrong--Python is whitespace sensitive, so you've
got to be careful. I recommend getting something like Emacs, which is
free, and "understands" Python, so that pressing tab will cycle through
the possible indentations. Here's the fixed version:
import sys, pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
ballrect = ballrect.move(speed)
if ball.rect.left < 0 or ball.rect.right > width:
speed[0] = -speed[0]
if ball.rect.top < 0 or ball.rect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ball.rect)
pygame.display.flip()
Also, I don't think using the ballrect variable works, you just have to
do ball.rect directly, unless at the end of every update you say
'ball.rect = ballrect'.
Good luck with pygame!
RR4CLB wrote:
Hi!
I am just getting started in Pygame and the simple program below dies on line 4. I suspect that the command 3D is the problem. So, is this format/syntax all wrong for learning pygame? Or is something not declared?
Simple Program:
import sys, pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ballrect)
pygame.display.flip()