Sidebar

Создание танка который ездит и стреляет Часть 1

  • Рекомендуется задавать вопросы только относительно темы с уроком. Для остальных вопросов существует раздел [url=/forums/pomosch.12/]«Помощь»[/url].

    Темы с просьбами помощи будут удаляться без предупреждения и без объяснения причины.

    Запрещается поднятие старой темы оффтопом. Ваше сообщение будет удалено, а в профиль будет выписано замечание.

Пила

New member
24.03.2012
427
12
0
Создание танка который ездит и стреляет Часть 1

Всем привет! Это мой первый тутор, такчто сильно не пинайте, а за ошибки в тексте sory.

В этом туторе вы познакомитесь с тем, как создать танк на движке Source. Этот метод будет работать как в Half-Life 2 так и в Counter Strike Source. Ну что, погнали?

Часть 1. Делаем двигающийся корпус.

Этап 1. Создание корпуса.
В моем случае я делал корпус из брашей, но можно сделать моделью, ну для тутора пойдет и брашем.
Вообщем делаем корпус из отдельных кусков (стен). У меня получилось так: http://cs-mapping.com.ua/forum/attachment.php?attachmentid=91868&stc=1 да, это танк Maus) Преврашаем его в func_physbox и даем ему имя Maus_hodovaja (имя можно задать и другое)

Сделали? тогда идем дальше.

Этап 2. Заставим танк двигаться?

Начнем этот этап с кнопки. Создаем кнопку в том месте где будет место водилы. Создаем на кнопке Output OnPressed hod_relay Trigger
Во вкладке Parent пишем название нашего func_physbox корпуса: Maus_hodovaja

Раскурим это дело: OnPressed-это значит что действие произойдет по нажатию на кнопку.
hod_relay-это имя энтии "logic_relay" которая будет активировать все остальные энтии.
Trigger-это значит что над "logic_relay" будет совершено действие "Trigger"

Сделали? тогда создаем "logic_relay" который будет управлять другими энтиями, которые будут двигать наш танк.
Name: hod_relay.
В Output пишем: OnTrigger maus_driver_ui Activate

Раскурим: OnTrigger- это значит что Output сработает когда на энтию будет оказано действие "Trigger", в данном случае на энтию оказывает действие наша кнопка func_button
maus_driver_ui: имя энтии game_ui с помошью которой управление танка будет осушествляться с помошью кнопок w,a,s,d.
Activate: это значит что энтия будет активированна.

Далее создаем энтию game_ui
Name: maus_driver_ui
Во флажках отмечаем только Freez Player +Use Deactivate и Jump Deactivates
Создадим вспомагательные энтии чтобы было понятнее с Output-ами.

Создаем первый phys_thruster он нужен для "толкания" нашего танка по оси X.
Name: side
Attached Object пишем название нашего корпуа: Maus_hodovaja
Force пишем силу с которой наша энтия будет толкать наш танк. Я поставит 200
Во флагах отмечаем Apply Torque, Orient Locally и Ignore Mass

Создаем второй phys_thruster который будет толкать танк по оси Y
Name: forvard
Attached Object: Maus_hodovaja
Force: 800.
Во флагах отмечаем Apply Force, Orient Locally и Ignjre Mass

Создаем logic_compare который будет правильно включать и выключать наш phys_thruster
Name: forvard_comp
остальное по: 0
Создаем первый Output OnLessThan forvard Scale -1

Раскурим: OnLessThan- что это я не очень понял, но это отвечает за то, что phys_thruster будет работать в другую сторону, толкая танк назад (может и нет, помоему так)
forvard- имя нашего phys_thruster
Scale-я так понял что это устанавливает то как будет работать phys_thruster в данном случае задом наперед: -1

Следуюший Output OnGreaterThan forvard Scale 1

тут вроде тожесамое, только phys_thruster будет работать как надо, по своему направлению.

И последний Output OnEqualTo forvard Scale 0

это значит что phys_thruster будет выключен

Ну со вспомагательными энтиями вроде все, давайте вернемся к game_ui и привяжем phys_thruster-ы к кнопкам.

Создаем первый Output YAxis forvard_comp SetValueCompare

Раскурим: YAxis- это значит что будут задействованны кнопки по оси Y
forvard_comp-имя нашего logic_compare
SetValueCompare-значит что logic_compare будет сравнивать входные значения, и давать нужный нам результат.

Создаем второй Output XAxis side Scale

Раскурим: XAxis-значит что будут задействованны кнопки для передвижения по оси X
side-имя нашего phys_thruster
Scale-значит, хм, даже незнаю что это значит, но с эти параметром все работает :D

Исходник: http://cs-mapping.com.ua/forum/attachment.php?attachmentid=91873&stc=1

Ну вот собственно и все. Как создать башню для танка смотрите следуюшую часть урока. Всем спасибо, всем пока!
 

Вложения

Последнее редактирование:

igi_sev

I have returned
20.04.2009
819
39
  • Золотая медаль 232
Идея понятна, но ты как-то много куришь во время тутора )
Может поэтому карту-пример забыл добавить? )
 

Пила

New member
24.03.2012
427
12
0
Ой точно, пардон, ша добавлю пример
 
Последнее редактирование:

ShotT

Has left this world
24.02.2010
3 587
25
0
Хотел бы отменить одну вещь:
"hod_relay" - ненужная вещь, спокойно можно убрать.
Зачем так?
(Кнопка logic_relay game_ui)
Можно же сразу
(Кнопка game_ui)

Хотелось бы подробней расписать как всё это работает:

1) Мы жмем кнопку, активируется ui, который нас замораживает и ждет, пока мы нажмем кнопки (на клавиатуре).
2) С ui идут два утпута:
XAxis
Если игрок жмет "вправо", то ui отсылает (в данном случае logic_compare) положительное число, если "влево" - отрицательное.

YAxis
Если игрок жмет "вверх", то ui отсылает (в данном случае logic_compare) положительное число, если "вниз" - отрицательное.
3) logic_compare, с помощью phys_thruster, заставляет объект двигаться.

Оффтоп

В заключение представлю две учебные карты из набора CSSSDK, они в аттаче.

[Небольшие описания карт]
Оффтоп
Оффтоп

Подумав, добавил:

2 igi_sev
Откуда ты взялся D:
Я что-то долго писал..

P.S> Поменяй дату на флаге.
 

Вложения

Последнее редактирование:

Пила

New member
24.03.2012
427
12
0
(Кнопка → game_ui) А я так и сделал сначала, но нифига не работало :crying: а когда поставил logic_relay то все норм
 

Game Server

Доноры Красавчики

Пользователи онлайн

Нет пользователей онлайн.