#flash #actionscript-2 #drag #throw
#flash #actionscript-2 #перетаскивание #бросать
Вопрос:
Я разработчик игры под названием «throw» (игра доступна только в виде бета-версии для бета-тестеров). Игра создана с использованием ActionScript 2.0 во Flash 8.
Мой вопрос в том, не мог бы кто-нибудь помочь мне с добавлением кода. Что я имею в виду? Я имею в виду, что если вы перетаскиваете видеоролик под названием «Ball», он просто следует за вашей мышью, пока вы его не уроните.
Довольно простой код:
on(press) {
if (_root.ThrowZone.hitTest(this)) {
startDrag(this);
}
}
on(release) {
if (_root.ThrowZone.hitTest(this)) {
stopDrag();
}
}
У меня также есть настроенный простой код gravity, но я предпочитаю не показывать его, поскольку это не «то», что нужно.
Я хочу, чтобы он бросал «Мяч», когда вы выпускаете movieclip, я имею в виду, что он будет подниматься прямо с разными
скорость в зависимости от того, как быстро вы перемещали его перед выпуском, я также хочу, чтобы он медленно входил и выходил по мере загрузки.
Я попытался немного прикрыть свой код Gravity, изменив его и обратив вспять, изменив экстрасенсов, но тогда это будет
поднимайтесь тем же путем, неудивительно, как вы это бросаете.
Если вам действительно нужно протестировать игру, чтобы увидеть, как она работает, скажите мне в комментарии, и я разместлю ссылку на нее в теме.
Комментарии:
1. Вместо использования AS2, почему бы вам не использовать AS3? AS3 больше подходит для разработки игр, чем AS2
2. Поскольку у меня сейчас нет среды тестирования AS2, я могу только предложить, чтобы вы вместо перетаскивания выбрасывающего объекта перетащили прозрачный целевой объект и заставили выбрасывающий объект перемещаться к целевому объекту на каждом enterframe. Как только щелчок отпущен, используйте оставшееся расстояние между ними для вычисления конечной скорости.
Ответ №1:
Я бы поступил так. На вашей рабочей площадке (root):
_global.$stage = this;
var isDragging = false;
var dragTarget = null;
$stage.onEnterFrame = function() {
if(isDragging){
$stage.dragTarget._x = $stage._xmouse;
$stage.dragTarget._y = $stage._ymouse;
}
}
Затем по мячу:
on(press) {
$stage.isDragging = true;
$stage.dragTarget = this;
}
on(release) {
$stage.isDragging = false;
}