1
我對Python和Kivy很少有經驗。我正在幫助我的小侄子追求使用這兩款遊戲來製作遊戲。我們被困在看起來很簡單的事情上。Python Kivy浮點佈局
考慮下面的代碼:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty, ReferenceListProperty,\
ObjectProperty
from kivy.vector import Vector
from kivy.clock import Clock
from random import randint
from kivy.graphics import Color, Ellipse, Rectangle
from kivy.uix.floatlayout import FloatLayout
import math
class Fly(Widget):
pass
class Stick(Widget):
pass
class FlyBox(Widget):
pass
class GameArea(FloatLayout):
pass
class FlyApp(App):
def build(self):
gameArea = GameArea()
flyBox = FlyBox()
flyBox.canvas.add(Rectangle(pos_hint={'x': 0, 'y': .3}, size_hint=(1, .3)))
flyBox.canvas.add(Color(1, 0, 0))
gameArea.add_widget(flyBox)
return gameArea
if __name__ == '__main__':
FlyApp().run()
它產生以下輸出:
我們試圖實現是:
- 的FlyBox的高度應爲1/GameArea高度的3倍。
- FlyBox的寬度應該與GameArea的寬度相同。
- FlyBox的x座標應爲0,其y座標應爲GameArea高度的1/3。
即,如果遊戲區域被分成3個相等大小的水平條帶,FlyBox應該是中間條帶。隨着遊戲區域的大小發生變化(由於窗口的大小調整),FlyBox的大小和位置應該相對變化。
我們正試圖避免使用.kv文件,而是在Python中執行所有操作。