Форум
Написать нам
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: as-master  
Движение нескольких стрелок с разными скоростями.
ИгорьДата: Понедельник, 08 Сентября 2008, 09:04 | Сообщение # 1
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
В общем, я ,как обычно, с электронными пособиями...

Ситуация:

Смысл следующий: Там, где жирная П-образная стрелка, движется большая красная стрелочка. От нее, по мере ее продвижения, по "комнатам", разветвляются другие стрелки и движутся своими путями. На выходе они должны вновь войти в главную стрелку. Как согласовать их работу?

Я могу готовый пример показать, но файл большой (около 2 Мб). Его бы доработать, но у меня только этот ЕХЕ-шник, и на чем его делали, неизвестно...

Прикрепления: 9466722.jpg (34.7 Kb)


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
as-masterДата: Понедельник, 08 Сентября 2008, 11:07 | Сообщение # 2
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
В твоем распоряжении ТЫСЯЧА скрипттаймеров.
А тебе и десятка для твоей задачи много будет.

Так вот, по достижению определенной координаты перемещающейся стрелкой
срабатывает очередной скрипттаймер, запускающий движение нового объекта.
Каждый объект управляется своим скриптом, запускаемым таймером с номерами от 1 до ...


Да пребудет с вами ММВ!
 
ИгорьДата: Понедельник, 08 Сентября 2008, 11:14 | Сообщение # 3
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Тьфу, блин, а ведь точно!!! Люди, какие есть таблетки для прочистки мозгов, а? angry

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
ИгорьДата: Вторник, 09 Сентября 2008, 10:51 | Сообщение # 4
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Блин, не так все радужно... Гляньте пример - я вчера до полуночи сидел, но так и не смог сделать, чтобы по достижении стрелки определенной координаты от нее "отпочковывалась" другая... Вот, последний вариант, что удалось... angry

Добавлено (09 Сентябрь 2008, 10:51)
---------------------------------------------
Люди!!! Кто-нибуть!!!

Прикрепления: Media1.mbd (108.9 Kb)


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
Alex3AДата: Вторник, 09 Сентября 2008, 11:35 | Сообщение # 5
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Зачем мучать то место на котором сидишь, лучше это реализовать на флеше и вставить в проект.
Quote (Игорь)
Как согласовать их работу?

Ну а если есть желание помучаться, можно и на билдере.
Согласование не представляет большой проблемы, заведи себе переменную, которая будет
а ля счетчик кадров, в зависимости от ее значения запускай тот или иной участок движения.
Движение каждого елемента организуй отдельным скриптом, и запускай в зависимости от
значения переменной - синхронизатора.
 
ИгорьДата: Вторник, 09 Сентября 2008, 12:43 | Сообщение # 6
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Alex3A, так я так и делал!

Добавлено (09 Сентябрь 2008, 12:37)
---------------------------------------------
Кстати, движение стрелок - это не все. там при щелчке на каждой из комнат открываются окна со схемой и описанием, где какой инструмент, станки и прочее... У меня все в эти движущие стрелки упирается, остальное проблем не представляет...

Добавлено (09 Сентябрь 2008, 12:43)
---------------------------------------------
Ну, вот скрипт... Что там не так???

For a=0 To 410
MoveTo("Poly","a,220,1")
If (a=180) Then
ScriptTimer("Timer2=Script1","1")
Else
End
Next a


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен


Сообщение отредактировал Игорь - Вторник, 09 Сентября 2008, 12:45
 
as-masterДата: Вторник, 09 Сентября 2008, 12:53 | Сообщение # 7
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Ну ёпамать... Игорь, вот щас не пожалею времени и сделаю тебе пример.
Ведь это так просто! Вот только твой пример я смотреть не стану, сорри.
Буду сразу делать свой :)


Да пребудет с вами ММВ!
 
ИгорьДата: Вторник, 09 Сентября 2008, 12:58 | Сообщение # 8
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Блин, я знаю, что просто... Только все равно не работает... smile

Добавлено (09 Сентябрь 2008, 12:58)
---------------------------------------------
Кстати, не забывай, что я три месяца комп в глаза не видел smile


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен


Сообщение отредактировал Игорь - Вторник, 09 Сентября 2008, 12:58
 
Alex3AДата: Вторник, 09 Сентября 2008, 13:34 | Сообщение # 9
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Разбей все движения на этапы, для кадждого участка движения свой скрипт, запуск каждого этапа
происходит из главного скрипта, не забывай рефрешить, что бы дать автономность каждому движению.
Алгоритм приблизительно следующий
запускаем основной скрипт, который запускает первый этап движения, устанавливаем счетчик этапов,
после завершения того или иного движения, счетчик изменяеться и управление передаеться основному
скрипту. В основном скрипте, расположены условные операторы If Then которые в зависимости от счетчика
этапов запускают те или иные скрипты перемешения, думаю излишне говорить что на том или ином этапе
возможно запускать несколько перемешений, в зависимости от твоего сценария.
Quote (Игорь)
Else

Он тут не нужен.
А так цикл как цикл, в чем проблема не вижу, возможно у тебя где то чего то срывает, в нелпе ведь
написано что если в момент выполнения какого либо скрипта происходит какое либо событие и управление передаеться иному скрипту то первый прерываеться.
Коль ты занялся такой тягамотиной, должен представить себе как все это работает во времени, и соответственно изгаляться. Представь себе что работа происходит в одной плоскости, и при работе одного
скрипта запуск другого прерывает работу первого, для их одновременной работы необходимо организовать паралельную плоскость что делаеться коммандой рефреш. Но ту вдруг юзер клацает мышой,
и скрипт в основной плоскости вылетает, мораль, основная плоскость для юзера с его мышом, все остальное
должно быть паралельно.

Добавлено (09 Сентябрь 2008, 13:34)
---------------------------------------------
Скрипт таймеры, хорошее дело, однако если смотреть с точки зрения временной синхронизации,
скрипт таймера выполняеться некое время, с периодичностью определенной таймером,
если выполнение происходит в основном контексте, то существует вероятность что время действия юзера
совпадет с временем выполнения скрипта, соответственно он вылетит, не брезгуйте использовать рефреш.

 
as-masterДата: Вторник, 09 Сентября 2008, 13:35 | Сообщение # 10
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Короче, демагогией мы все умеем заниматься :)))))

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

С командой MoveTo, очевидно, работать не получится. Видимо нужно все объекты
двигать в цикле. Геморрой, короче. То что получилось на текущий момент,
прицепляю тебе.

Прикрепления: 4move.mbd (4.8 Kb)


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 13:43 | Сообщение # 11
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Ко всему надо подходить с умом, нет ничего вредного и ничего полезного.
Пример вредности рефреша, если у меня крутиться скажем, какойто скрипт, ну типа анимация - заставка,
а при реакции юзера он прерываеться и начинаеться выполнение следующего, то применив рефреш
мы не превем первый скрипт и он будет продолжать работу.
 
as-masterДата: Вторник, 09 Сентября 2008, 13:43 | Сообщение # 12
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Сделал движение ВСЕХ объектов в цикле. Рефреши везде поставил.
Но!.... Всё равно при запуске движений остальных объектов движение
основного на это время приостанавливается. Либо я чего-то не досмотрел,
либо это такая уж особенность ММВ.

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

А может быть Игорь, тебя как раз и устроит такой вариант?

Прикрепления: 8554504.mbd (5.2 Kb)


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 13:51 | Сообщение # 13
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Как правило, все эти премудрости для большинства народа не существенны, так как редко кто начинает строить
наполеоновские планы и подходит к пределам возможностей. Даже при наличии нескольких таймеров и активности юзера
редко возникают временные накладки, а когда и возникают, остаються незамеченными.
Сто раз клацнул, один раз приглючило, но если поизголяться, то и скрипты могут глушить друг друга.
 
as-masterДата: Вторник, 09 Сентября 2008, 13:54 | Сообщение # 14
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Вобщем, я пришел к выводу, что пока не выполнится запущенный цикл
перемещения, другой цикл работать не будет. То есть не удастся двигать
одновременно несколько объектов.

Единственный вариант, при котором это удастся сделать - организация движения
ВСЕХ ОБЪЕКТОВ В ОДНОМ ЦИКЛЕ. Но это уже задачка для математиков smile
Хотя и реальная.


Да пребудет с вами ММВ!
 
as-masterДата: Вторник, 09 Сентября 2008, 14:53 | Сообщение # 15
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Организовал движение всех объектов одним циклом.
Я не был бы самим собой, если бы не решил эту простую в общем-то математическую задачку :)

Думаю, любому, у кого есть башка, эти несложные математические (даже арифметические)
выкладки будут понятны.

Так что можно считать, что проблема чисто средствами ММВ решена :)

Добавлено (09 Сентябрь 2008, 14:53)
---------------------------------------------
Первую строку - RunScript("move") - надо убрать. Осталась от старого варианта.

Прикрепления: 4-in-1.mbd (3.1 Kb)


Да пребудет с вами ММВ!
 
as-masterДата: Вторник, 09 Сентября 2008, 14:57 | Сообщение # 16
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Может возникнуть вопрос: как при таком способе организации движения регулировать скорость?
Изменять значение паузы считаю не лучшим вариантом. Скорость лучше регулировать так,
как показано в этом обновленном примере (четыре скорости: 1, х2, х4, х8)


Прикрепления: 4-in-1NEW.mbd (7.4 Kb)


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 18:14 | Сообщение # 17
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Забудьте все что я писал, билдер не обладает истинной многопоточностью, скрипт приостанавливаеться.
Двигать можно только последовательно, в примере, переменная цикла i являеться счетчиком кадров, а условия в теле
цикла обуславливают передвижение того или иного объекта в нужную сторону.
Прикрепления: move.mbd (3.5 Kb)
 
as-masterДата: Вторник, 09 Сентября 2008, 18:19 | Сообщение # 18
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Alex3A, чё-то я не въехал :(
Я же ВСЁ СДЕЛАЛ В ОДНОМ СКРИПТЕ!!! Рабочий пример в посте номер 16.
А ты зачем-то взял мой проект, переделал и откомментировал неизвестно как и зачем...


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 18:29 | Сообщение # 19
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Скорость можно менять не только шагом перемещения но и паузой, естественно до определенных пределов.
Посмотрел 4-in-1NEW.mbd.
И че я тут разоряюсь, as-master сделал все как полагаеться.
Че то только Игорь пропал, сами себе мозги полощем.

Добавлено (09 Сентябрь 2008, 18:29)
---------------------------------------------

Quote (as-master)
номер 16

Сразу не отправил, че то сервер юкоса матюкался, так что последних потов не видел.
 
as-masterДата: Вторник, 09 Сентября 2008, 19:25 | Сообщение # 20
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Alex3A)
Посмотрел 4-in-1NEW.mbd

Блин, так ты сделал независимо от меня, и практически точно так же как я!!!
ВОТ ЭТО ЗДОРОВО!!!

Quote (Alex3A)
Че то только Игорь пропал

Игорь появится завтра с утра пораньше, часиков в 5 по московскому
(у них время плюс 5 по Москве, по-моему), временно у него инет тока на работе.


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 20:33 | Сообщение # 21
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (as-master)
Блин, так ты сделал независимо от меня, и практически точно так же как я!!!

Да, только конструкция If (i>160 & i<361) Then прокатывает не во всех языках, If (i>160) & (i<361) Then
Будет правильней, ибо 160 & 200=128 - битовая операция и все зависит от приоритетов что первым сделать
сравнить или проаести операцию и.
 
as-masterДата: Вторник, 09 Сентября 2008, 21:36 | Сообщение # 22
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Alex3A)
конструкция If (i>160 & i<361) Then прокатывает не во всех языках, I
f (i>160) & (i<361) Then Будет правильней

Мда??... Я об этом не знал. Да и в хелпе об этом вроде ни слова.


Да пребудет с вами ММВ!
 
Alex3AДата: Вторник, 09 Сентября 2008, 21:57 | Сообщение # 23
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
А в билдере видимо как раз и прокатывает, просто привычка, лишние скобки не помеха, иногда в билдере пишу
а:=b, но это синтаксис паскаля happy
Quote (as-master)
Да и в хелпе об этом вроде ни слова.

Вроде где то я когда то видел что то про приоритеты, но не уверен.
 
ИгорьДата: Среда, 10 Сентября 2008, 10:34 | Сообщение # 24
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
Че то только Игорь пропал, сами себе мозги полощем.

biggrin
Quote (as-master)
Игорь появится завтра с утра пораньше, часиков в 5 по московскому

biggrin

Ну что, господа умники?

Quote (as-master)
Ведь это так просто!
А?

Скачал примеры, сейчас попробую в своем проекте реализовать. Надеюсь, получится. Скорости стрелок, прада, должны быть разные, но покумекаю - я изначально стопорился на

Quote (as-master)
]Всё равно при запуске движений остальных объектов движение основного на это время приостанавливается

Спасибо, когды вы подключитесь, я на своем проекте похимичу, скажу, что нового... biggrin

Добавлено (10 Сентябрь 2008, 07:37)
---------------------------------------------
sad sad sad
Все равно... Под разными скоростями имелось ввиду: По жирной траектории движется стрелка - у нее одна скорость (медленно). От нее "отпочковываются" другие стрелки, которые пробегают по всем комнатам, их скорость большая, потому как на выходе они должны объединиться... Эх... Неужели правда Флеш нужно осваивать... А времени нет - до 25 числа нужно работу сдать...

Добавлено (10 Сентябрь 2008, 07:59)
---------------------------------------------
Гляньте вы мой проект, там движение этих стрелок показаны на рисунке... Мда, я думал, что просто, и я чего-то немного не того делаю ,а вона как все... Я изначально на скриптаймеры понадеялся, а они, собаки, вона чего вытворяют...

Добавлено (10 Сентябрь 2008, 10:34)
---------------------------------------------
Ну, что я могу сказать... Ничего не получается... Сейчас пытаюсь сделать схему во флеш - хоть я и первый раз с этой программой, но результаты куда удовлетворителнее...


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен


Сообщение отредактировал Игорь - Среда, 10 Сентября 2008, 04:47
 
as-masterДата: Среда, 10 Сентября 2008, 10:52 | Сообщение # 25
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Чем смогли, тем помогли...
Да и со скоростью наверное можно еще похимичить, просто уже лень :)
Задачка-то в принципе нами решена, остальное за автором :)


Да пребудет с вами ММВ!
 
ИгорьДата: Среда, 10 Сентября 2008, 11:00 | Сообщение # 26
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
smile Не знаю... Скорость задается в одном цикле на все четыре (в примере) объекта, а стрелки у меня еще и на 90 градусов поворачиваться должны - забыл я про это... Тем не менее Спасибо всем - у меня на очереди еще она лабораторная, там как раз это пригодится - фактически то же самое, только объектов 6 штук smile

Так что труды ваши даром не пропали, еще раз спасибо! smile


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
ИгорьДата: Среда, 10 Сентября 2008, 11:04 | Сообщение # 27
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Кстати, вот что должно в итоге было быть - что успел, и это еще половина работы (имею ввиду только схему, там еще куча всего...)

На Билде этого, естественно, сделать... Ох-хохо...

Прикрепления: Movie.swf (43.5 Kb)


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
as-masterДата: Среда, 10 Сентября 2008, 11:04 | Сообщение # 28
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Игорь)
стрелки у меня еще и на 90 градусов поворачиваться должны

Сделай их гиф-файлами - пусть себе поворачиваюццо :)

Quote (Игорь)
Скорость задается в одном цикле на все четыре (в примере) объекта

На спор я готов сделать так, чтобы в ОДНОМ цикле скорости были РАЗНЫЕ.
А так - нет :)))))


Да пребудет с вами ММВ!
 
ИгорьДата: Среда, 10 Сентября 2008, 11:05 | Сообщение # 29
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
флешку глянь... biggrin

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
as-masterДата: Среда, 10 Сентября 2008, 11:09 | Сообщение # 30
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Игорь)
флешку глянь

Ёёёёёёёё....... Если б я сразу знал, что нужно реализовать ТАКОЕ,
даже не стал бы мучить ММВ. Ежу понятно. Проще даже гиф сделать, пусть
и таких размеров - по-любому он бы много не весил благодаря большому
количеству одинаковых пикселей в кадрах.

Да, тут тока флеш. Кстати, быстро ты однако освоил технологию, я тож так хочу smile
Колись давай, какую прогу поюзал.


Да пребудет с вами ММВ!
 
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: