2016-02-29 4 views

ответ

0

Основываясь на ответе inclement, я создал кнопку на макете разброса, которая правильно установлена ​​hitbox.

from kivy.app import App 
from kivy.lang import Builder 

kv = ''' 
FloatLayout: 

    ScatterLayout: 
     size_hint: None, None 
     size: 200, 200 
     pos_hint: {'center_x': .5, 'center_y': .5} 

     rotation: 45 

     do_rotation: False 
     do_scale: False 
     do_translation: False 

     Button: 
      text: 'hello world' 
''' 


class RotationApp(App): 
    def build(self): 
     return Builder.load_string(kv) 

RotationApp().run() 

Я использовал раскладку вместо разброса, так как он передает свой размер дочерним виджетам. В этом примере не нужны do_x: False, потому что кнопка перехватывает трогательные события, но если бы я поместил метку, она двигалась бы прикосновением.

3

Вы можете, вероятно, переопределить метод collide_point для учета вращения путем преобразования координат касания.

Если вы используете систему виджетов (например, поместив кнопку в Scatter), то столкновение позаботится о вас.

Смежные вопросы