Ejemplo n.º 1
0
    def init(self):
        self.map_widget = EditorWidget(self)
        self.view = self.map_widget

        self.main_window = MainWindow(self)
        self.main_window.setCentralWidget(self.map_widget)
        self.main_window.show()

        self.create_new_map()
Ejemplo n.º 2
0
class MapController(object):

    """ 地图控制器 """

    def __init__(self):
        self.tiled_map = None

    def create_new_map(self):
        self.tiled_map = tiled_map.TiledMap()
        self.view.on_changed_tiled_map(self.tiled_map)

    def open_map_file(self):
        """ 打开一个地图文件 """

        map_file_path = QtGui.QFileDialog.getOpenFileName(
            self.view, u"打开地图文件", filter="*.mcm")

        if map_file_path:
            try:
                self.tiled_map = map_serialize.TiledMapSerializer().read_from_file(
                    map_file_path)
            except Exception as e:
                message = u"打开地图文件时出现异常:%s" % e.message
                QtGui.QMessageBox.warning(None, u"警告", message)
                return

            self.view.on_changed_tiled_map(self.tiled_map)

    def open_map_picture(self):
        """ 打开游戏地图的背景图片 """

        image_file_path = QtGui.QFileDialog.getOpenFileName(
            self.view, u"打开背景文件", filter="*.jpg")

        if image_file_path:
            map_image = QtGui.QImage()
            if not map_image.load(image_file_path):
                message = u"打开地图图片错误:%s" % image_file_path
                QtGui.QMessageBox.warning(None, u"错误", message)
                return

            self.view.on_changed_map_image(map_image)

    def save_map_file(self):
        """ 保存地图文件 """
        file_path = QtGui.QFileDialog.getSaveFileName(
            self.view, u"保存地图文件", "", ".mcm")
        if file_path:
            try:
                map_serialize.TiledMapSerializer().dump_to_file(
                    self.tiled_map, file_path)
            except Exception as e:
                message = u"保存地图文件时出现异常:%s" % e.message
                QtGui.QMessageBox.warning(None, u"警告", message)
                return

    def quit(self):
        """ 退出程序 """
        QtGui.QMessageBox.warning(None, u"退出", u"警告")

    def init(self):
        self.map_widget = EditorWidget(self)
        self.view = self.map_widget

        self.main_window = MainWindow(self)
        self.main_window.setCentralWidget(self.map_widget)
        self.main_window.show()

        self.create_new_map()