如何阻止玩家在墙上行走

时间:2018-10-26 17:41:42

标签: actionscript-3

我正在建立一个测试头像聊天...在ActionScript3中很麻烦,但是遇到一个问题,每当我单击聊天栏说些什么时,我的头像(当前是一只企鹅)都会走到它-如何防止这种情况发生?换句话说,我该如何建造隔离墙并将企鹅拒之门外?

这是我用来移动企鹅的代码。

stage.addEventListener(MouseEvent.CLICK, myClickReaction);  
// speeds ALONG NYPOTENUSE  
var v:Number = 7;  
// vector of movement  
var dir:int = 100;  
// mouse click point  
var clickPoint:Point = new Point();  
// angle doesn't change metween clicks - so it can be global  
var angle:Number;  

function myClickReaction (e:MouseEvent):void {   
     clickPoint = new Point(mouseX, mouseY);  
     angle = Math.atan2(clickPoint.y - penguin.y, clickPoint.x - penguin.x);  
     dir = angle >= 0 ? -1 : 1;  
     addEventListener(Event.ENTER_FRAME, onEnterFrame);  
}  

function onEnterFrame(e:Event):void {  
     var projectedX:Number = penguin.x + v * Math.cos(angle);  
     var projectedY:Number = penguin.y + v * Math.sin(angle);  
     var diff:Number = clickPoint.y - projectedY;  
     if (diff / Math.abs(diff) == dir) {  
          penguin.x = clickPoint.x;  
          penguin.y = clickPoint.y;  
          removeEventListener(Event.ENTER_FRAME, onEnterFrame);  
     }  
     else {  
          penguin.x = projectedX;  
          penguin.y = projectedY;  
     }  
}  

0 个答案:

没有答案