Я пытаюсь создать королевскую игру Ur с python, используя Kivy libs.
Я пытаюсь создать доску (что сделано, но более сложная работа еще впереди)и 7 штук (фигур) для каждого игрока.Мне удалось создать все 7, но я понятия не имел, как управлять ими независимо или перемещать вообще.
Я нашел код, который позволял мне перемещать объект с помощью мыши, но мне нужно только перемещать объектчто моя мышь на вершине.Вроде как захват только нужной шахматной фигуры, а не королевы все время.
Код:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Ellipse
from kivy.clock import Clock
from random import random
class CircleWidget(Widget):
def __init__(self, **kwargs):
Widget.__init__(self, **kwargs)
self.size = (50,50)
for i in range(0, 7):
self.circle = Ellipse(pos = self.pos, size = self.size)
self.canvas.add(self.circle)
# handle position change
def on_pos(self, obj, new_pos):
self.circle.pos = new_pos # when widget moves, so does the graphic instruction
class RootWidget(Widget):
def __init__(self, **kwargs):
Widget.__init__(self, **kwargs)
self.cw = CircleWidget()
self.add_widget(self.cw)
def on_touch_down(self, touch):
if self.collide_point(*touch.pos):
touch.grab(self)
# do whatever else here
def on_touch_move(self, touch):
if touch.grab_current is self:
print("This prints all the time...")
self.cw.pos = (touch.x,touch.y)
def on_touch_up(self, touch):
if touch.grab_current is self:
touch.ungrab(self)
# and finish up here
def update(self, dt):
print("No idea why I need this")
class MyApp(App):
def build(self):
rw = RootWidget()
# call update() every second
Clock.schedule_interval(rw.update, 1.0)
return rw
MyApp().run()
Кроме того, я забыл отредактировать позиции всех фигур, чтобы быть следующимидруг к другу, но это не сложная задача.
Помогаете ли вы перемещать их один за другим?