gdnative_python/examples/pong/pong.py

42 lines
1.2 KiB
Python

from pandemonium import exposed, signal, export, Node2D
SCORE_TO_WIN = 2
@exposed
class Pong(Node2D):
game_finished = signal()
def _ready(self):
self.score_left = 0
self.score_right = 0
# let each paddle know which one is left, too
p1 = self.get_node("player1")
p2 = self.get_node("player2")
p1.left = True
p2.left = False
p1.action_prefix = "p1"
p2.action_prefix = "p2"
def update_score(self, add_to_left):
if add_to_left:
self.score_left += 1
self.get_node("score_left").set_text(str(self.score_left))
else:
self.score_right += 1
self.get_node("score_right").set_text(str(self.score_right))
game_ended = False
if self.score_left == SCORE_TO_WIN:
self.get_node("winner_left").show()
game_ended = True
elif self.score_right == SCORE_TO_WIN:
self.get_node("winner_right").show()
game_ended = True
if game_ended:
self.get_node("ball").stop()
self.get_node("player1").can_move = False
self.get_node("player2").can_move = False