Actionscript 3 蛇和梯子。。电影剪辑怎么能爬上梯子?

Actionscript 3 蛇和梯子。。电影剪辑怎么能爬上梯子?,actionscript-3,flash-cs6,Actionscript 3,Flash Cs6,我在开发这个蛇梯游戏时遇到了这个问题,我非常希望你们能帮我解决这个问题。我已经创建了董事会和头像。唯一的问题是我不能让阿凡达在梯子上移动,也不能让蛇在梯子上移动。有人能帮我吗?我现在非常绝望,非常感谢你们的帮助,谢谢你们 编辑: 这是我到目前为止写的代码这是我到目前为止写的一些代码 stop(); var xCoord:Array = [141,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,4

我在开发这个蛇梯游戏时遇到了这个问题,我非常希望你们能帮我解决这个问题。我已经创建了董事会和头像。唯一的问题是我不能让阿凡达在梯子上移动,也不能让蛇在梯子上移动。有人能帮我吗?我现在非常绝望,非常感谢你们的帮助,谢谢你们

编辑:

这是我到目前为止写的代码这是我到目前为止写的一些代码

stop();

var xCoord:Array = [141,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,471,360,251,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,471,360,251,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,471,360,251,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,471,360,251,251,360,471,580,691,799,910,1019,1127,1238,1238,1127,1019,910,799,691,580,471,360,251];
var yCoord:Array = [675,670,670,670,670,670,670,670,670,670,670,602,602,602,602,602,602,602,602,602,602,534,534,534,534,534,534,534,534,534,534,466,466,466,466,466,466,466,466,466,466,399,399,399,399,399,399,399,399,399,399,331,331,331,331,331,331,331,331,331,331,262,262,262,262,262,262,262,262,262,262,195,195,195,195,195,195,195,195,195,195,127,127,127,127,127,127,127,127,127,127,60,60,60,60,60,60,60,60,60,60];

var arrSquares:Array = new Array(xCoord.length);

var spaceIndex:Number = 0;

var delay:Number = 400;

var tm:Timer = new Timer(delay);
tm.addEventListener(TimerEvent.TIMER, mover);
tm.addEventListener(TimerEvent.TIMER_COMPLETE, moveDone);

spinner.addEventListener(MouseEvent.CLICK, doSpin);
var total:Number =0;
function doSpin(mevt:MouseEvent):void {
var rn:Number = Math.round(5*Math.random()+1);

txtCount.text = String(rn);
total = total + rn;
txtTotal.text = String(total);



txtCount.visible = true;
spinner.removeEventListener(MouseEvent.CLICK, doSpin);




tm.reset();
tm.repeatCount = rn;
tm.start();

}



function mover(tevt:TimerEvent):void {
spaceIndex = (spaceIndex+1)%(xCoord.length);
chip.x = xCoord[spaceIndex];
chip.y = yCoord[spaceIndex];



}


function moveDone(tevt:TimerEvent):void {
spinner.addEventListener(MouseEvent.CLICK, doSpin);
txtCount.visible = false;

}

我不知道在哪里放置执行附加到芯片上的动作tween的if语句(化身)

好了,这是我最初的想法。我会为你想要上下移动的角色创建一个动画。为了简单起见,制作一个攀爬动画,然后制作一个坠落动画。这很容易做到,只需在插入关键帧后使用时间线上的tween选项

看起来您已经创建了动画。现在,他是滑上还是滑下取决于你的蛇和梯子在哪里。只有您知道这一点,所以在您的电路板上的特定位置(例如,x=200和y=200),我们希望if语句出现。但我们只希望它发生在你的头像完成移动之后。可能会创建一个新函数,并将以下内容添加到mover函数中

var checkX:Number = chip.x;
var checkY:Number = chip.y
checkLandingSpace(checkX,checkY); 
现在让我们做一个函数checkLandingSpace,它将检查我们是在拍摄还是在梯子上

       function checkLandingSpace(checkX:Number,checkY:Number):void
    {
         if (checkX = (your point) || (another point) //first check all x points...continue like this for all points where a ladder is...the || means or
         {
              if (checkY = (your points....etc)
              {
                   mc_avatarLadder.play(); //choose your instance name to be mc_avatar, then play the tween
              }
         }
    }
或者查看这篇文章,了解如何将一个变量等同于数组中的任何元素

现在为你的梯子写下这个。然后对你所有的射击点做同样的事情。除了,使用实例名mc_avatarShoot制作一个新动画,然后只需说mc_avatarShoot.play()

之后,确保在两个实例的最后一帧中,您只需输入gotoAndStop(1);只是为了确保下次播放动画时它已准备就绪


当然,适当地调整你的计时器。这基本上可以做到,可能有一些事情需要调整以适应你自己的游戏,但是遵循这一点并理解它,你就会得到它

谢谢!我对as3非常陌生,尽管我已经看过soe易学教程,包括一点动画和一些代码。我试过在我的头像上涂些吐温。我在化身位于阶梯底部时执行动画。我打算让它爬上梯子,但绝不能。或者,只是我?你能告诉我密码吗?先生,如果你愿意,我可以给你佛罗里达州的副本告诉她或者发布一些相关的代码。不幸的是,我有两个小时没有CS6电脑了。如果你能等到那时,我可以给你更多的细节。或者你可以发布一些代码,我会在这里查看,只需编辑你的问题=)谢谢你的帮助!但太糟糕了,我不明白):而且我还没有备份原始文件,所以我想,我把事情搞砸了。你还能修好它吗?我会把文件寄给你。若有,;你还好吗?实际上这是一个学校项目,我非常渴望得到答案。请这对我来说真的很重要(: