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()
我希望有一个图像而不是颜色作为背景,但错误说“无效颜色参数”是否有办法解决这个或填充屏幕的唯一方法是用颜色?或使用不同的填充方法?
答案 0 :(得分:0)
只需将self.screen.fill(self.bg_img)
行替换为self.screen.blit(self.bg_img, self.bg_img.get_rect())
即可。仅当图像与屏幕尺寸完全相同时,此功能才有效。如果不是,则应使用pygame.transform.scale
。
答案 1 :(得分:0)
您无法fill()
带图片,您只能在屏幕上blit()
成像。如果你使用循环,你可以填满所有屏幕。
在我对问题Pygame- window and sprite class - python的回答中,您可以看到使用“球”图像填充屏幕的代码和屏幕截图