2016-05-27 3 views
0

私はPythonには新しく、少しKivyを使いこなしました。これは私が作っている自分のデザインの最初のアプリです。目標は、それがスクリーンの周りのあらゆる方向に動くキャラクターがあるゲームであることです。今私の問題は、文字ウィジェットを表示させることができず、ウィジェットまたはウィジェットの画像に問題があるかどうかわかりません。私がプログラムを実行すると、黒い画面が表示され、エラーは表示されません。私はどこに間違っていたのか誰にでも見える?あなたはそれをいただければ幸いです何かを構築するためのより良い方法のいずれかの勧告:)kivyの画像オーバートップで制御可能なグラフィックをどのように追加しますか?

import kivy 
kivy.require('1.7.2') 

from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.uix.label import Label 
from kivy.uix.button import Button 
from kivy.properties import NumericProperty 
from kivy.graphics import Rectangle, Color, Canvas 
from kivy.uix.image import Image 




class WidgetDrawer(Widget): 
    def __inti__(self, imageStr, **kwargs): 
     super(WidgetDrawer,self).__inti__(**kwargs) 
     with self.canvas: 
      self.size = (Window.width*.05, Window.width*.05) 
      self.x = self.center_x 
      self.y = self.center_y 
      self.pos = (self.x, self.y) 
      self.rect_pl = Rectangle(source= imageStr, pos=self.pos, size=self.size) 
      self.bind(pos=self.update_graphics_pos) 
      self.rect_pl.pos = self.pos 

    def update_graphic_pos(self, value): 
     self.rect_pl.pos = value 


    def setSize(self, width, height): 
     self.size = (width,height) 


class Player(WidgetDrawer): 
    impulse_x = 3 
    impulse_y = 3 
    winre = -0.1 
    velocity_x = NumericProperty(0) 
    velocity_y = NumericProperty(0) 


    def move(self): 
     self.x = self.x + self.velocity_x 
     self.y = self.y + self.velocity_y 

     if self.x > Window.width*.95 or self.x < Window.width*.05: 
      velocity_x = 0 
     if self.y > Window.height*.95 or self.y < Window.height*.05: 
      velocity_y = 0 

    def determineVelocity(self): 
     self.velocity_x = self.impulse_x + self.winre 
     self.velocity_y = self.impulse_y + self.winre 

    def update(self): 
     self.determineVelocity() 
     self.move() 



class GUI(Widget): 
    def __init___(self, **kwargs): 
     super(GUI, self).__init__(**kwargs) 
     self.character = Player(imageStr = './character.png') 
     self.character.x = Window.width/4 
     self.character.y = Window.height/2 
     self.add_widget(self.character) 

class GameApp(App): 
    def build(self): 

     parent = Widget() 

     app = GUI() 
     parent.add_widget(app) 
     return parent 

if __name__ == '__main__': 
    GameApp().run() 

答えて

0

を持っている場合

も問題はすなわち__init__方法にウィジェットを追加するself.add_widget(self.character)です。 python main.py -m inspector、Ctrl + Eを実行してGUI()にアクセスしてください。子供はいない、何もない。 __init__の後に子供を追加してください。構造について

  • 使用kv language
  • 使用1 naming style
  • 固定タイプミス(!__inti__ = __init__
  • あなたが1.7.2バージョンを持っている場合、あなたは間違いなくできるだけ早く
  • を更新する必要があります
関連する問題