2010-09-04 85 views
7

我正在为我开发的应用程序设计一个跨平台地图编辑器,并且我不确定在语言/ gui库选择方面采取了哪些方法。只是为了一些基本信息,编辑器需要解析和输出xml文件。我最喜欢C++,Lua和Perl,但我也愿意使用Python(可以使用练习)。我更喜欢用脚本语言来提高生产力。制作地图编辑器的语言/ GUI库

任何建议表示赞赏,谢谢。

我也想支持填写表格等。

P.S.我已经测试过扩展现有的地图编辑器,但它并不是真的值得,因为它们没有提供我在基本级别上需要的功能,无论如何我只需要重新编写整个东西。

回答

2

我可以推荐使用Python和PyQt的作业。 Qt为QGraphicsScene提供了一个用于场景管理的类(即分层对象放置,缩放,命中测试,事件,坐标转换等,甚至是碰撞检测)以及一个称为QGraphicsView的匹配控件。它还提供对拖放的支持,从而实现交互式对象放置。使用这些类实现一个map实际上只是创建QGraphicItems(矩形,多边形等)并将它们添加到场景中,其余部分由Qt完成。你可以看看它们是如何适合阅读文档的,特别是文档“The Graphics View Framework”。我最近不得不为客户实施类似的服务,并对这种方法非常满意。

+0

只需完成 - 您可以使用Qt与Lua,使用[Lqt](http://code.google.com/p/lqt/)。它也适用于Graphics View框架,并且我使用了很多 - 我使用Lqt创建了一个可视化语言+编辑器,因此它可用于这种方式。但是请注意,Lqt仍在进行中。 – 2010-09-05 07:09:59

4

我的首选项总是Gtk2和Perl 5,但是这种组合在Linux上效果最好。你要运行什么操作系统?

下面是一个例子的Perl脚本5使用Gtk2的视觉:

#!/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

建立在Lua的基础上,我会为GUI推荐IUP。它轻量级,可移植到Linux和Windows,并与Lua完美集成。对于那些喜欢Gtk的人来说,IUP包含一个用于Gtk的驱动程序,所以它原则上可以移植到Gtk可以移植的任何系统。

另一个合理的选择是wxWidgets,它也有一个包装与Lua整合。

IUP和wxWidgets都包含在Lua for Windows包中。