0
from __future__ import division
import math
import sys
import pygame


class MyGame(object):
    def __init__(self):
        pygame.mixer.init()
        pygame.mixer.pre_init(44100, -16, 2, 2048)
        pygame.init()

        self.width = 800
        self.height = 600
        self.screen = pygame.display.set_mode((self.width, self.height))

        self.bg_img = pygame.image.load('pokebg.jpeg')

        self.FPS = 30
        self.REFRESH = pygame.USEREVENT+1
        pygame.time.set_timer(self.REFRESH, 1000//self.FPS)


    def run(self):
        running = True
        while running:
            event = pygame.event.wait()

            if event.type == pygame.QUIT:
                running = False

            elif event.type == self.REFRESH:
                self.draw()

            else:
                pass         

    def draw(self):
        self.screen.fill(self.bg_img)

        pygame.display.flip()


MyGame().run()
pygame.quit()
sys.exit()

我想要一个图像而不是颜色作为背景,但是错误说“无效的颜色参数”有没有办法解决这个问题或者填充屏幕的唯一方法是用颜色?或使用不同的填充方法?

4

2 回答 2

0

只需将行替换self.screen.fill(self.bg_img)self.screen.blit(self.bg_img, self.bg_img.get_rect()). 这仅在图像与屏幕大小完全相同时才有效。如果不是,您应该使用pygame.transform.scale.

于 2013-11-13T22:34:06.403 回答
0

你不能fill()用图像你只能blit()在屏幕上图像。如果你使用循环,你可以填满所有屏幕。

您可以在我对问题Pygame-window and sprite class-python的回答中看到使用“球”图像填充屏幕的代码和屏幕截图

于 2013-11-13T22:34:26.597 回答