[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Game stutters



Ryan Charpentier wrote:
Hi, i'm currently working on a breakout clone and i'm pretty much done. However every few seconds the game freezes for like a split second, causing my game to stutter. It's not really a big deal but it is annoying. I stripped out everything except the code to make the ball bounce around the screen but it's still doing it. I'm using python 2.4.3 and pygame 1.7.1 on Windows XP.

Heres the code:


import pygame from pygame.locals import *

def main():
pygame.init()
screen = pygame.display.set_mode((640, 480))
screenRect = screen.get_rect()
clock = pygame.time.Clock()
#ball Variables
ballColour = (255, 0, 0)
ballX, ballY = screenRect.center
ballRadius = 5
ballSpeedX, ballSpeedY = 5, 5
ballRect = pygame.Rect (ballX, ballY, ballRadius * 2, ballRadius * 2)
ballImage = pygame.Surface((ballRadius * 2, ballRadius * 2))
pygame.draw.circle(ballImage, ballColour, (ballRadius, ballRadius), ballRadius)
while True:
#handle user input
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
return
#move ball
ballRect.move_ip(ballSpeedX, ballSpeedY)
#make sure ball stays within screen boundaries
if ballRect.left <= screenRect.left:
ballSpeedX = -ballSpeedX
elif ballRect.right >= screenRect.right:
ballSpeedX = -ballSpeedX
elif ballRect.top <= screenRect.top:
ballSpeedY = -ballSpeedY
elif ballRect.bottom >= screenRect.bottom:
ballSpeedY = -ballSpeedY
#clear screen
screen.fill((0, 0, 0))
#draw ball
screen.blit(ballImage, ballRect)
pygame.display.update()
clock.tick(40)


if __name__ == "__main__":
  main()
If the ball's just bouncing around why not do
screen.fill((0,0,0),ballRect)
screen.blit((ballImage,ballRect)
pygame.display.update(ballRect)