Как не дать игроку ходить по стенам - PullRequest
0 голосов
/ 26 октября 2018

Я создаю тестовый чат с аватарами ... что-то вроде 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;  
     }  
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...