У меня не так много XP с программированием, и я просто начинаю с Kivy. Мне не удается найти свой путь в документах Kivy и YouTube, чтобы объединить все, в этом случае заставить мой виджет двигаться. Специально со смесью kv и python и разных макетов.
Прямо сейчас мне удалось напечатать «работает», если я нажму левую кнопку. Вместо этого я хочу, чтобы мой виджет (изображение автомобиля) автоматически перемещался вперед и вращался влево и вправо с помощью 2 кнопок, когда автомобиль должен повернуть.
С нетерпением ждем некоторых предложений. Также я надеюсь, что у кого-то с большим опытом работы с Kivy есть несколько советов о том, как подходить к kivy docs и kivy в целом.
Вот мой код Python:
import kivy
kivy.require('1.11.1')
from kivy.app import App
from kivy.uix.label import Label # add some text
from kivy.uix.stacklayout import StackLayout
from kivy.uix.gridlayout import GridLayout #
from kivy.uix.textinput import TextInput #for textinput ;)
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.image import Image, AsyncImage
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.button import Button
from kivy.uix.behaviors import ButtonBehavior
from kivy.graphics import Rectangle, Color
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.scatterlayout import ScatterLayout
from kivy.config import Config
from kivy.core.window import Window
from kivy.properties import ObjectProperty, NumericProperty, ReferenceListProperty, ListProperty
from kivy.vector import Vector
from kivy.clock import Clock
from kivy.lang import Builder
import os
Window.size = (450, 750)
print(dir(Widget))
class myGame(FloatLayout):
def leftButton(self, *args):
btnLeft = self.ids['btnLeft']
Car.moveCar(self)
def rightButton(self, *args):
btnRight = self.ids['btnLeft']
print('right button')
class Car(Widget):
def moveCar(self):
car = self.ids['car']
print('working')
class myApp(App): #name your .kv file 'my.kv'
def build(self): # initialization method, like __init__
game = myGame()
return game
if __name__ == '__main__':
myApp().run()
Вот мой код кв:
#:kivy 1.11.1
#<Button>:
#size_hint: 0.5, 0.27
<FloatLayout>:
Button:
id: btnLeft
pos_hint: {'x': 0, 'bottom': 1}
size_hint: 0.5, 0.27
on_press: root.leftButton()
Image:
source: 'images/arrow_left.png'
allow_stretch: True
keep_ratio: False
center_x: self.parent.center_x
center_y: self.parent.center_y
size: root.width * 0.5, root.height * 0.27
Button:
id: btnRight
pos_hint: {'x': 0.5, 'bottom': 1}
size_hint: 0.5, 0.27
on_press: root.rightButton()
Image:
source: 'images/arrow_right.png'
allow_stretch: True
keep_ratio: False
center_x: self.parent.center_x
center_y: self.parent.center_y
size: root.width * 0.5, root.height * 0.27
Car: # the Car
id: car
canvas:
Rectangle:
source: 'images/car_blue_5.png'
size: root.width * 0.15, root.height * 0.15
pos: root.width * 0.425, root.height * 0.44