Ich bin noch ziemlich neu in Python und Programmierung im Allgemeinen. Ich versuche, einem Buch zu folgen, das ich benutze, um ein einfaches Spiel zu erstellen. Ich habe das Programm wortwörtlich eingegeben, so weit ich das beurteilen kann, aber aus welchem Grund auch immer scheint alles in Ordnung zu sein, außer mein Schiffsbild erscheint nicht. Sieht jemand, was das Problem sein könnte? Ich verwende Python 3.4.3 mit der entsprechenden Pygame-Version.Versuchen Sie, ein Bild auf dem Bildschirm mit Pygame zu zeichnen, aber der Bildschirm ist leer?
#Creating a pygame window and responding to user input
import sys
import pygame
def bg_draw():
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.flip()
bg_draw()
#Setting the bg color
def bg_color():
pygame.display.set_caption('Alien Invasion')
bg_color = (230, 230, 230)
while True:
screen.fill(bg_color)
pygame.display.flip()
bg_color()
from settings import Settings
def run_settings():
#initializes pygame, settings, and screen object
pygame.init()
ai_settings = settings()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
#start main loop for game
while True:
#redraws screen during each pass through the loop
screen.fill(ai_settings.bg_color)
pygame.display.flip()
run_settings()
#Creating the ship class
class ship():
def __init__(self, screen):
self.screen = screen
#load ship image and get it's rect
self.image = pygame.image.load('ship.bmp')
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
#start a new ship at bottom of screen
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
def blitme(self):
self.screen.blit(self.image, self.rect)
#drawing the ship on the screen
def run_game():
pygame.display.set_caption("Alien Invasion")
#makes a ship
ship = Ship(screen)
#start games main loop
while True:
screen.fill(ai_settings.bg_color)
ship.blitme()
pygame.display.flip()
run_game()
aussehen könnte, wo ist 'Schiff()' Klasse und 'blitme()' Methode ? BTW 'ship()' und 'Ship()' sind nicht dieselbe Klasse - Sie sollten eine Fehlermeldung erhalten. Haben Sie es in der Konsole/termina/cmd.exe/powershell ausgeführt, um Fehlermeldungen zu sehen? – furas
Sie haben zu viele 'while True' Loops. Sie starten die erste Schleife in 'bg_draw()' und Sie verlassen es nie. – furas