Среда, 13 Ноября 2024, 11:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Управление мышью - стены, остановка движения.
B@rneyДата: Пятница, 09 Ноября 2012, 20:49 | Сообщение # 21
заслуженный участник
Сейчас нет на сайте
TreinDSM, дада, отправил в личку happy

Правильного решения порой нет, но лучшее решение есть всегда.
TreinDSMДата: Пятница, 09 Ноября 2012, 21:18 | Сообщение # 22
почетный гость
Сейчас нет на сайте
B@rney,

Если отталкиваться от твоего кода, то можно попробовать вот так:
Code

import com.greensock.*;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Point;

var wallz:Rectangle = wall.getBounds(this);
var wallzData = new BitmapData(wallz.width, wallz.height, true, 0);
wallzData.draw(wall);
   
var fishz:Rectangle = fish.getBounds(this);
var fishzData = new BitmapData(fishz.width, fishz.height, true, 0);
fishzData.draw(fish);

var old:Point = new Point(fish.x, fish.y);

fish.addEventListener(MouseEvent.MOUSE_DOWN, onDown);

this.addEventListener(Event.ENTER_FRAME, enterFrameListener);

function enterFrameListener(e:Event):void
{
  if(wallzData.hitTest(new Point(wall.x, wall.y),
                    255,
                    fishzData,
                    new Point(fish.x, fish.y),
                    255
   
                           ))
     {
   fish.x = old.x;
   fish.y = old.y;
   TweenMax.killTweensOf(fish);
  }
  else
  {
   old.x = fish.x;
   old.y = fish.y;
  }
}

function onDown(e:MouseEvent):void
{
  stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
  stage.addEventListener(MouseEvent.MOUSE_MOVE, update);
}

function update(e:Event):void
{
  TweenMax.to(fish, 2 ,{x :mouseX, y: mouseY});
}

function onUp(e:MouseEvent):void
{
  stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
  stage.removeEventListener(MouseEvent.MOUSE_MOVE, update);
}
B@rneyДата: Пятница, 09 Ноября 2012, 21:46 | Сообщение # 23
заслуженный участник
Сейчас нет на сайте
TreinDSM, ох мэн, огромное спасибо happy
Когда смогу опять дать + кину еще в репу, остальное уже сам подкорректирую, еще раз фенкс biggrin


Правильного решения порой нет, но лучшее решение есть всегда.
TreinDSMДата: Пятница, 09 Ноября 2012, 21:50 | Сообщение # 24
почетный гость
Сейчас нет на сайте
Всегда пожалуйста smile
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг