def __init__(self, canvas, parent=None, colors=['#A0FFA0', '#FF8080']): self._activity = parent self.colors = colors # Starting from command line if parent is None: self._running_sugar = False self._canvas = canvas else: self._running_sugar = True self._canvas = canvas parent.show_all() self._canvas.set_can_focus(True) self._canvas.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.POINTER_MOTION_MASK) self._canvas.connect("draw", self._draw_cb) self._canvas.connect("button-press-event", self._button_press_cb) self._canvas.connect("button-release-event", self._button_release_cb) self._canvas.connect("motion-notify-event", self._mouse_move_cb) self._canvas.connect("key_press_event", self._keypress_cb) self._width = Gdk.Screen.width() self._height = Gdk.Screen.height() - (GRID_CELL_SIZE * 1.5) self._scale = self._height / (8.0 * TILE_HEIGHT) self.tile_width = TILE_WIDTH * self._scale self.tile_height = TILE_HEIGHT * self._scale # Generate the sprites we'll need... self._sprites = Sprites(self._canvas) self.grid = Grid(self._sprites, self._width, self._height, self.tile_width, self.tile_height, self._scale, colors[0]) self.deck = Deck(self._sprites, self._scale, colors[1]) self.deck.board.move((self.grid.left, self.grid.top)) self.hands = [] self.hands.append(Hand(self.tile_width, self.tile_height)) self._errormsg = [] for i in range(4): self._errormsg.append(error_graphic(self._sprites)) self._highlight = highlight_graphic(self._sprites, self._scale) self._score_card = blank_tile(self._sprites, scale=self._scale * 2, color=colors[1]) self._score_card.set_label_attributes(64) self._score_card.move(((int(self._width / 2) - self.tile_width), int(self._height / 2) - self.tile_height)) # and initialize a few variables we'll need. self.buddies = [] self._my_hand = MY_HAND self.playing_with_robot = False self._all_clear()
def __init__(self, canvas, parent=None, colors=['#A0FFA0', '#FF8080']): self._activity = parent self.colors = colors # Starting from command line if parent is None: self._running_sugar = False self._canvas = canvas else: self._running_sugar = True self._canvas = canvas parent.show_all() self._canvas.set_flags(gtk.CAN_FOCUS) self._canvas.add_events(gtk.gdk.BUTTON_PRESS_MASK) self._canvas.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self._canvas.add_events(gtk.gdk.POINTER_MOTION_MASK) self._canvas.connect("expose-event", self._expose_cb) self._canvas.connect("button-press-event", self._button_press_cb) self._canvas.connect("button-release-event", self._button_release_cb) self._canvas.connect("motion-notify-event", self._mouse_move_cb) self._canvas.connect("key_press_event", self._keypress_cb) self._width = gtk.gdk.screen_width() self._height = gtk.gdk.screen_height() - (GRID_CELL_SIZE * 1.5) self._scale = self._height / (8.0 * TILE_HEIGHT) self.tile_width = TILE_WIDTH * self._scale self.tile_height = TILE_HEIGHT * self._scale # Generate the sprites we'll need... self._sprites = Sprites(self._canvas) self.grid = Grid(self._sprites, self._width, self._height, self.tile_width, self.tile_height, self._scale, colors[0]) self.deck = Deck(self._sprites, self._scale, colors[1]) self.deck.board.move((self.grid.left, self.grid.top)) self.hands = [] self.hands.append(Hand(self.tile_width, self.tile_height)) self._errormsg = [] for i in range(4): self._errormsg.append(error_graphic(self._sprites)) self._highlight = highlight_graphic(self._sprites, self._scale) self._score_card = blank_tile(self._sprites, scale=self._scale * 2, color=colors[1]) self._score_card.set_label_attributes(64) self._score_card.move(((int(self._width / 2) - self.tile_width), int(self._height / 2) - self.tile_height)) # and initialize a few variables we'll need. self.buddies = [] self._my_hand = MY_HAND self.playing_with_robot = False self._all_clear()
def __init__(self, sprites, width, height, tile_width, tile_height, scale, color): # the playing surface self.grid = [] self.blanks = [] for i in range(ROW * COL): self.grid.append(None) # tile spacing self.left_hand = int(tile_width / 2) self.left = int((width - (tile_width * COL)) / 2 + tile_width) self.xinc = int(tile_width) self.top = 0 self.yinc = int(tile_height) for i in range(ROW * COL): self.blanks.append(blank_tile(sprites, scale=scale, color=color)) self.blanks[i].move(self.grid_to_xy(i)) self.blanks[i].set_layer(GRID)