用哪种语言/GUI库制作地图编辑器?

7
我正在设计一个跨平台的地图编辑器用于我开发的应用程序,但我不确定在语言/ GUI 库选择方面采取什么方法。仅提供一些基本信息,编辑器需要解析和输出 xml 文件。
我最熟悉 C++、Lua 和 Perl,但我也愿意使用 Python(可以练习)。为了提高生产力,我更喜欢使用脚本语言。
感谢任何建议。
我还希望支持填写表格等功能。
P.S. 我已经测试过扩展现有地图编辑器,但它们在根本上没有提供我所需的功能,因此需要我重新编写整个编辑器。
3个回答

4

我一直偏爱使用Gtk2和Perl 5,但这种组合最适用于Linux。你打算在什么操作系统下运行?

以下是一个使用Gtk2的Perl 5示例脚本:

#!/usr/bin/perl

use strict;
use warnings;

use Gtk2;

Gtk2->init;

my $window = Gtk2::Window->new;
my $vbox   = Gtk2::VBox->new;
my $label  = Gtk2::Label->new("click the button");
my $button = Gtk2::Button->new("click me");

my $i;
$window->signal_connect(destroy => sub { Gtk2->main_quit });
$button->signal_connect(clicked => sub { $label->set_text(++$i) });

$window->add($vbox);
$vbox->add($label);
$vbox->add($button);

$window->show_all;

Gtk2->main;

2
我可以推荐使用Python和PyQt来完成这项工作。Qt提供了一个用于场景管理的类(即分层对象放置、缩放、命中测试、事件、坐标转换等,甚至包括碰撞检测),称为QGraphicsScene,以及一个匹配的控件来显示它所有的内容,称为QGraphicsView。它还提供了拖放支持,从而实现交互式对象放置。
使用这些类实现地图只需要创建QGraphicItems(矩形、多边形等),并将它们添加到场景中,Qt会处理剩下的部分。您可以阅读文档,特别是文档 "The Graphics View Framework",了解它们如何配合使用。最近我为客户实现了类似的功能,并对这种方法非常满意。

只是为了完整性 - 您也可以使用Lqt将Qt与Lua一起使用。它还可以与Graphics View框架一起使用,我经常使用它 - 我使用Lqt创建了一种可视化语言+编辑器,因此可以以这种方式使用。但是,请注意,Lqt仍在进行中。 - Michal Kottman

2
基于 Lua 的基础,我建议使用 IUP 来创建 GUI。它非常轻量级,可以在 Linux 和 Windows 上移植,并且与 Lua 集成得很好。对于喜欢 Gtk 的人来说,IUP 包括一个 Gtk 驱动程序,因此它原则上可以移植到任何 Gtk 可以移植的系统上。
另一个可行的选择是 wxWidgets,它也有一个与 Lua 集成的包装器。 Lua for Windows 组合包中都包含了 IUP 和 wxWidgets。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接