javascript – 基于事件的编辑器,如星际争霸2编辑器(算法)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 基于事件的编辑器,如星际争霸2编辑器(算法),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1554字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 基于事件的编辑器,如星际争霸2编辑器(算法)](/upload/InfoBanner/zyjiaocheng/758/ea6807e6a8a349f3b71081eaa0bbed17.jpg)
我正在尝试为星际争霸2编辑器中的基于事件的编辑器创建算法,该编辑器可以支持:
>创建UI
>播放声音
>处理键盘/鼠标输入
>显示消息
>按下按钮(或一些引用的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)有一个基于事件的编辑器,如果你想知道我在说什么(如果你还不知道星际争霸2编辑器)
我的问题是:
我可以用来实现这个目标的最佳算法是什么?
解决方法:
听起来像jQuery UI的工作.
当用户在编辑器中创建自定义区域时,它的所有属性都存储在一个对象(可以保存为JSON)中,然后在加载地图时将其作为param应用于div(使用html-attributes).
function create_areas(areas){
var map = $('#map_area');
for(var i=0;i<areas.length;i++){
map.append($('<div>', area[i].params));
}
}
而params看起来像这样:
params = {
width: 100,
height: 200,
....
mousedown: function(){ play_music('hello'); },
keydown: function(e){ alert('you pressed ' + e.keyCode; }
}
像draggable和resizeable这样的jQuery UI工具也可以简化构建编辑器的工作.
内容总结
以上是互联网集市为您收集整理的javascript – 基于事件的编辑器,如星际争霸2编辑器(算法)全部内容,希望文章能够帮你解决javascript – 基于事件的编辑器,如星际争霸2编辑器(算法)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。