【发布时间】:2015-03-28 00:41:32
【问题描述】:
哈哈...有点奇怪的问题,但它是针对我正在制作的视频游戏的。我需要能够从一组文本地图中加载地图。所以对于这张地图,我有:
//MAPS
var map = new Array();
map[1,1] = "####################";
map[1,2] = "####################";
map[1,3] = "####################";
map[1,4] = "####################";
map[1,5] = "####################";
map[1,6] = "####################";
map[1,7] = "####################";
map[1,8] = "####################";
map[1,9] = "####################";
map[1,10] = "####################";
map[1,11] = "####################";
map[1,12] = "####################";
map[1,13] = "########BBBB########";
map[1,14] = "####################";
map[1,15] = "####################";
map[1,16] = "#############BBBB###";
map[1,17] = "###BBBB#############";
map[1,18] = "####################";
map[1,19] = "####################";
map[1,20] = "BBBBBBBBBBBBBBBBBBBB";
好的...所以“#”字符意味着没有放置任何对象,基本上没有任何东西会在我最后运行时放置它们。
“B”字符将是我制作的方块对象。所以,我本能地投入了 for 循环:
//READING FROM MAPS
var block = new Array();
for (var o = 0; o <= 19; o ++) {
for (var i = 0; i <= 19; i ++) {
var n = map[1,o].charAt(i);
if ( n == "B") {
block[blockCount] = new Object((n*32),(o*32),32,32,"IMAGES/block.png");
blockCount += 1;
}
}
}
好吧,看起来有点容易搞定,但当然,错误。游戏不会在浏览器中运行。如果我不能做类似的事情,我不知道该怎么做。如果代码本身不愚蠢,对我的问题有什么想法/解决方案吗?
感谢您的宝贵时间! -Smy
【问题讨论】:
-
什么样的错误?文本映射如何工作?多行 # 和 B?
标签: javascript arrays for-loop multidimensional-array