[go: up one dir, main page]

Menu

[cbc481]: / crochess.py  Maximize  Restore  History

Download this file

104 lines (78 with data), 3.0 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
from piece import PieceType
from painter_context import PainterContext
# from painter import Painter
from piece_painter import PiecePainter
from board_painter import BoardPainter
from board import BoardType
from board import Board
from rules import Rules
from game import Game
from scene import Scene
import debug_
class CroChess(object):
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("CroChess screen")
self.window.connect('delete_event', self.delete_event)
# self.window.set_border_width(10)
self.window.resize(200, 64)
self.init()
self.init_game()
self.init_scene()
self.window.show()
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def init(self):
self.drawing_area = gtk.DrawingArea()
self.drawing_area.set_size_request(*self.window.get_size())
self.drawing_area.set_events(gtk.gdk.POINTER_MOTION_MASK |
gtk.gdk.POINTER_MOTION_HINT_MASK )
# WARNING: GTK+ doc on some occasions mentions 'expose_event',
# but it really is 'expose-event'!
self.drawing_area.connect('expose-event', self.cb_expose_game)
# self.drawing_area.connect('expose-event', self.cb_expose_scene)
self.window.add(self.drawing_area)
self.drawing_area.show()
def init_game(self):
bt = BoardType(BoardType.Discovery)
self.game = Game(Rules(Board(bt)))
bt_2 = BoardType(BoardType.Discovery)
self.game.rules.init_board(bt_2)
def init_scene(self):
bt = BoardType(BoardType.ConquestOfTlalocan)
self.scene = Scene(None)
self.scene.move_shaman_2(bt)
def cb_expose_game(self, area, event):
drawable = self.drawing_area.window
gc = drawable.new_gc()
cm = gc.get_colormap()
painter = BoardPainter(drawable, self.game.rules.board)
pc = PainterContext(gc, self.game.rules.board,False) # True # False
pc.cc = pc.get_color_context(self.game.rules.board.type)
painter.clear_area()
painter.draw_board(pc)
# painter.draw_piece(pc, PieceType(-PieceType.Starchild))
return True
def cb_expose_scene(self, area, event):
drawable = self.drawing_area.window
gc = drawable.new_gc()
cm = gc.get_colormap()
painter = BoardPainter(drawable, self.scene.board)
pc = PainterContext(gc, self.game.rules.board, False) # True # False
pc.cc = pc.get_color_context(self.scene.board.type)
painter.clear_area()
painter.draw_board(pc)
# painter.draw_piece(pc, PieceType(-PieceType.Starchild))
return True
def main():
gtk.main()
if __name__ == "__main__":
hello = CroChess()
# hello.init()
main()