diff options
author | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-09-05 17:20:45 (GMT) |
---|---|---|
committer | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-09-05 17:20:45 (GMT) |
commit | 37b337801f6f169ec71114311d36eb9c7e4a0dff (patch) | |
tree | 3b6dbad2f007a3b5f01c1823f988aad9fc950f60 | |
parent | 4325576b8e29370d1b8d2db86e8c02b125094865 (diff) |
Save square instead of save xy pos
-rw-r--r-- | activity.py | 2 | ||||
-rwxr-xr-x | game.py | 26 |
2 files changed, 19 insertions, 9 deletions
diff --git a/activity.py b/activity.py index 403be25..c392bd6 100644 --- a/activity.py +++ b/activity.py @@ -33,7 +33,7 @@ from sugar3.graphics.toolbutton import ToolButton from gettext import gettext as _ # _logger -_logger = logging.getLogger('chart-activity') +_logger = logging.getLogger('tictactoe') _logger.setLevel(logging.DEBUG) logging.basicConfig() @@ -50,7 +50,7 @@ class Canvas(Gtk.DrawingArea): Gdk.EventMask.POINTER_MOTION_MASK) self.connect('draw', self._draw_cb) - self.connect('button-press-event', self._click_cb) + self.connect('button-press-event', self.myclick) self.connect('motion-notify-event', self._motion_notify_cb) self.show_all() @@ -125,7 +125,7 @@ class Canvas(Gtk.DrawingArea): for circle in self.circles: if circle == self.cursor: self.cursor = None - x, y = circle + x, y = self.squares[circle] context.arc(x, y, SIZE / 2, 0, 360) context.stroke() @@ -133,7 +133,7 @@ class Canvas(Gtk.DrawingArea): for cross in self.crosses: if cross == self.cursor: self.cursor = None - x, y = cross + x, y = self.squares[cross] a = SIZE / 2 context.move_to(x - a, y - a) context.line_to(x + a, y + a) @@ -145,7 +145,7 @@ class Canvas(Gtk.DrawingArea): # Draw cursor dot try: context.set_source_rgb(*TICTACTOE_COLOR) - cx, cy = self.cursor + cx, cy = self.squares[self.cursor] context.arc(cx, cy, 9, 0, 360) context.fill_preserve() context.stroke() @@ -153,11 +153,11 @@ class Canvas(Gtk.DrawingArea): pass def _motion_notify_cb(self, widget, event): - self.cursor = self.get_pos(event.x, event.y) + self.cursor = self.get_square(event.x, event.y) self.queue_draw() - def _click_cb(self, widget, event): - pos = self.get_pos(event.x, event.y) + def myclick(self, widget, event): + pos = self.get_square(event.x, event.y) if self._mode == MODE_CIRCLE and pos: self.circles.append(pos) @@ -167,7 +167,16 @@ class Canvas(Gtk.DrawingArea): self.queue_draw() - def get_pos(self, mx, my): + def otherclick(self, square): + if self._mode == MODE_CIRCLE: + self.crosses.append(square) + + elif self._mode == MODE_CROSS: + self.circles.append(square) + + self.queue_draw() + + def get_square(self, mx, my): try: ypos = 0 xpos = 0 @@ -207,6 +216,7 @@ class Canvas(Gtk.DrawingArea): ypos = all_y[-1] pos = xpos, ypos + pos = self.squares.index(pos) if pos in self.crosses and pos in self.circles: pos = None return pos |