Вот соответствующий код .py:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.core.image import Image
from kivy.graphics import Color, Rectangle
from kivy.core.audio import SoundLoader
from kivy.core.text import LabelBase
import pygame
from pygame.locals import*
import random
class RootScreen(ScreenManager):
pass
class LevelOneBedroomScreen(Screen):
def __init__(self, **kwargs):
super(LevelOneBedroomScreen, self).__init__(**kwargs)
def next_text(self):
if self.ids.level_one_bedroom_text.text == '*YAWN*':
self.ids.level_one_bedroom_image.source = 'placeholder_background2.png'
self.ids.level_one_bedroom_text.text = 'Hello'
elif self.ids.level_one_bedroom_text.text == 'Hello':
self.manager.current = 'level one bedroom choice'
class LevelOneBedroomChoiceScreen(Screen):
def __init__(self, **kwargs):
super(LevelOneBedroomChoiceScreen, self).__init__(**kwargs)
def get_image(self):
#This part is not working
self.ids.level_one_bedroom_choice_image.source = LevelOneBedroomScreen.ids.level_one_bedroom_image.source
class screensApp(App):
def build(self):
return RootScreen()
if __name__ == "__main__":
screensApp().run()
В нижней части я прокомментировал ту часть кода, которая не работает.У меня есть два, почти идентичных экрана, где на одном LevelOneBedroomScreen есть текст, а на LevelOneBedroomChoiceScreen есть кнопки.Мне нужно, чтобы оба фоновых изображения были одинаковыми, и, поскольку первый экран обновляет изображения, я иногда что-то записывал в файл .kv, чтобы, надеюсь, вытащить изображение с первого экрана, но это приводит к ошибке.Вот соответствующий код из .kv:
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
<RootScreen>:
transition: FadeTransition()
LevelOneBedroomScreen:
LevelOneBedroomChoiceScreen:
<LevelOneBedroomScreen>:
name: 'level one bedroom'
id: level_one_bedroom
Image:
id: level_one_bedroom_image
source: 'placeholder_background.png'
size: self.size
pos: self.pos
allow_stretch: True
keep_ratio: False
BoxLayout:
orientation: 'vertical'
Label:
text: 'Image of Bedroom'
Button:
text: 'Dialogue'
background_color: 0,0,0,0
BoxLayout:
size_hint_y: .2
Label:
text: 'left arrow'
Button:
text: 'choose'
on_release: root.manager.current = 'level one bedroom choice'
Label:
text: 'right arrow'
<LevelOneBedroomChoiceScreen>:
name: 'level one bedroom choice'
id: level_one_bedroom_choice
Image:
id: level_one_bedroom_choice_image
source: get_image()
size: self.size
pos: self.pos
allow_stretch: True
keep_ratio: False
BoxLayout:
orientation: 'vertical'
Label:
text: 'Image of Bedroom'
BoxLayout:
orientation: 'vertical'
BoxLayout:
Button:
text: 'choice 1'
Button:
text: 'choice 2'
BoxLayout:
Button:
text: 'choice 3'
Button:
text: 'choice 4'
BoxLayout:
size_hint_y: .2
Label:
text: 'left arrow'
Button:
text: 'home'
on_release: root.manager.current = 'levels'
Label:
text: 'right arrow'
Я вставил комментарий, показывающий, какая часть кода приводит к ошибке.Заранее благодарю, очень ценю ваши отзывы.