Aid*_*ido 27 javascript arrays function
- 由Elliot B解决.谢谢!也可以考虑其他修改.
这是结果.谢谢大家,快速回答!http://dl.dropbox.com/u/18785762/Rust/index.html
我正在用javascript编写一个游戏,并且我希望将用于匹配块ID的文件保存到地图编译器中单独的.js文件中的文件,以便我可以轻松编辑.但是,ID存储在一个数组中,我似乎无法正确使用return函数.有帮助吗?
drawmap.js:
function drawmap() {
var images = BlockID();
var level = [
"ssssssssssssssssssssss",
"sgggggggggCCCCCdddddss",
"ssssssssss sssssss"
];
var top = 100;
var left = 100;
var mytop = top;
var myleft = left;
for (y=0; y<level.length; ++y) {
var row = level[y];
for (x=0; x < row.length; ++x) {
var c = row.charAt(x);
if(c != ' ') {
img_create(images[c], mytop, myleft);
}
mytop += 13;
myleft += 27;
}
mytop = top + (y+1)*13;
myleft = left - (y+1)*27;
}
}
Run Code Online (Sandbox Code Playgroud)
mapread.js:
function BlockID() {
var IDs = new Array();
images['s'] = "Images/Block_01.png";
images['g'] = "Images/Block_02.png";
images['C'] = "Images/Block_03.png";
images['d'] = "Images/Block_04.png";
return IDs;
}
Run Code Online (Sandbox Code Playgroud)
Ell*_* B. 43
至少,改变这个:
function BlockID() {
var IDs = new Array();
images['s'] = "Images/Block_01.png";
images['g'] = "Images/Block_02.png";
images['C'] = "Images/Block_03.png";
images['d'] = "Images/Block_04.png";
return IDs;
}
Run Code Online (Sandbox Code Playgroud)
对此:
function BlockID() {
var IDs = new Object();
IDs['s'] = "Images/Block_01.png";
IDs['g'] = "Images/Block_02.png";
IDs['C'] = "Images/Block_03.png";
IDs['d'] = "Images/Block_04.png";
return IDs;
}
Run Code Online (Sandbox Code Playgroud)
有几点需要指出.首先,images未在原始函数中定义,因此为其分配属性值将引发错误.我们通过更改images为更正IDs.其次,你想要归还一个Object,而不是一个Array.可以为对象分配类似于关联数组或散列的属性值 - 数组不能.所以我们将声明var IDs = new Array();改为var IDs = new Object();.
在这些更改之后,您的代码将运行正常,但可以进一步简化.您可以使用简写表示法(即,对象文字属性值简写)来创建对象并立即返回它:
function BlockID() {
return {
"s":"Images/Block_01.png"
,"g":"Images/Block_02.png"
,"C":"Images/Block_03.png"
,"d":"Images/Block_04.png"
};
}
Run Code Online (Sandbox Code Playgroud)
Ber*_*rgi 12
您的BlockID函数使用未定义的变量images,这将导致错误.此外,您不应该使用Array此处 - JavaScripts键值映射是普通对象:
function BlockID() {
return {
"s": "Images/Block_01.png",
"g": "Images/Block_02.png",
"C": "Images/Block_03.png",
"d": "Images/Block_04.png"
};
}
Run Code Online (Sandbox Code Playgroud)
整洁:
function BlockID() {
return {
"s":"Images/Block_01.png",
"g":"Images/Block_02.png",
"C":"Images/Block_03.png",
"d":"Images/Block_04.png"
}
}
Run Code Online (Sandbox Code Playgroud)
要不就
var images = {
"s":"Images/Block_01.png",
"g":"Images/Block_02.png",
"C":"Images/Block_03.png",
"d":"Images/Block_04.png"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
226470 次 |
| 最近记录: |