Вернуться   Форумы города Луги > Медиафорум > Софт

Ответ
 
Опции темы Опции просмотра
Старый 03.04.2006, 09:39   #11
Di_Moon
Гость
 
Сообщений: n/a
По умолчанию Re: Makromedia Direktor

Скажу даже больше, красным цветом выделена банальная проверка состояний. Причем так делают только начинающие кодеры (т.к. это самый тривиальный способ) и законченые профессионалы (только все отличие у них - они использут для флагов состояния true и false).

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

Общий смысл выделенного куска - когда дверь закрыта, то при наведении мышки мы ее откроем, а когда закрыта - то наоборот.

Анализируя дальше скажу, что проигрывание открытия идет с 0 по 333 кадр сцены этой двери (которая судя по всему зовется SysBlock_Cover-Key), а закрытие с 333 по 666.

Осталось выяснить только зачем нужны параметры 2 и 5 функции play.
  Ответить с цитированием
Старый 03.04.2006, 12:44   #12
ELEKTRIC
Местный
 
Аватар для ELEKTRIC
 
Регистрация: 18.03.2004
Сообщений: 2,614
ELEKTRIC на пути к лучшему
По умолчанию Re: Makromedia Direktor

Блиииин Люди да вы просто гениииииии!!!!!!!!!!!!!!!!!!!

Ни фигасе!!! По коду узнать что там происходит!!!!! Вот это да! (упал ниц, перед вами и начал молиться)


Вообщем:
Это сцена сделаная в 3д максе, в ней стол на нем комп с монитором, рядом лежат проц, кулер, вентилятор, звукавуха, видюха, СД диск, колонки со шнуром.
Каждый предмет анимирован, тоесть бонально встает в системный блок.

Эта сцена сохранена в Shockwave 3D scene (W3D) и импортирована в Директор.

Я её взял за основу к своему проекту, но для того чтобы мне понять что и как, мне надо знать почему здесь именно так а не иначе (надобыло в универе учить програмирование)

Например у меня вопрос:
global SysBlock_Flag, CPU_Flag, xq, VideoPlata_Flag, Monitor_Flag, EnterFrame_Flag, yq, CpuCool_Flag, CD_Cover_Flag, Pow_Button_Flag, CD_Play_Flag, SoundPlata, Kolonki_Flag, musicS
Зачем всем обьектам присвоено глобальная...... что? Переменная?


Вот здесь все понятно:
---поворот слева
if keyPressed("z")then ---- если нажать "z" то
member("Comp").model("CamDummy").rotate(0,0,2) --- сцена "сomp" и модель "CamDummy" будет поворачиваться на 2 градуса по оси Z
end if ---- конец иначе

А вот здесь еще используется счетчик для чего?

-- наезд камерой
if keyPressed("d") then
if xq>10 then
xq=xq-1
member("Comp").camera("DefaultView").fieldOfView = xq
end if
end if

ELEKTRIC вне форума   Ответить с цитированием
Старый 03.04.2006, 12:49   #13
ELEKTRIC
Местный
 
Аватар для ELEKTRIC
 
Регистрация: 18.03.2004
Сообщений: 2,614
ELEKTRIC на пути к лучшему
По умолчанию Re: Makromedia Direktor

Цитата:
Сообщение от TYSON
Цитата:
Сообщение от ELEKTRIC
скрипты на внутреннем языке, но очень похожем на С++,
Славка, этот язык по синтаксису вообще не похож на С++.
Скорее больше на VB.
Я просто скачал учебник по Директору, думал что там про скриптинг подробно будет, а там так очень поверхостно!
Ну и там сказано что он очень похож на С++ и тем кто на С++ умеет , изучить внутренний язык Директора не составит труда!
ELEKTRIC вне форума   Ответить с цитированием
Старый 03.04.2006, 12:56   #14
Di_Moon
Гость
 
Сообщений: n/a
По умолчанию Re: Makromedia Direktor

Цитата:
Сообщение от ELEKTRIC
Например у меня вопрос:
global SysBlock_Flag, CPU_Flag, xq, VideoPlata_Flag, Monitor_Flag, EnterFrame_Flag, yq, CpuCool_Flag, CD_Cover_Flag, Pow_Button_Flag, CD_Play_Flag, SoundPlata, Kolonki_Flag, musicS
Зачем всем обьектам присвоено глобальная...... что? Переменная?
Не совсем.... Все что имеет в своем названии flag просто напрасто является флагами состояний (как с дверцой, например. Ну и плюс так рекомендует венгерская нотация ) в global они определены чтобы у них было одно и тоже значение во всем коде (например чтоб эти флаги не передевать в качестве параметров к функциям, и не яб...ся потом с их сменой....)

Цитата:
Сообщение от ELEKTRIC
А вот здесь еще используется счетчик для чего?

-- наезд камерой
if keyPressed("d") then
if xq>10 then
xq=xq-1
member("Comp").camera("DefaultView").fieldOfView = xq
end if
end if
Ну тоже все просто... в xq 99% хранится текущее растояние от объекта до камеры. И данным счетчиком получается плавный наезд и камера должная остановится хогда xq будет равно 10. (т.е. блокируют чтоб камера в объект не въехала)
  Ответить с цитированием
Старый 03.04.2006, 13:16   #15
ELEKTRIC
Местный
 
Аватар для ELEKTRIC
 
Регистрация: 18.03.2004
Сообщений: 2,614
ELEKTRIC на пути к лучшему
По умолчанию Re: Makromedia Direktor

Про наезд все понятно!!!!!!!!! Спасибо!!!! Блин как все просто.....

А про флаги:
Там флаг меняется на 2 и используется else для того что бы его закрыть. Тоже понятно, по тому что вот сдесь:
-- устанавливаем видеоплату
if sprite(2).camera.modelUnderLoc(mouseTarget) = member("Comp").model("VideoPlata") then
if SysBlock_Flag = 2 then
member("Comp").model("VideoPlata").keyframePlayer. play()
VideoPlata_Flag = 2
end if
end if

Нету строки с использованием еlse и значит видюху больше не вынуть!!!!
ELEKTRIC вне форума   Ответить с цитированием
Старый 03.04.2006, 13:18   #16
ELEKTRIC
Местный
 
Аватар для ELEKTRIC
 
Регистрация: 18.03.2004
Сообщений: 2,614
ELEKTRIC на пути к лучшему
По умолчанию Re: Makromedia Direktor

А вот это что за строка?
on mouseUp
mouseTarget = the mouseLoc - point(sprite(2).left, sprite(2).top) я так понял что это захват мышкой, а что такое sprite?

if sprite(2).camera.modelUnderLoc(mouseTarget) = member("Comp").model("SysBlock_Cover") then
ELEKTRIC вне форума   Ответить с цитированием
Старый 03.04.2006, 13:30   #17
Di_Moon
Гость
 
Сообщений: n/a
По умолчанию Re: Makromedia Direktor

Цитата:
Сообщение от ELEKTRIC
А про флаги:
Там флаг меняется на 2 и используется else для того что бы его закрыть. Тоже понятно, по тому что вот сдесь:
-- устанавливаем видеоплату
if sprite(2).camera.modelUnderLoc(mouseTarget) = member("Comp").model("VideoPlata") then
if SysBlock_Flag = 2 then
member("Comp").model("VideoPlata").keyframePlayer. play()
VideoPlata_Flag = 2
end if
end if

Нету строки с использованием еlse и значит видюху больше не вынуть!!!!
А тут немного другое...
Посмотри на код выше что ты давал. Здесь идет обработка следующего характера: Если системник открыт (SysBlock_Flag) то анимируем видяху, и естанавливаем флаг VideoPlata_Flag в состояние, что видяха воткнута. Соответсвенно где-то дальше должна быть обратная хреновина

Цитата:
А вот это что за строка?
on mouseUp
mouseTarget = the mouseLoc - point(sprite(2).left, sprite(2).top) я так понял что это захват мышкой, а что такое sprite?

if sprite(2).camera.modelUnderLoc(mouseTarget) = member("Comp").model("SysBlock_Cover") then
sprite скорее всего какой-то общий объект, - надо справку смотреть
Работу алгоритмаов рассказать я могу, а вот чтоб сказать что каждай объект значит - надо в маны лезть смотреть.....

А тут делается следующее - обрабатывается событие на движение мыши, и смотрится, в данном случае, если курсор на оболочкой системника то будем делать......
  Ответить с цитированием
Старый 03.04.2006, 13:39   #18
ELEKTRIC
Местный
 
Аватар для ELEKTRIC
 
Регистрация: 18.03.2004
Сообщений: 2,614
ELEKTRIC на пути к лучшему
По умолчанию Re: Makromedia Direktor

Цитата:
Сообщение от Di_Moon
Соответсвенно где-то дальше должна быть обратная хреновина
нет нету, да видно и не нужно ему было. Но главное понятно!!!!

Цитата:
А тут делается следующее - обрабатывается событие на движение мыши, и смотрится, в данном случае, если курсор на оболочкой системника то будем делать......
Ага! Понял тоесть из обьекта какбы вынута зона в которой действует курсор мыши!!!! Понял! А я то думаю..... ну теперь все понятно!

Димун могу прислать исходники.... ну так для интересу.... если хочешь!

Спасибо! Если что еще обраащусь к вам!
ELEKTRIC вне форума   Ответить с цитированием
Старый 03.04.2006, 13:50   #19
!##NULL##!TYSON!##NULL##!
!##NULL##!
 
Регистрация: 05.07.2005
Сообщений: 2,865
TYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краяхTYSON презирают в этих краях
По умолчанию Re: Makromedia Direktor

Во, ДИмун все проанализировал уже и раскатал. Респект!
С флагами конечно не совсем так все обстоит, но это не важно
TYSON вне форума   Ответить с цитированием
Старый 03.04.2006, 20:23   #20
Mike
Местный
 
Регистрация: 03.12.2002
Сообщений: 2,043
Mike на пути к лучшему
Отправить сообщение для Mike с помощью ICQ
По умолчанию Re: Makromedia Direktor

Димуныч рулит, когда не ленится,
Так что обращайтесь, Вячеслав
__________________
NOTHING GON'A CHANGE MY WORLD
Mike вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 12:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot