Эй, все, поэтому я уже на это некоторое время и наконец решил попросить о помощи. Поэтому я создаю игру в AS3, где object
вращается круговым движением слева направо в зависимости от пользователя мыши. Поэтому у меня есть некоторые переменные, созданные для того, чтобы действовать как трение. То, что я пытаюсь сделать, - это когда object
больше или меньше определенной степени вращения. Я хочу, чтобы объект чувствовал, что он все больше и больше тянется к той стороне, в которой он сейчас находится, и единственный способ, который может сказать объект, вернуться к его исходному положению - если использование щелкает мышью достаточно, так что они больше не действуют на нее и говорят, что скорость увеличивается одновременно с трудностями.Неполадка создания силы тяги и изменения силы с помощью Mouse_Event
Вот переменные я в настоящее время работает с:
//Variables
speed = 0.2;
vx = 0;
friction = 0.93;
maxspeed = 10;
У меня также есть эти кнопки на сцене, так что пользователь может нажимать на них, чтобы изменить вращение object
как так:
mainScreen.leftBtn.addEventListener(MouseEvent.CLICK, leftButtonClicked);
mainScreen.rightBtn.addEventListener(MouseEvent.CLICK, rightButtonClicked);
private function leftButtonClicked(e:MouseEvent):void
{
clickLeft = true;
clickRight = false;
}
private function rightButtonClicked(e:MouseEvent):void
{
clickRight = true;
clickLeft = false;
}
и я пытаюсь настроить механику в моем ENTER_FRAME слушателя событий следующим образом:
//RIGHT = CLOCKWISE +, Left = COUNTER CLOCKWISE -
if (clickRight)
{
vx += speed;
moveSlow = true;
moveFast = false;
}else
if (clickLeft)
{
vx -= speed;
moveSlow = true;
moveFast = false;
}else
{
vx *= friction;
}
//IF object is Past 15 Degrees make object go faster MOVE FAST
if (object.rotation > 15)
{
moveFast = true;
moveSlow = false;
trace("MOVE_FAST");
}else
if (object.rotation < - 15)
{
moveFast = true;
moveSlow = false;
}else
{
vx *= friction;
}
object.rotation += vx;
//lumberJack.rotation += speed;
//boundaries of object
if (vx > maxspeed)
vx = maxspeed;
else if (vx < -maxspeed)
vx = -maxspeed;
Я знаю, что мне нужно добавить что-то в if object.rotation
, но не уверен, что я также знаю, что мне нужно добавить что-то в прослушиватели событий с нажатой кнопкой мыши, чтобы манипулировать скоростью или трением, чтобы пользователь мог отвлечься от силы, действующей на нее , Я пробовал несколько раз, но все еще не могу понять, как это понять. На данный момент объект вращается влево или вправо в зависимости от входа пользователя и говорит, что объект движется влево, а пользователь нажимает вправо. object
медленно перемещается влево, а затем возвращается к нормальной скорости.
Пожалуйста, если кто-нибудь может помочь мне понять это, я буду очень благодарен!
Вы пытаетесь заставить свой объект вести себя как колесо с центром масс ось? Для этого вам, вероятно, придется выполнить немного физических вычислений. – Vesper
Да, это в значительной степени то, что я пытаюсь добиться благодаря весне. Я пойду проверить, могу ли я найти некоторые уроки. – Nathan
Существует игра, в которой есть механика, пытающаяся реализовать. Если я пришлю вам ссылку, вы можете помочь мне узнать, что я имею в виду? – Nathan