简体   繁体   English

空白的 Pygame 屏幕

[英]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请帮忙

You've to crate an PlayerClass object and you've to add the pygame.sprite.Sprite to apygame.sprite.Group :您必须创建一个PlayerClass对象,并且必须将pygame.sprite.Sprite添加到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() ).在主循环中,您必须更新玩家的位置( player.move() )。 Clear the display, draw the sprites and update the display (eg by pygame.display.update() ):清除显示,绘制精灵并更新显示(例如通过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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM