Ich versuche, mit Pygame eine Karte auf einen Bildschirm zu zeichnen, kann aber nicht verstehen, warum es nicht funktioniert. Ich bekomme keine Rückverfolgung. Der Bildschirm wird initialisiert und das Bild wird nicht gezeichnet. Ich habe versucht mit anderen .bmp Bildern mit dem gleichen Ergebnis, also muss es etwas in meinem Code geben, das nicht richtig geordnet/geschrieben ist.Fehler beim Bild zu Bildschirm
Hier ist das Hauptmodul des Spiels:
import pygame
import sys
from board import Board
def run_game():
#Launch the screen.
screen_size = (1200, 700)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption('Horde')
#Draw the board.
game_board = Board(screen)
game_board.blit_board()
#Body of the game.
flag = True
while flag == True:
game_board.update_board()
run_game()
Hier ist das Board-Modul, mit dem Sie sehen werden. Genauer gesagt, die blit_board()
Funktion, die im Stillen fehlschlägt, die map.bmp
Datei zu zeichnen, frage ich es (Datei ist im selben Verzeichnis).
import pygame
import sys
class Board():
def __init__(self, screen):
"""Initialize the board and set its starting position"""
self.screen = screen
#Load the board image and get its rect.
self.image = pygame.image.load('coll.bmp')
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
#Start the board image at the center of the screen.
self.rect.centerx = self.screen_rect.centerx
self.rect.centery = self.screen_rect.centery
def blit_board(self):
"""Draw the board on the screen."""
self.screen.blit(self.image, self.rect)
def update_board(self):
"""Updates the map, however and whenever needed."""
#Listens for the user to click the 'x' to exit.
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
#Re-draws the map.
self.blit_board()
Alles, was ich bekomme, ist ein schwarzer Bildschirm. Warum wird das map.bmp
Bild nicht zeichnen?
Sie nicht ein [ 'pygame.display.flip()'] (http tun müssen: // www. pygame.org/docs/ref/display.html#pygame.display.flip) oder ['pygame.display.update()'] (http://www.pygame.org/docs/ref/display.html#pygame .display.update) nach dem Blit, um den Bildschirm tatsächlich zu aktualisieren? –
Rechts. Und alles läuft auf eine Aussage hinaus. Das war genau das! Vielen Dank. –