前提・実現したいこと
Kivyのエラーを解決したい
発生している問題・エラーメッセージ
[INFO ] [Logger ] Record log in C:\Users\user.kivy\logs\kivy_18-06-07_2.txt [INFO ] [Kivy ] v1.10.0 [INFO ] [Python ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] [INFO ] [Factory ] 194 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored) Traceback (most recent call last): File "C:\Users\user\Desktop\Py\NewGUIGame\main.py", line 71, in <module> ShootingApp().run() File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\app.py", line 801, in run self.load_kv(filename=self.kv_file) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\app.py", line 598, in load_kv root = Builder.load_file(rfilename) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 301, in load_file return self.load_string(data, **kwargs) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 350, in load_string parser = Parser(content=string, filename=fn) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\parser.py", line 392, in __init__ self.parse(content) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\parser.py", line 501, in parse objects, remaining_lines = self.parse_level(0, lines) File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\parser.py", line 664, in parse_level if current_property[:3] == 'on_': TypeError: 'NoneType' object is not subscriptable
該当のソースコード
Python
1from kivy.app import App 2from kivy.clock import Clock 3from kivy.properties import ( 4 ListProperty, 5 NumericProperty, 6 ObjectProperty, 7 ReferenceListProperty, 8) 9from kivy.uix.widget import Widget 10from kivy.vector import Vector 11 12 13class Player(Widget): 14 """プレイヤー""" 15 16 pass 17 18 19class Shot(Widget): 20 """プレイヤーの弾""" 21 22 velocity_x = NumericProperty(0) 23 velocity_y = NumericProperty(10) 24 velocity = ReferenceListProperty(velocity_x, velocity_y) 25 26 def move(self): 27 """弾の移動処理""" 28 29 self.pos = Vector(*self.velocity) + self.pos 30 31 32class ShootingGame(Widget): 33 """ルートウィジェット。シューティングゲーム全体の管理""" 34 35 player = ObjectProperty(None) 36 shots = ListProperty() 37 38 def on_touch_move(self, touch): 39 """タッチしたまま移動でプレイヤー移動""" 40 41 if 0 < touch.x < self.width: 42 self.player.center_x = touch.x 43 44 def on_touch_down(self, touch): 45 """画面タッチで弾発射""" 46 47 shot = Shot(pos=self.player.center) 48 self.shots.append(shot) 49 self.add_widget(shot) 50 51 def update(self, dt): 52 """1/60秒毎に呼ばれる、ゲーム更新処理 53 54 各ショットの移動処理や、敵キャラの移動、それぞれの衝突判定を行う 55 """ 56 57 for ball in self.shots: 58 ball.move() 59 if (ball.y < self.y) or (ball.top > self.top): 60 self.remove_widget(ball) 61 self.shots.remove(ball) 62 63 64class ShootingApp(App): 65 66 def build(self): 67 game = ShootingGame() 68 Clock.schedule_interval(game.update, 1.0 / 60.0) 69 return game 70 71ShootingApp().run() 72
kivy
1 2<Player>: 3 size: 100,100 4 canvas: 5 Rectangle: 6 pos: self.pos 7 size: self.size 8 source: "image/player.png" 9 10<Shot>: 11 size: 10, 30 12 canvas: 13 Ellipse: 14 pos: self.pos 15 size: self.size 16 17<ShootingGame>: 18 player: player 19 20 canvas: 21 Rectangle: 22 pos: self.pos 23 size: self.size 24 source: 'image/background.jpg' 25 26 Player: 27 id: player 28 pos: root.center_x - self.width/2, 0 29
補足情報
Python 3.6.4
kivy 1.10.0
これはあるサイトのコードですが、どうもコードの問題ではないようなのでこちらで質問させていただきました。pyファイルもkvファイルも同じフォルダに入れています。kvファイルの名前はshooting.kvです。
自分はまだkivyやPythonに触れて間もないので優しく教えてくださると助かります。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/08 10:44
2018/06/08 14:08
2018/06/08 14:55
2018/06/08 15:12
2018/06/08 15:32