С Новым годом! Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339

Передвижение спрайтов с разной скоростью

11.08.2015, 16:10. Показов 1222. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в следующем, что имеем 2 многоугольника, у одного скорость 0.5, у второго 1. На деле имеем что движутся они с одинаковой скоростью


код элементарный,


ActionScript 3
1
2
3
4
5
6
7
8
public function MoveBody (object:DisplayObject ):void // перемещаем центр спрайта не апдейтя его вершин
{
 
    trace("object.x0=",object.x);
    object.x+=Vx; //Vx это постоянная скорость.
    trace("object.x1=",object.x);
 
}
прилагаю свфку
Вложения
Тип файла: swf rectangle.swf (15.9 Кб, 6 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2015, 16:10
Ответы с готовыми решениями:

Поезд ехал t1 ч со скоростью v1 км / ч, t2 ч со скоростью v2 и t3 ч со скоростью v3. Определить пройденные пути с разной
Поезд ехал t1 ч со скоростью v1 км / ч, t2 ч со скоростью v2 и t3 ч со скоростью v3. Определить пройденные пути с разной скоростью и весь...

Потоки работают с разной скоростью
public class Person extends Thread{ private boolean isCancel = false; private int count = 0; public Person (String...

Выдача udp с разной скоростью
Всем добра. Пытаюсь выдавать данные размером по 1000 байт с разной скоростью сетевуха 1Гбит/c. У меня после каждого sendto стоит...

17
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
11.08.2015, 16:23
а в чем прикол?
Вижу какойто object.x += Vx;
это один клип?
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 16:25  [ТС]
Vx это скорость, у нас 2 спрайта. Вызываем функцию перемещения для каждого через определенные интервалы времени.
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
11.08.2015, 16:36
а как вызываете?
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 16:41  [ТС]
ActionScript 3
1
2
this.timer=new Timer (30,500) ; 
this.timer.addEventListener(TimerEvent.TIMER , GoForest ) ;
внутри функции Goforest
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
11.08.2015, 16:54
покажи код хендлера
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 17:06  [ТС]
ActionScript 3
1
2
3
4
5
6
7
8
9
10
 public function GoForest (e:TimerEvent) 
 {  
                        MoveBody(this.Rect ,t2) ;
                                         
            Vx+=Fx/Mass * t2; // ускорения нет, поэтому приращение будет 0
            Vy+=Fy/Mass * -t2;
            
            rotateAroundCenter(Rect, t2) ; // угловая скорость равна 0
 
}
Добавлено через 1 минуту
параметр t2 тут будет 1, и поэтому Dx=Vx * t2 = Vx, поэтому я опустил параметр t2 в коде выше

Добавлено через 2 минуты
все дело в функции поворота я ее закомментил и заработало, но теперь надо ее как-то подружить все же с функцией сдвига тела

вот функция поворота

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public function rotateAroundCenter(object:DisplayObject, t:Number):void // вращаем спрайт но не апдейтим вершины
{
var Znak : int = 1 ;
        (t == 0 ) ? Znak=1 : Znak = Math.abs(t) / t ;
        var angle : Number = Math.abs(t) * AngVel + ((Ftorq/Mass)/2) * t * t * Znak ; 
        var center : Point = new Point(XX,YY) ;
        
        angle += object.rotation;
        var a0:Number = - object.rotation * Math.PI / 180;
        var s0:Number = Math.sin(a0);
        var c0:Number = Math.cos(a0);
        var dX0:Number = object.x - center.x;
        var dY0:Number = object.y - center.y;
 
        object.rotation = 0;
        object.x = Math.round(center.x + dX0 * c0 - dY0 * s0);
        object.y = Math.round(center.y + dX0 * s0 + dY0 * c0);
 
        // new rotation
        var r:Number = angle * Math.PI / 180;
        var s:Number = Math.sin(r);
        var c:Number = Math.cos(r);
        var dX:Number = object.x - center.x;
        var dY:Number = object.y - center.y;
 
        object.rotation += angle;
        object.x = center.x + dX * c - dY * s;
        object.y = center.y + dX * s + dY * c;
}
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
11.08.2015, 17:08
ты вызываешь MoveBody для какого-то Rect, Я предполагаю, что это первый спрайт. А где же тогда второй? Ужасные названия переменных, оттого и каша такая
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 17:12  [ТС]
да, это первый спрайт. У меня 2 класса, в каждом таймер на который повешена функция перемещения и поворота тела. Название переменной собирался менять, было лень.
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
11.08.2015, 17:18
Значит ты делаешь им движение с одним и тем же шагом, и одним и темже интервалом времени
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
Vx
Добавлено через 1 минуту
Уменьши интервал в одном таймеров в два раза, и вся эта костыль машина должна работать по твоему требованию
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 17:29  [ТС]
увы так нельзя сделать)

Добавлено через 2 минуты
суть в том что у нас сталкиваются два полигона, все замечательно.Все обсчитывается правильно, но дело в том что спрайт съезжает с вершин к которым он должен быть прикреплен.

Добавлено через 3 минуты
а съезжает он тогда, когда скорости малы.
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 17:39  [ТС]
вот наглядно показывает ситуацию свфка, подождите 30 секунд и увидите
Вложения
Тип файла: swf rectangle.swf (15.9 Кб, 7 просмотров)
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
11.08.2015, 17:42
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
подождите 30 секунд
bazelbodayFaron, она у меня на 2й зависла и выключилась.

Не по теме:

Цитата Сообщение от Saldoran Посмотреть сообщение
вся эта костыль машина
:D

0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
11.08.2015, 17:59  [ТС]
у меня работает, проверил на двух компах

Добавлено через 3 минуты
это не костыль машина, а проблема с тем, что спрайт не хочет по-божески двигаться. Там прога которая умеет ударять выпуклые многоугольники друг об друга, и делает это замечательно.

Добавлено через 1 минуту
мне нужно чтобы спрайт вращался и перемещался адекватно

Добавлено через 1 минуту
банально и просто, вращаться он может. Перемещаться тоже при малой скорости. А вот вместе повернуться и переместиться у него не получается нормально.

Добавлено через 2 минуты
функцию поворота и перемещения я показал. А как тогда сделать чтобы это не было костыль машиной?
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
12.08.2015, 11:02
Предлагаю тебе все переписать. Посмотри код и нейминг конвеншн. И избавься от зависимостей.
Я так понимаю, ты лабу какую-то делаешь и все что тебе нужно сделать, это подкрутить чтоб ехало "абы как".
Если же нет, то лучше все заного написать, ибо за такой код бьют по лицу
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
12.08.2015, 13:25  [ТС]
нет, мне нужно чтобы ехало не абы как а нормально, есть просто спрайт, для которого вызывается функция поворота и перемещения и все, но спрайт при малых скоростях неправильно движется. Вот вся проблема. Нормальный код, вы все придираетесь к имени спрайта. Что все переписать? функция поворота вполне нормальная, функция перемещения тоже.
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
12.08.2015, 13:28
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
функция поворота вполне нормальная, функция перемещения тоже.
Значит проблемы нет
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
12.08.2015, 14:05  [ТС]
если мы только вращаем или только двигаем все работает как надо, но не когда тело движется и поворачивается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2015, 14:05
Помогаю со студенческими работами здесь

Движение шариков по окружности с разной скоростью
Здравствуйте. Дана квадратная область с координатами от 1 до 100, внутри которой размещаются шарики.Каждый шарик имеет собственный радиус,...

Задача о двух принтерах, печатающих с разной скоростью
Подскажите, пожалуйста алгоритм решения задачи. Задача о двух принтерах, печатающих с разной скоростью. Java Даны два принтера. ...

Движение pictureBox с разной скоростью по эллиптической траектории
Как сделать движение нескольких pictureBox с разной скоростью по эллипсу private void button1_Click_1(object sender, EventArgs e) ...

USB модем работает с разной скоростью в течение дня
Есть два модема от МТС: 7,2 и 21,6 мбит/с. Недавно обратил внимание, что с утра и ночью модемы работаю хорошо (но не всегда), а днем...

Нарисовать часы с вращающимися с разной скоростью часовой и минутной стрелками
Напишите программу которая выводит динамическое изображение часов с вращающимися с разной скоростью часовой и минутной стрелками


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru