ich bin echt am verzweifeln ich will ein Game Programmieren was verschiedene Interaktionen mit mini games hat und dafür nutze ich einfach damit sich ein neues fenster öffnet die import variante also z.b if press[pygame.K_m]: import game wo dan das game statt findet aber jedes mal wenn ich dan wieder mit einer taste zurück gehe in die main.py und dan wieder in die game.py gehe stürzt das Programm ab und bringt die Fehlermeldung:"Traceback (most recent call last):
File "C:/Users/sebas/PycharmProjects/GameX/main.py", line 51, in <module>
game()
File "C:/Users/sebas/PycharmProjects/GameX/main.py", line 36, in game
import game
File "C:\Users\sebas\PycharmProjects\GameX\game.py", line 54, in <module>
from levels import snake
File "C:\Users\sebas\PycharmProjects\GameX\levels\snake.py", line 44, in <module>
screen.fill((0,0,0))
pygame.error: display Surface quit"
Und ich verstehe nicht warum weil das ist von großer wichtig keit das das funktioniert oder hat jemand eine bessere idee? Ich stell meine 2 Codes mal hier rein und hoffe mir kann jemand helfen
Die Main.py:
Code: Alles auswählen
import pygame
pygame.init()
#loaded things
start_screen = pygame.image.load('pictures/start_screen.png')
start_bg = pygame.image.load('pictures/start_background.png')
start_if = pygame.image.load('pictures/start_info.png')
#Display
size = width, height = 1280, 720
pygame.display.set_caption("GameX")
screen = pygame.display.set_mode((size),pygame.FULLSCREEN)
clock = pygame.time.Clock()
fps = 60
#pictures
start_bg = pygame.transform.scale(start_bg, (width,height))
start_screen = pygame.transform.scale(start_screen,(840 , 560))
start_if = pygame.transform.scale(start_if, (185,35))
#Def-Zone
def draw_start():
screen.blit(start_bg, (0,0))
screen.blit(start_screen, (200, -50))
screen.blit(start_if,(530,350))
pygame.display.flip()
def game():
import game
game.done = False
#Menu-Logic
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
press = pygame.key.get_pressed()
if press[pygame.K_ESCAPE]:
done = True
if press[pygame.K_SPACE]:
done = True
game()
draw_start()
clock.tick(fps)
pygame.quit()
Code: Alles auswählen
import pygame
pygame.init()
#Loaded things
#Display
pygame.display.set_caption("GameX")
screen = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
clock = pygame.time.Clock()
fps = 60
wd = pygame.display.Info()
width = wd.current_w
height = wd.current_h
#Variabels
p_limitation_width = width - 52
p_limitation_height = height - 52
done = None
y_pos = 50
x_pos = 50
speed = 3
#Def-Zone
def draw_game():
screen.blit(screen,(0,0))
pygame.draw.rect(screen, 255, [x_pos, y_pos, 50, 50])
pygame.display.update()
def menu_back():
import main
main.done = False
#Game-logic
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
press = pygame.key.get_pressed()
if press[pygame.K_BACKSPACE]:
done = True
menu_back()
if press[pygame.K_ESCAPE]:
done = True
if press[pygame.K_1]:
from levels import snake
snake.done = False
if press[pygame.K_w] and y_pos > 0:
y_pos -= speed
if press[pygame.K_s] and not y_pos > p_limitation_height:
y_pos += speed
if press[pygame.K_a] and x_pos > 0:
x_pos -= speed
if press[pygame.K_d] and not x_pos > p_limitation_width:
x_pos += speed
screen.fill((0,0,0))
draw_game()
clock.tick(fps)
pygame.quit()