求教:一个类似迷宫类的问题
[img]http://space.flash8.net/bbs/attachments/month_0806/20080628_7a0bb3083f17ce11a002K8Ztn3gXi7Lg.jpg[/img]类似上图的地图,方格是路,我通过键盘控制红点走方格,我想把红点已经走过的路封死,或者說,红点已经走过的路不能再走,
这应该怎么做呢? 抱歉,图看不到。
这类要注意一点,就是数据与图像最好分离。如果可以最好开个数组来记录路径,而不是控制显示出来的对象。 我之前的思路
一 將走过的坐标x,y记录到一数组1 arr1=[x,y]
二 將数组1存入一个二维数组2,arr2=[[x,y],[x2][y2]]
三 將下一步要走的坐标m,n记录到数组3 arr3=[m,n]
四 然后循环arr2 查找arr2中是否有跟arr3 相同的元素,如果有则是死路。
下面这个是数组对比函数(感谢之前闪吧的朋友的提醒)
function getIndex(arr1,arr2):Number {
for (var k in arr2) {
if(arr1.toString()==arr2[k].toString())
{
return Number(k);
}
else return -1;
}
}
不过arr1.toString的方法好像不通用。不知道有没有其他的方法能实现数组对比? 整张地图就是一个数组;
然后每走一步就设定数组中相应方块的walkable=false;
你自己找区块游戏教程看看.. [quote]原帖由 [i]zijiguang[/i] 于 2008-6-30 11:29 发表 [url=http://bbs.blueidea.com/redirect.php?goto=findpost&pid=4083359&ptid=2867330][img]http://bbs.blueidea.com/images/common/back.gif[/img][/url]
整张地图就是一个数组;
然后每走一步就设定数组中相应方块的walkable=false;
你自己找区块游戏教程看看.. [/quote]
这个方法不错,效率也高~ :D 感谢楼上二位,不过我还是用我自己的土办法,我之前循环写错了
页:
[1]