Я делаю какую-то игру, но мне удалось завершить начальный экран. Теперь я пытаюсь сделать ввод первого уровня (так что экран с некоторым объяснением и кнопка для продолжения). Этот фрагмент программы написан в другом файле, поэтому я не получаю файл из 1000 строк.Pygame, импортирующие модули
Но теперь у меня есть проблема. Я начинаю свой уровень с помощью:
import level1 # here is my code of the level
level1.level(screen) # "level" is the class and screen is used so pygame
# uses the same screen and doesn't start a new one
Это level1.py:
class level():
def __init__(self,originalscreen):
screen = originalscreen
self.levelintro()
def levelintro(self):
# Setting some variables
levelintro = True
# Background
background = pygame.Surface(screen.get_size()) # Change this
background = background.convert()
background.fill((255,0,0))
# "Got it" button
gotitbutton = pygbutton.PygButton((350, 450, 300, 40))
while levelintro:
screen.fill(0)
# Blitting
screen.blit(background, (0,0))
gotitbutton.draw(screen)
# Refreshing screen
pygame.display.flip()
Так что теперь моя проблема: в моем первоначальном .py, я импортировал Pygame. Но теперь я попытался импортировать pygame в level1.py, но он не работает. Как я могу импортировать его?
Thx для вашей помощи! Lukas
пс: простите за мой плохой английский, я нидерландский ...
Edit: если я поставил "импорт Pygame" перед моим классом:
Traceback (most recent call last):
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 17, in <module>
class startscreen():
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 51, in startscreen
level1.level(screen)
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 8, in __init__
self.levelintro()
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 15, in levelintro
background = pygame.Surface(screen.get_size()) # Change this
NameError: global name 'screen' is not defined
Я не Не понимаю этого, потому что я назвал метод «level» с level1.level (screen), чтобы он проходил экран, а затем он устанавливал screen = originalalscreen (ведьма равнялась экрану из моего исходного файла)
Если я поставлю " import pygame "внутри моего класса, я получаю:
Warning (from warnings module):
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 3
class level():
SyntaxWarning: import * only allowed at module level
Traceback (most recent call last):
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 17, in <module>
class startscreen():
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 51, in startscreen
level1.level(screen)
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 9, in __init__
self.levelintro()
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 16, in levelintro
background = pygame.Surface(screen.get_size()) # Change this
NameError: global name 'pygame' is not defined
>>>
Вы говорите, что в вашем файле 'level1.py' импорт Pygame не работает. Что ты имеешь в виду? Вы получаете исключение, когда пытаетесь? Если да, добавьте полный ответ на свой вопрос. – Blckknght
Я отредактировал свое оригинальное сообщение :) – user2395313