1

我必须在我们的产品中实现一些脚本功能。脚本通常用于简单的事情,例如:

IF param1 > 5 + param3 AND current time > 18.00:
  SET param2 TO 3
ELSE
  SET param2 TO 4

另一个非常常见的任务是让参数在一天中变化,最好使用一些带有可以在视觉上移动的设定点的线图等。

现在,我需要如何实现这一点的灵感。我们的客户今天使用的非常过时的工具只不过是一种图形化的基本方言:您不必以纯文本输入脚本,但可以拖动“IF”、“THEN”、“ELSE”、“Parameter”等符号,“当前时间”等,放到画布上,你必须知道和理解语法和语义。我认为我们可以做得更好。

我一直在寻找图形语言,但还没有找到一个引人注目的系统。

例如,有 Lego Mindstorm 语言,它非常简单,但非常针对自动化,并且不能很好地处理数学和逻辑。有labview,对于普通用户来说似乎有点太复杂了。有用于 PLC 的梯形图编程,但我的经验是它们也非常面向自动化并且不能很好地处理数学。有 Yahoo Pipes 和一些软件合成器的互连盒方法,但当需要数学时,它们也很麻烦,而且控制序列也不是很自然。然后是非常简单的向导式替代方案,例如 Outlook 和 Evolution 中的过滤器,但我认为它们不够灵活。

那么,您偶然发现并喜欢哪些图形语言?(我知道几乎没有程序员,包括我自己,喜欢这种语言,但我认为它们在这里是有目的的。)

4

1 回答 1

1

您是在寻找表达式树类型的图形语言还是命令式语言?

以下是我过去使用过的几种图形语言。不幸的是,它们不是通用或独立的产品,所以它们只是作为一种灵感:

Unreal Kismet:一个图形化的、基于节点的脚本游戏脚本环境。基于事件生成器和操作。每个节点都可以接受输入事件并生成输出事件。非常适合简单的脚本编写,其中游戏需要对游戏中的某些事件做出反应(当玩家进入触发音量时锁门等)。实现复杂的逻辑(例如 for 循环、数组等)非常繁琐且容易出错,并且此类构造通常使用 UnrealScript 通过构建专门的 Kismet 节点来实现。基于事件流。

Native-instruments Reaktor:模块化合成器环境。有点类似于 Kismet,但用于生成和处理音频和 MIDI 事件。同样,创建复杂的逻辑也是乏味的。

着色器/合成/动画树编辑器:许多游戏引擎和 3D 软件都包含这些。基本上是一个表达式树,其中有带有输入和输出的操作员节点。

AI 行为树:不仅仅是表达式树,类似于有限状态机。

于 2011-04-07T08:20:13.137 回答