我无法在我使用基维枕头制作的地图集中打开单个精灵。我在python解释器中不断收到“错误加载纹理”。我是kivy的新手,所以我最大的偏向是我的文件结构或如何通过字符串引用。很少有文档介绍如何在包含main.py和main.kv的文件夹中构造地图集文件,以及如何与kv文件中的地图集字符串相关。
我尝试在包含main.py和main.kv的文件夹中创建一个新文件夹,并将其命名为Textures。
数据结构如下
C:\ Users \ User \ Desktop \ Main \ textures \ myatlas-0.png,myatlas.atlas
Main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import StringProperty, ObjectProperty
from kivy.uix.image import Image
from kivy.uix.widget import Widget
class Sprite(Widget):
pass
class MainApp(App):
def build(self):
self.load_kv('sprite.kv')
return Sprite()
if __name__ == "__main__":
app = MainApp()
app.run()
sprite.kv
<sprite.kv>
GridLayout:
cols:1
rows:1
size: root.width * .8, root.height * .125
center: root.width/2, root.height /1.1
Image:
id: note1
source: 'atlas://textures/myatlas-0/myatlas/N000'
size_hint: .5, 1
执行后,空白的白框出现在kivy应用程序中,并且在python解释器中显示“错误加载纹理”
答案 0 :(得分:0)
因此,我认为您必须将图集包括在页码中,并且还要在引用的精灵之前再次指定图集名称。因此,这是一个简单的解决方案,我对此感到愚蠢。但是,这里是正确格式的源字符串,适合于对格式稍有困难的任何人。
import random
scramble_length = random.randint(9,24)
move_list = ["U","U'","D","D'","B","B'","F","F'","L","L'","R","R'"]
for x in range(scramble_length):
print(random.choice(move_list))