首页 > 解决方案 > 为什么精灵没有出现在pygame中?

问题描述

我不太确定我在哪里出错了,但我现在只尝试了一天的 pygame,所以放轻松!哈哈。它只是不会出现,我必须设置错误或丢失的属性或其他东西,对吗?我不知道。

screenw = 800
screenh = 800
speed = 1
size = (screenw, screenh)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("okay attempt number one")

#add the circle bird
birds = pygame.sprite.Group()

playerBird = Bird(PURPLE, 20, 20, 40)
playerBird.rect.x = 200
playerBird.rect.y = 200

#add circlebird to sprite list
birds.add(playerBird)

running = True
clock=pygame.time.Clock()
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            playerBird.moveLeft(5)
        if keys[pygame.K_RIGHT]:
            playerBird.moveRight(5)
        if keys[pygame.K_UP]:
            speed += 0.05
        if keys[pygame.K_DOWN]:
            speed -= 0.05
        if playerBird.rect.x < 0:
            playerBird.rect.x = 0
        if playerBird.rect.x > 780:
            playerBird.rect.x = 780
        if playerBird.rect.y < 0:
            playerBird.rect.y = 0
        if playerBird.rect.y > 770:
            playerBird.rect.y = 770
        screen.fill(BLACK)
        pygame.draw.rect(screen, GREY, [0, 0, 800, 100], 0)
        pygame.draw.rect(screen, GREY, [0, 650, 800, 200], 0)
        birds.update(screen)
        birds.draw(screen)
        pygame.display.flip()
        clock.tick(30)

编辑:

这是Bird课程,我只是在拼凑一些东西,并试图让它出现。

import pygame
PURPLE = (255, 0, 255)

class Bird(pygame.sprite.Sprite):
    def __init__ (self,color,width,height,speed):
        super().__init__()
        self.width = width
        self.height = height
        self.image = pygame.Surface([width, height])
        self.image.fill(PURPLE)
        self.image.set_colorkey(PURPLE)
        self.color = color
        self.speed = speed
        pygame.draw.rect(self.image, color, [400, 400,50, 50])
        self.rect = self.image.get_rect()
    def moveRight(self, pixels):
        self.rect.x += pixels
    def moveLeft(self, pixels):
        self.rect.x -= pixels
    def moveForward(self, pixels):
        self.rect.y -= pixels
    def moveBackward(self, pixels):
        self.rect.y += pixels
    def changeSpeed(self, speed):
        self.speed = speed

标签: pythonpygamesprite

解决方案


推荐阅读