我正在尝试在 StarCraft 2 Editor 中创建一个event based editor
类似的算法,它可以支持:
- 创建用户界面
- 播放声音
- 处理键盘/鼠标输入
- 显示消息
- 按钮(或一些引用的 UI 对象)被按下等。
与星际争霸 2 编辑器中的内容几乎相同(当然也不是 3D 内容)
到目前为止,我正在考虑使用JSON
,添加对象中的每个事件,然后循环它们并使用该addEventListener()
方法创建一个事件。
JSON 事件对象(当然它将由用户在编辑器中创建,无需编程):
var Events={
//your event's names here
onReady:{ //on page ready to manipulate
displayMessage:{//just a simple popup
text:"Hello user!",
title:"Welcome!",
type:"normal",
},
createButton:{ //creates a buton on the screen
text:"Click me!",
id:"myButton"
}
},
onClick:{
id:"myButton" ,//the id of the button we just created
actions:{ //the actions applied after we click the button
displayMessage:{//just a simple popup
text:"You pressed me!",
title:"Button",
type:"error",//show the message as an error
}
}
}
}
我发现了一些软件(GameMaker、Construct 2、GameDevelop),event based editor
如果你想了解我在说什么(如果你还不知道星际争霸 2 编辑器)
我的问题是: 我可以用来实现这一目标的最佳算法是什么?