Найти - Пользователи
Полная версия: Взаимодействие между файлами
Начало » Python для новичков » Взаимодействие между файлами
1
Knep
Добрый день. Прошу помощь в решении такой проблемы:
В своей программе я выбираю тип игрока в файле с кодом второго меню, откуда он должен читаться в файле с непосредственно с самой игрой, где я сразу же импортирую
from menu2 import player_image
. Но при открытии он не находит во втором меню player_image, т.к. я его определяю уже после основного цикла. Если задать значение для player_image до основного цикла, то игровой файл его находит, но тогда я не могу его изменить в процессе игры, так что в этом нет смысла. То есть мне надо поставить переменную player_image до основного цикла, которая будет задаваться значением после основного цикла. Задается значение так:
if x1 == 380 and y1 == 300 and player_selected == True:
        #player1 = Han Solo
        player_image = right_hero8_image
Буду очень благодарен за помощь!
JOHN_16
Дайте ка я угадаю, классы не используются?
doza_and
Knep
Если задать значение для player_image до основного цикла, то игровой файл его находит, но тогда я не могу его изменить в процессе игры, так что в этом нет смысла
Похоже этот стиль называется поток сознания. Я вообще удивлен что ТС не написал свой вопрос одним предложением. Наверное программа написана аналогично. Применение классов в этом случае не требуется (более того, противоречит выбранному стилю).

Наверное поможет если прочитаете
http://en.wikipedia.org/wiki/Event-driven_architecture
Knep
JOHN_16
Дайте ка я угадаю, классы не используются?
В классе я задаю переменную, которая содержит изображение
class Player(pygame.sprite.Sprite):
 
    change_x = 0
    change_y = 0
     
    def __init__(self,x,y):
        pygame.sprite.Sprite.__init__(self)
         
        self.image = player_image
и т.д.
но класс её не может найти, выдает:

Traceback (most recent call last):
File “K:\Phyton\games\the massacre\dagobah.py”, line 7, in <module>
from menu2 import player_image
File “K:\Phyton\games\the massacre\menu2.py”, line 118, in <module>
from menu3 import *
File “K:\Phyton\games\the massacre\menu3.py”, line 73, in <module>
from dagobah import *
File “K:\Phyton\games\the massacre\dagobah.py”, line 7, in <module>
from menu2 import player_image
ImportError: cannot import name player_image
FishHook
Что такое menu2?
Knep
FishHook
Что такое menu2?
Это отдельный .py-файл, где я задаю player_image, и который открывается до файла с самой игрой
FishHook
Ну и программа, состоящая из одной строки
import menu2
работает?
Knep
FishHook
Ну и программа, состоящая из одной строки
работает?
Да, такая программа тоже работает. Да и когда я импортирую меню2 в первом меню тоже всё работает.
elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                from menu2 import *
никаких проблем.

Всё дело в том, что я не могу грамотно задать переменную с пустым значением “player_image” в начале файла menu2, которая бы брала значение в коде после цикла.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB