python 2.7.x kivy 1.9.0
我刚刚开始使用Kivy,通过Pong教程。事情进展顺利,但现在我得到的似乎是一个非常简单的错误。我无法弄清楚出了什么问题。
我得到的错误是:
File: "C:\Users\toreilly\mystuff\kivypong.py" \n
def update(self, dt):
^
SyntaxError: invalid syntax
代码在这里:
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
class PongBall(Widget):
velocity_x = NumericProperty(0)
velocity_y = NumericProperty(0)
velocity = ReferenceListProperty(velocity_x, velocity_y)
def move(self):
self.pos = Vector(*self.velocity) + self.pos
class PongGame(Widget):
ball = ObjectProperty(None)
def serve_ball(self):
self.ball.center = self.center
self.ball.velocity = Vector(4,0).rotate(randint(0,360)
def update(self, dt):
self.ball.move()
#bounce off top and bottom
if (self.ball.y < 0) or (self.ball.top > self.height):
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()
game.serve_ball()
Clock.schedule_interval(game.update, 1.0/60.0)
return game
if __name__ == '__main__':
PongApp().run()
我将非常感谢所有指导。谢谢。
答案 0 :(得分:1)
您在上一个方法中缺少右括号:
def serve_ball(self):
self.ball.center = self.center
self.ball.velocity = Vector(4,0).rotate(randint(0,360)) # HERE
def update(self, dt):
self.ball.move()