我試圖用Kivy來試驗一個小遊戲。我一直鬆散地遵循教程,但我基本上對浮動佈局在屏幕上呈現圖形的方式感到困惑。困惑於Kivy放置一個圓圈的「中心」 - 包含屏幕截圖和代碼
我試圖在屏幕中間畫一個矩形的「玩家」。但它顯然不是在中心(我已經通過渲染十字線在中心所示)渲染:
下面的代碼:
<Game>:
FloatLayout:
size: root.size
Widget:
id: game
canvas:
Color:
rgb: dark
Rectangle:
pos: root.center_x/5, 0
size: root.width*4/5, root.height
Color:
rgb: violet
Rectangle:
pos: root.center_x, 0
size: 2, root.height
Rectangle:
pos: 0, root.center_y
size: root.width, 2
Player:
id: player
size_hint: 300, 300
center_x: root.center_x
center_y: root.center_y
<Player>:
canvas:
Color:
rgb: crimson
Rectangle:
pos: self.pos
size: self.size_hint
Color:
rgb: dark
Ellipse:
pos: self.x+5, self.y+5
size: self.size_hint_x-10, self.size_hint_y-10
的Python代碼確實是最小馬上;我只是試圖學習我的方式圍繞圖形:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty, ListProperty, NumericProperty
from kivy.graphics.vertex_instructions import(Rectangle, Ellipse)
from kivy.graphics.context_instructions import Color
class Player(Widget):
pass
class Game(Widget):
player = ObjectProperty(None)
class GameApp(App):
def build(self):
game = Game()
return game
if __name__ == '__main__':
GameApp().run()
任何關於kivy如何工作的一般反饋將非常受歡迎。 –
只是注意到,如果我將Player的size_hint設置爲100,100,它會完全呈現在中心。但我不知道爲什麼會這樣... –
'size_hint'與其他窗口小部件或父窗口相比是相對大小(取決於上下文)。它看起來像你想把'size_hint'設置爲'(None,None)'而不是引用'self.size'。 – inclement