UrDistraction
UrDistraction

Reputation: 79

Blank Pygame screen

I know that is not really a blank screen, but now I have a problem. It takes forever to load the game. Everytime I close the window, it fully loads???? If u need code, ask.

please help

Upvotes: 2

Views: 84

Answers (1)

Rabbid76
Rabbid76

Reputation: 210889

You've to crate an PlayerClass object and you've to add the pygame.sprite.Sprite to a pygame.sprite.Group:

player = PlayerClass('player_1_0.png', [5, 0])

all_sprites = pygame.sprite.Group()
all_sprites.add(player)

In the main loop you've to updat the position of the player (player.move()). Clear the display, draw the sprites and update the display (e.g. by pygame.display.update()):

while running:

    # [...]

    player.move()    

    screen.fill([255, 255, 255]) 
    all_sprites.draw(screen)
    pygame.display.update()

Working example:

import pygame, sys

screen = pygame.display.set_mode([640,480])
clock = pygame.time.Clock()

class PlayerClass(pygame.sprite.Sprite): 
    def __init__(self, image_file, speed, location = [0,0]): 
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(image_file)
        self.rect = self.image.get_rect() 
        self.rect.center = [320, 100] 
        self.speed = speed
        self.angle = 90

    def move(self): 
        global points, score_text
        self.rect = self.rect.move(self.speed) 
        if self.rect.left < 0 or self.rect.right > screen.get_width():
            self.speed[0] = -self.speed[0]  

        if self.rect.top <= 0 : 
            self.speed[1] = -self.speed[1] 
            points = points + 1 
            score_text = font.render(str(points), 1, (0, 0, 0)) 

player = PlayerClass('player_1_0.png', [5, 0])

all_sprites = pygame.sprite.Group()
all_sprites.add(player)

running = True
while running:
    clock.tick(60)

    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            running = False

    player.move()    

    screen.fill([127, 127, 127])
    all_sprites.draw(screen)
    pygame.display.update()

pygame.quit()

Upvotes: 2

Related Questions