32位bmp图像没有显示在pygame的屏幕上

时间:2017-10-21 12:18:20

标签: python python-3.x pygame

我正在制作游戏,我正试图在屏幕中间底部显示一张小图片。 我无法理解为什么我根本看不到图像?

这是我的图片类代码,它位于名为devil.py的文件中:

import pygame

class Devil():

    def __init__(self, screen):
        """Initialize the devil and set its starting position"""
        self.screen=screen

        #Load the devil image and get its rect
        self.image=pygame.image.load('images/devil.bmp')
        self.rect=self.image.get_rect()
        self.screen_rect=screen.get_rect()

        #Start each new devil at the bottom center of the screen
        self.rect.centerx=self.screen_rect.centerx
        self.rect.bottom=self.screen_rect.bottom

    def blitme(self):
        """Draw the devil at its current location"""
        self.screen.blit(self.image,self.rect)

这是我的主要代码,写在另一个文件中:

import sys
import pygame

from settings import Settings
from devil import Devil

def run_game():
    #Initialize pygame, settings and create a screen object.
    pygame.init()
    dvs_settings=Settings()
    screen=pygame.display.set_mode(
        (dvs_settings.screen_width, dvs_settings.screen_height))
    pygame.display.set_caption("Devil vs Shitty")

    #Make a devil
    devil=Devil(screen)

    #Start the main loop the game.
    while True:

        #Watch for keyboard and mouse events.
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()

        #Redraw the screen during each pass through the loop.
        screen.fill(dvs_settings.bg_color)  
        devil.blitme()

        #Make the most recently drawn screen visible
        pygame.display.flip()
 run_game()

这是我在一个名为settings.py的文件中的设置类:

class Settings():
    """A Class to store all settings for Alien Invasion."""
    def __init__(self):
        """Initialize the game's settings"""
        #Screen settings
        self.screen_width = 1000
        self.screen_height = 600
        self.bg_color=(230,230,230)

我无法在这里找到我做错的事。

1 个答案:

答案 0 :(得分:1)

我发现了问题 - 这是一个非常奇怪的问题: 当我编辑我的图像时,我将其保存为32位bmp文件(默认选项为24位,我自己也认为“我正在使用32位python,我认为它会更好地匹配)”。 但是当我试图在pygame中显示我的图像时 - 它没有显示出来。 我尝试了什么。最后我尝试再次编辑图像。

现在,我把它保存为24位bmp,效果很好!!!