Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Ivan76russ
0 / 0 / 2
Регистрация: 30.09.2015
Сообщений: 24
#1

При движении заносит объект - ActionScript/AS 3.0

09.01.2018, 17:56. Просмотров 238. Ответов 5
Метки нет (Все метки)

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
var Y = mouseY-object.y;
var X = mouseX-object.x;
var rot = Math.atan2(Y, X);
var grad = rot*180/Math.PI;
object.rotation = grad;
var radians:Number = object.rotation*Math.PI/180;
var vectorX:Number = Math.cos(radians);
var vectorY:Number = Math.sin(radians);
var speed:Number = 0.09;
this.addEventListener(Event.ENTER_FRAME, frameHandler);
function frameHandler(event:Event):void {
object.x += speed*vectorX;
object.y += speed*vectorY; } }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2018, 17:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос AS 3.0 При движении заносит объект (ActionScript):

Тормозит при движении мышки
Уважаемые люди, прошу помочь. Решил сделать сайт на основе некого шаблона,...

Как устранить подёргивание при движении.
В чём может быть причина этого недоразумения?

Менять координату при движении мыши
Я до этого работал только в AS2 и там при движении мыши по оси Х координата...

Как избежать смены 3d вида при движении объектов?
если применить к объекту rotationX,Y,Z - и потом изменять его координаты - то...

Drag and drop при движении мышкой за пределами сцены
Подскажите как достичь такого же эффекта перетаскивания как на данном примере...

Зафиксировать объект при создании баннера-растяжки
Уважаемые друзья, пожалуйста, помогите решить проблему. Создан резиновый...

5
TanaTiX
Модератор
2793 / 1647 / 168
Регистрация: 19.02.2011
Сообщений: 5,964
Завершенные тесты: 1
09.01.2018, 18:00 #2
А в чем вопрос?
0
Ivan76russ
0 / 0 / 2
Регистрация: 30.09.2015
Сообщений: 24
09.01.2018, 18:07  [ТС] #3
Как сделать что бы не заносило? И все было круто) Управляемо так сказать
0
TanaTiX
Модератор
2793 / 1647 / 168
Регистрация: 19.02.2011
Сообщений: 5,964
Завершенные тесты: 1
09.01.2018, 20:58 #4
Лучший ответ Сообщение было отмечено Ivan76russ как решение

Решение

Думаю, примерно так. Код не причесывал.
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import flash.events.Event;
 
 
var speed: Number = 1.0;
this.addEventListener(Event.ENTER_FRAME, frameHandler);
function frameHandler(event: Event): void {
    var Y = mouseY - object.y;
    var X = mouseX - object.x;
    var rot = Math.atan2(Y, X);
    var grad = rot * 180 / Math.PI;
    object.rotation = grad;
    var radians: Number = object.rotation * Math.PI / 180;
    var vectorX: Number = Math.cos(radians);
    var vectorY: Number = Math.sin(radians);
    object.x += speed * vectorX;
    object.y += speed * vectorY;
}
1
Ivan76russ
0 / 0 / 2
Регистрация: 30.09.2015
Сообщений: 24
10.01.2018, 01:23  [ТС] #5
Спасибо =),но с врагами такое не работает,вот сейчас это:
ActionScript 3
1
2
3
4
5
6
7
8
9
stage.addEventListener(Event.ENTER_FRAME, moveEnemy);
function moveEnemy(e:Event){
var xmov = (object.x-enemy.x)/100;
var ymov = (object.y-enemy.y)/100;
var angle = Math.atan2(ymov,xmov)*180/Math.PI;
enemy.x += xmov + 3;
enemy.y += ymov + 3;
enemy.rotation = angle; 
}
0
TanaTiX
Модератор
2793 / 1647 / 168
Регистрация: 19.02.2011
Сообщений: 5,964
Завершенные тесты: 1
12.01.2018, 01:53 #6
Цитата Сообщение от Ivan76russ Посмотреть сообщение
с врагами такое не работает
все работает
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import flash.events.Event;
 
 
var speed: Number = 1.0;
this.addEventListener(Event.ENTER_FRAME, frameHandler);
function frameHandler(event: Event): void {
    var Y = object.y - enemy.y;
    var X = object.x - enemy.x;
    var rot = Math.atan2(Y, X);
    var grad = rot * 180 / Math.PI;
    object.rotation = grad;
    var radians: Number = object.rotation * Math.PI / 180;
    var vectorX: Number = Math.cos(radians);
    var vectorY: Number = Math.sin(radians);
    enemy.x += speed * vectorX;
    enemy.y += speed * vectorY;
}
0
12.01.2018, 01:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2018, 01:53
Привет! Вот еще темы с решениями:

При передвижении мыши объект перестает двигаться
Здравствуйте, ситуация такая: у меня лента, выходящая за пределы экрана справа...

Alternativa3d не отображается объект при добавлении через обработчик
В конструкторе Main() последняя строка (закоментрована) добавляет на сцену...

Изменение цвета объекта при нажатии на другой объект
Как можно вызвать функцию изменения цвета объекта при нажатие на другой обект?

Dispatch событий при конвертировании MovieClip в объект, состоящий из набора Bitmap
Делаю программно кешировку векторного мувика (допустим длинна 15 кадров). И вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru