Суббота, 23 Ноября 2024, 14:58

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
перемещение от точки к точке
andarkyДата: Пятница, 12 Октября 2012, 16:53 | Сообщение # 1
старожил
Сейчас нет на сайте
Аналогично как в Unity это делает функция LERP

• объект в точке x0, y0
• <клик> и объект перемещается в точку клика {перемещение происходит за определенное кол-во кадров}
Как это рассчитать?

кто силен в математике?



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
anton-garДата: Пятница, 12 Октября 2012, 17:05 | Сообщение # 2
WEBmaster
Сейчас нет на сайте
Вот.
Code
private var speed:int = 10;

public function Main()
{
    addChild(missile);
    missile.x = 300;
    missile.y = 200;
    addEventListener(Event.ENTER_FRAME, playGame);
}

private function playGame(event:Event):void
{
    var targetX:int = mouseX - missile.x;
    var targetY:int = mouseY - missile.y;
    missile.rotation = Math.atan2(targetY, targetX) * 180 / Math.PI;
    //Скорость по x зависит от угла, когда он равен 90 градусам, или -90 градусам, vx должна быть равна 0.
    var vx:Number = speed * (90 - Math.abs(missile.rotation)) / 90;
    var vy:Number;//Скорость по y -это разность speed и vx.
    if (missile.rotation < 0)
        vy = -speed + Math.abs(vx);//идем вверх.
    else
        vy = speed - Math.abs(vx);//идем вниз.

    missile.x += vx;
    missile.y += vy;
}

Добавлено (12.10.2012, 17:05)
---------------------------------------------
Смотрите шаг 7, будет что-то не понятно - мне в л.с.


GECKДата: Пятница, 12 Октября 2012, 17:36 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
anton-gar, просили же просто линейную интерполяцию.
Пусть xm, ym - координаты щелчка, n - требуемое кол-во кадров. Тогда положение на i-том кадре будет
Code
x = x0 + i * (xm - x0) / n;
y = y0 + i * (ym - y0) /n;

где 0 <= i <= n


Всё гениальное просто. И хреново работает.
andarkyДата: Суббота, 13 Октября 2012, 00:57 | Сообщение # 4
старожил
Сейчас нет на сайте
GECK,
примерно к такому и я пришел,
но у меня недолет/перелет в зависимости от места клика положения объекта



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
aallaДата: Суббота, 13 Октября 2012, 09:28 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
может для начала стоило бы указать в каком пространстве это дело происходит), так как не все тут наверное знают классы .NET , и в том чиcле unity если 2d то может стоит учесть их ширину,высоту, и сам поинт(где находится координата точки т.е начало координат на самом изображении.)
andarkyДата: Понедельник, 15 Октября 2012, 15:43 | Сообщение # 6
старожил
Сейчас нет на сайте
aalla,
причем тут вообще .NET ??

это МАТЕМАТИКА школьная!
просто я балбес не учился как следует...

я вообще стараюсь .NET за квартал стороной обходить, не созрел пока я для него



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
GECKДата: Понедельник, 15 Октября 2012, 16:36 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Quote (andarky)
недолет/перелет в зависимости от места клика положения объекта

Значит косяки в реализации. Код смотреть надо.


Всё гениальное просто. И хреново работает.
  • Страница 1 из 1
  • 1
Поиск:

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