Во-первых, я знаю, что это не конкретно, но сейчас я не могу понять, почему, поэтому я буду редактировать вопрос, когда у меня будет причина.Извините!.
Я начинаю с Kivy, и у меня много вопросов, но в этом случае у меня даже нет сообщения об ошибке!
Вот код, это простоадаптация учебника Pong Game, но с использованием только одного файла .py (без файла .kv):
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, Line, Rectangle
from kivy.core.window import Window
from kivy.uix.label import Label
from kivy.graphics.instructions import InstructionGroup
from kivy.uix.gridlayout import GridLayout
class PongBall(Widget):
def __init__(self):
self.id = "ball"
velocity_x = NumericProperty(0)
velocity_y = NumericProperty(0)
velocity = ReferenceListProperty(velocity_x, velocity_y)
self.canvas = Ellipse(pos=(Window.width*0.5, Window.height*0.5), size=(50,50), Color=(1.0, 1.0, 0.5))
#self.canvas.add(Ellipse(pos=(width*0.5, height*0.5), size=(50,50), Color=(1.0, 1.0, 0.5)))#This way doesn't works
def move(self):
print "move called"
self.pos = Vector(*self.velocity) + self.pos
def serve_ball(self):
self.center = self.center
self.velocity = Vector(4, 0).rotate(randint(0, 360))
print "ball served"
class PongGame(Widget):
def __init__(self):
mainLayout = GridLayout(cols=1)
ball = PongBall()
ball.id = "pong_ball"
ball.center = Window.center
# mainLayout.add_widget(Rectangle(pos=(Window.width*0.5, 0), size=(10, Window.height)))#Unresearched error.
mainLayout.add_widget(Label(id="playerOneScore", font_size=70, center_x = Window.width*0.25, top=Window.height-50, text="0"))
mainLayout.add_widget(Label(id="playerTwoScore", font_size=70, center_x = Window.width*0.75, top=Window.height-50, text="0"))
mainLayout.add_widget(ball)
print "Hello"
ball.serve_ball()
def update(self, dt):
print "updated!"
ball.move()
# bounce off top and bottom
if (self.ball.y < 0) or (self.ball.top > self.heightt):
self.ball.velocity_y *= -1
# bounce off left and right
if (self.ball.x < 0) or (self.ball.right > self.width):
self.ball.velocity_x *= -1
class PongApp(App):
def build(self):
game = PongGame()
print "game created!"
Clock.schedule_interval(game.update, 1.0 / 60.0)#Clock statement neverminds for the error.
return game
if __name__ == '__main__':
PongApp().run()
Кто-то, кто имел опыт работы с Kivy, мог понять, почему Kivy дает сбой с этим кодом?
Я использую Python 2.7.9 и Kivy 1.10.1