|
|
Результаты опроса: Как Вам моя статья? | |||
Отлично! Помог мне разобраться! | 6 | 40.00% | |
Неплохо, новичкам сойдёт! Но для меня нового ничего нет! | 6 | 40.00% | |
Ничегошеньки тут я не понял | 0 | 0% | |
И ты думашь это понятно новичкам? | 1 | 6.67% | |
Если оптимизировать в джаз будет нехило. | 2 | 13.33% | |
Голосовавшие: 15. Вы еще не голосовали в этом опросе |
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
Как создать свою систему управления.
И так, вам захотелось создать свою систему управления на триггерах? Но как это сделать?
Введение Внимание: при огромном колличестве таких триггеров карта может глючит, так что советую прочитать конец статьи, раздел об "Избавлении от Вредного Мусора"! Можно сделать систему управления на стрелках или на буквах. Способ на стрелках - более удобный в реализации, но и не очень удобный для игрока - так как большая часть геймеров играет на W, A, S, D. К сожалению эти кнопки (A и S) заняты способностями Стоп и Атака. Но к счастью не далеко (на клавиатуре) живут кнопки R D F и G (обратите внимание, что у некоторых способностей, например, у добычи ресурсов, горячая клавиша - G, так что следите, чтоб клавиши не совпадали). Вам придется выбрать и способ атаки (например, как в карте Painkiller) - мышью, или так же клавиатурой. Более сложные системы могут содержать прыжки (!!!) или похожие сложные, невыполнимые просто так, команды. Прочитайте вот эту статью, прежде чем приступить к попыткам создания этой системы. Попробуем создать систему, как у Melfis'a (Painkiller карта). Прежде чем начать, вы должны неплохо знать триггеры, чтобы понять, о чём речь. Да и ещё - я пишу часть триггера по-русски. Это (для меня) быстрее и удобнее, да и для вашего мозга быстрее добегает. Так-с. Создание системы Создаём триггер, который двигает юнита в регион перед ним: Код:
И ставим параметр этого триггера Изначально выключен, т.е. его мы будем включать и выключать во время игры. Теперь два триггера (они просты) включающие и выключающие наш первый: Код:
Код:
Вы так же можете добавить действия, выделяющие и снимающие выделение с вашего юнита. Теперь пример триггера, поворачивающего камеру вправо (влево сделаете сами, т.к. они аналогичные). Код:
Триггеры отмены - аналогичны триггерам отмены движения вперёд, только стрелка\триггер (для отключения) изменяются. Теперь, если вам нужно сделать разворот назад (а это не обязательно), создайте такой триггер: Код:
Триггеры основного движения готовы. Теперь триггер атаки... Код:
Вот собственно и всё. Вы своими руками сделали первую систему управления и теперь можете редактировать её сами. Полезные советы :mail: После убийства юнита действием Kill :susel: , удалите его - Remove. Используйте "пустые" способности, а потом триггерно привязывайте к ним действи перемещения. Используйте больше регионов в ваших системах. Следите за камерами, старайтесь не перекрывать обзор дудами. Старайтесь оптимизировать вашу систему - упростите её максимально. Не используйте много одинаковых триггеров, старайтесь юзать переменные. Избавление от Вредного Мусора Баг замеченный уже давно, мне, к сожалению, ранее не был известен, но теперь уважаемый Mefist открыл мне глаза, за что ему спасибо. В общем, этот баг был обнаружен на карте Sergey про вертолёт, а обнаружил его Какодемон. Он заключается в том, что после многих триггеров остаются "мусорные" объекты. Такие как юнит, убитый действием kill, он НЕ исчезает из игры, его нужно удалить (Remove). Удаление вот таких глюков и есть оптимизация, о которой ты наверняка слышал. Теперь попробуем найти "мусор" в нашей системе. И так мусор - это... Код:
точнее это точка, которая создаётся каждые 0.4 секунды. При этом старая точка не удаляется! И представьте, как страдает от этого память! (как сказал Sergey "многострадальная память"). Что делать? Да уж... дела плохи. Но минимального ПОНИМАНИЯ джаза хватит. Попытаюсь рассказать коротко, но если не понятно, то зайдите и прочитайте это. Цитата:
Вот что написано в статье Сергея. Но как быть нам? Нужно создать локальную переменную (любое имя). Как? Найдите действие Custon Code, т.е. вставка кода. Туда впишите Код:
Т.е. создаём локальную переменную (!!!ни где-нибудь, а в триггере движения, больше её ни где использовать нельзя!!!) с именем "p". Теперь надо изменить код и узнавать (полярно) точку. Удаляем действие движения и пишем следующие: Код:
Вот теперь всё. Каждые 0.4 секунды создаётся точка, приказывается юниту туда бежать, точка тут же удаляется и создаётся новая и т.д. Теперь глюков не возникнет. Отредактировано Nimensy, 14.02.2006 в 17:55. |
|
08.02.2006, 19:50 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Кет
offline
Опыт:
111,109Активность: |
хлопает как однако все просто... а я то не могу догадаться... |
08.02.2006, 19:54 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Mefist
Is it cocktail hour yet?
offline
Опыт:
98,240Активность: |
ну на самом деле не все так просто, потому, что после небольшого времени игры в карту с такими триггерами, и она начинает страшно тормозить. Почитай статью Сергея про оптимизацию на джасс. И пример этому хороший есть - его карта про дракона (наверно есть в базе) |
08.02.2006, 20:04 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Да, Mefist частично прав - мусорные обьекты (Position of "Ваш юнит") и Kill Trigger Unit (ну да это мелочь)
|
09.02.2006, 02:36 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
(Все, теперь пойдут статии о 2-ух действиях потом по 1-у, нельзяли написать ченибудь посерезнее)
Цитата:
А зачем 0.01, только игру будет подтармаживать, немного, но все ж, уж лечше поставь 0.04, 25 кадров в секунду самое оптимальное, а 0.05 уже не подходит. КСТАТЕ, это система передвижения хороша, но мне нравится другая, предпологает что камера ненаходится за спиной юнита, а постоянно вращается вокруг него соответственно для большей атмосферы, и вращается не просто так а в каждом регионе свой поворот, :Dдоходят слухи что ты делаеш Принц Персии:D, ну корое совеетую сделать там этот метод тем более он организован в самой игре, он нечем не сложнее этого, просто во время движения юнита, отправляй его на угл: Вправо: Текущий поворот камеры-90 Влево: Текущий поворот камеры+90 Вниз: Текущий поворот камеры-180 Врех: Текущий поворот камеры Отредактировано Jon, 09.02.2006 в 03:24. |
|
09.02.2006, 03:16 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
Mefist могу тебя заверить что не тормозит. проверенно. или это просто дело случая? хм... но всё же.
NETRAT мусорные? бгы! Ну впринципе это можно и оптимизировать, но обращу ваше внимание, что джазеров от силы 30-50 (или гораздо меньше), а вот триггерщиков мона сотнями считать ;) Nimensy добавил: Ket в этой фразе есть сарказм, или мне так кажется? Nimensy добавил: Jon исправил поворот на 0.04 секунды. Просто забыл о самых простых свойствах человеческого глаза и не щадя его написал 0.01 ;) NETRAT Цитата:
|
|
09.02.2006, 10:40 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Nimensy Нет, расстояние не имеет значения. Фича в том, что при наличии большого числа триггеров, которые оставляют мусор, через 1-2 часа игры на выходе из карты вар зависнет, если их уж совсем много, то он просто сглючит посреди игры с сообщением о недостатке виртуальной памяти. Под мусором имеются ввиду незакрытые дескрипторы (неудаленные локации, мертвые юниты и т.п.)
|
09.02.2006, 15:24 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
А как их удалить?(Не пользуясь Джазом) |
|
09.02.2006, 15:33 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ddryid
offline
Опыт:
2,358Активность: |
Можно все сделать гораздо проще, создать четыре области по краям карты... И при нажатии кнопки влево бежать влевую область, при отжатии кнопки остановить юнита... И так ко всем кнопкам |
09.02.2006, 17:27 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
NETRAT ну тогда просто напишу примечание что это может вызвать глюки (хотя у меня после часа проверки этой системы глюков небыло...)
Jon ага, как? Nimensy добавил: ddryid а, нет... эта система работает относительно камеры, а камера всегда за спиной у юнита. а в твоей системе юнит будет бежать именно в центральную точку, даже если б просто влево-вправо, то всё равно - праша. |
09.02.2006, 17:33 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WildCat
General Mapmaker
offline
Опыт:
10,232Активность: |
Как говорит наш препод, "учебная схема" - приводят как пример во всех учебниках, но собранная в реальности либо не работает вовсе, либо сгорает :) |
09.02.2006, 17:47 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
Эй! Народ! почему тэги color неработают? как сделать выделение красным?
Nimensy добавил: З.Ы. Ваш препод говорит умные вещи ;) |
09.02.2006, 17:49 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
Но это тупо :mad: , неужели близы не смогли этого понять и сделать какую-нибудь фишку, исправляющую эту фигню :notgood: ? |
|
09.02.2006, 18:15 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
возможно и сделали, но я не знаю как.
просьба модерам выделить фразу Цитата:
красным. заранее сэнк. |
|
09.02.2006, 18:36 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
эээ... неа:). Jon добавил: Цитата:
Эээ... это не продвинутая система, я бы даже сказал наоборот. Потому что такое управление будет работать один раз при нажатии клавиши, а у стрелок есть событя "отпускает кнопку", в случае со спелами этот прием не сработает, и потому постоянноего движения не сделать таким образом. |
||
09.02.2006, 19:15 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
N.Sy.Prophet
Йа Байан
offline
Опыт:
13,122Активность: |
Да уж!
статью на сайт не зальёте? Nimensy добавил: Jon способность имеет постоянный эффект, а триггер "Юнит прекращает применение способности (повторное нажатие)"... не так уж удобно но... всё же. |
09.02.2006, 19:26 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
В том то и дело что это вообще неудобно:) |
|
09.02.2006, 19:41 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
Как я понимаю статья писана ради экспы? Оо? Цитата:
Есть такая штука как fps и причем тут 25 кадров в секунду не пойму? |
||
09.02.2006, 20:40 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WildCat
General Mapmaker
offline
Опыт:
10,232Активность: |
25 кадров в секунду - максимум для человеческого глаза, причём 25 кадр воспринимается уже только подсознанием. |
09.02.2006, 20:46 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
WildCat
Нет это то понятно. Я про то, что 100fps и 25fps далеко не одно и тоже. И это отлично видно. |
09.02.2006, 21:14 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|