python - AttributeError:“超级”对象在 Kivy 中没有属性“__getattr__”
问题描述
我想设置播放器速度,但出现此错误AttributeError: 'super' object has no attribute '__getattr__
。我怎样才能在其他班级以这种速度工作。我不知道,为什么会出现这个错误,因为我是self.ids
在网上找到的。那些人没有那个错误,但我有,为什么?如何解决?谢谢
我的蟒蛇:
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.gridlayout import GridLayout
from kivy.graphics import RoundedRectangle, Color
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.floatlayout import FloatLayout
from kivy.lang.builder import Builder
from kivy.uix.widget import Widget
from kivy.clock import Clock
from kivy.uix.button import Button
from kivy.config import Config
from kivy.uix.label import Label
from kivy.properties import NumericProperty
Config.set('graphics', 'fullscreen', 'auto')
Config.set('graphics', 'window_state', 'maximized')
Builder.load_file("game.kv")
class Menu(Screen):
pass
class LevelSelection(Screen):
pass
class Level1(Screen):
def on_enter(self, *args):
Clock.schedule_interval(self.update, 1/30)
def update(self, *args):
self.ids.player.speed += 500* 1/30
self.ids.Player.y += self.ids.player.speed * 1 /30
class Game(Screen):
pass
class Player(Image):
speed = NumericProperty(0)
class Full(App):
def build(self):
sm = ScreenManager()
sm.add_widget(Menu(name="menu"))
sm.add_widget(LevelSelection(name="levels"))
sm.add_widget(Game(name="game"))
sm.add_widget(Level1(name="level1"))
return sm
if __name__ == "__main__":
Full().run()
我的.kv:
<MenuButton@Button>:
font_size :"50sp"
background_normal : "bt1_normal.png"
background_down : "bt1_down.png"
border:90,90,90,90
<Level@Button>:
font_size :"50sp"
background_normal : "bt2_normal.png"
background_down : "bt2_down.png"
<LevelSelection>:
BoxLayout:
canvas:
Color:
rgba:1,1,1,1
Rectangle:
pos:self.pos
size:self.size
source:"backgrounf.png"
orientation:"vertical"
padding:"100dp", "10dp"
spacing:"150dp"
Widget:
BoxLayout:
padding:"100dp"
spacing:"100dp"
Level:
text:"1"
on_release:
app.root.current = "level1"
<Menu>:
BoxLayout:
canvas:
Color:
rgba:1,1,1,1
Rectangle:
pos:self.pos
size:self.size
source:"backgrounf.png"
orientation:"vertical"
padding:"200dp", "50dp"
spacing:"150dp"
Widget:
BoxLayout:
padding:"100dp"
spacing:"150dp"
MenuButton:
text:"start"
on_release:
app.root.current = "levels"
MenuButton:
text:"exit"
on_release:
app.stop()
<Player>:
source:"player.png"
<Level1>:
FloatLayout
Player:
id:player
allow_stretch:True
size_hint:None,None
size:root.height/15,root.height/15
x:root.width/20
y:root.height/2
解决方案
推荐阅读
- r - 计算没有循环的分组行
- sql-server - 如何从数据库中获取所有表和列?(SQL 服务器)
- php - 无法在服务器上更新 css。显示 max-age=14400.how 覆盖禁用 htaccess
- doxygen - 使用 addgroup 将文件添加到 Doxygen 组,无需修改代码
- angular - 角度 6 中的时间格式
- shell - 用于推送文件的 shell 脚本中的 if 条件
- svg - 使用 InkScape,某些 svg 文件未转换为 png
- node.js - nodejs bodyParser.json 转换浮点数
- python - ValueError:使用带有 seaborn 线图的索引时无法解释输入“索引”
- python - 替代覆盖 BaseHTTPRequestHandler 的 __init__ 函数