IvanWhite
|
77
Оффлайн
Вторник, 18.01.2011, 01:21:09 | 1
|
Группа: |
Пользователи |
Репутация: |
|
|
Я думаю этот урок будет полезен всем кто хочет зделать движущиеся обьекты по заданной траектории! Начнём с настроек Meta-файла: 1. Откройте папку с вашей картой 2. Найдите там файл Meta.xml 3. Откройте файл Meta.xml (Лучше с помощью Notepad) 4. На следующей строке, после тега <meta> вставьте этот код (Предварительно нажав клавишу "TAB" (не обязательно)): Code <script src="server.lua" type="server" /> 5. Теперь сохраните ваш Meta-файл 6. Теперь можете спокойно закрывать файл Meta.xml Теперь создадим файл, в который будем записывать нужный нам код: 1. После того, как вы сохранили Meta-файл - создайте новый документ 2. После того, как вы создали новый документ В Верхнем меню найдите пункт "Синтаксис" 3. Наведите на английскую букву "L", после чего выберите там пункт "Lua" 4. Сохраните этот файл в папку с вашей картой, с названием "server" Теперь приступим непосредственно к самому коду: 1. Нам требуется создать новую переменную с названием "start", чтобы записать туда всё, что нам нужно. Поэтому в первой строчке мы записываем этот код: Сейчас мы разберём, что это всё означает: - function - Объявляем, что дальше идёт новая переменная. - start - Название переменной. Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "start" то слово, которое вы выберите (Примечание: Название переменной должно быть написано по латинскими буквами и не должно содержать пробелов) 2. После того, как мы написали этот код, нам нужно поставить туда всё, что нам потребуется в дальнейшем. Тоесть: - Нам требуется указать, когда объект начнёт двигаться (Через какое время после старта карты), поэтому мы напишем этот код (Предварительно нажав клавишу "TAB" (не обязательно)): Code setTimer(objectm, 5000, 0) - setTimer - Название переменной. Примечание: Эту часть переменной нельзя изменять, всё что указано ниже в этой переменной можно. - objectm - Название переменной, для которой мы указываем все значения. (В нашем случае это "objectm", вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "objectm" то слово, которое вы выберите ). Примечание: Название переменной должно быть написано латинскими буквами и без пробелов. - 5000 - Время, за которое объект будет проходить нужное расстояние. Примечание: Время указывается в миллисекундах (5000 = 5 секунд). - 0 - Количество повторений движения объекта. Примечание: 0 = Бесконечно. 3. После того, как вы написали код - перейдите на следующую строку 4. Теперь нам требуется создать новую переменную, для упрощения управления движения объектом (Чтобы движения объектом выполнялось в том случае, когда значение этой переменной равно нужному нам числу). Напишем следующий код: Теперь мы разберём что мы написали: - status - Название переменной, для которой мы поставили значение. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "status" то, которое вы выберите ). - 1 - Значение переменной, которую мы написали ранее. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо цифры "1" то, что вы выберите ) 5. Теперь нам необходимо создать объект на карте, который мы собираемся двигать. Для этого на следующей строке мы напишем этот код: Code objectone = createObject(3458,X-Позиция,Y-Позиция,Z-Позиция,rotX,rotY,rotZ) Теперь мы разберём этот код: - objectone - Имя объекта, которое мы будем указывать в дальнейшем ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "objectone" то, что вы выберите ). - createObject - переменная добавления объекта на карту. Примечание: Её изменять нельзя! - 3458 - Номер объекта, который мы собираемся двигать. - X-Позиция - Положение объекта на оси X - Y-Позиция - Положение объекта на оси Y - Z-Позиция - Положение объекта на оси Z - rotX - Вращение объекта по оси X (Не перемещение!) - rotY - Вращение объекта по оси Y (Не перемещение!) - rotZ - Вращение объекта по оси Z (Не перемещение!) 6. После того, как вы всё написали - перейдите на следующую строчку 7. Напишите слово - end . (Предварительно убрав все пробелы на строчке) Первая переменная готова, теперь перейдём к следующей: 1. Пропустите две строчки от предыдущей переменная. 2. Напишите этот код: Сейчас мы вспомним, что всё это значит: - function - Объявляем, что дальше идёт переменная. - objectm - Название переменной (Возможно вы его изменили в предыдущих действиях). Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "start" то слово, которое вы выберите (Примечание: Название переменнойи должно быть написано по латинскими буквами и не должно содержать пробелов) 3. Теперь мы должны поставить условие, при которое объект будет двигаться. Для этого на следующей строчке напишем этот код (Предварительно нажав клавишу "TAB" (не обязательно)): Сейчас мы разберём, что всё это означает: - if - Это слово пишется тогда, когда мы объявляем условие, при котором будет что-либо выполняться. - status == 1 - Это условие, при котом будет выполняться код, написанный вами ниже. Мы с вами ранее написали код, в котором указывается, что слово "status" ровно "1" Примечание: Два знака "="обязательно! - then - Если условие выполнено, то с помощью этого значения будет выполняться код, написанный вами ниже. 4. Теперь, после того как условие выполнено, нам требуется заставить нужный нам объект двигаться. Теперь нам нужно написать следующий код: Code moveObject (objectone, 5000, movX, movY, movZ) Теперь мы разберём написанный нами код: - moveObject - переменной, при помощи которой мы заставляем двигаться нужный нам объект. Примечание: Изменять нельзя! - objectone - Название объекта, который мы писали ранее. (Возможно вы его изменили). - 5000 - Время, за которое объект будет проходить нужное расстояние. - movX - Координаты по оси X, куда должен будет переместиться объект. - movY - Координаты по оси Y, куда должен будет переместиться объект. - movZ - Координаты по оси Z, куда должен будет переместиться объект. Далее будет всё писаться для тех, кому нужно чтобы объект двигался после передвижения на нужную нам точку в другое место (Например обратно на начальную поцизию). Если вам это не нужно, то переходите к пункту №9. 5. Теперь нам требуется чтобы объект не стоял на месте, а двигался на следующую позицию. Для этого нам требуется изменить значение переменной "status" на 2. Для этого напишем такой код (Предварительно перейдя на новую строку): Теперь мы вспомним что это такое: - status - Название переменной, для которой мы поставили значение. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "status" то, которое вы выберите ). - 2 - Значение переменной, которую мы написали ранее. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо цифры "2" то, что вы выберите ). 6. Теперь нам нужно поставить новое условие, при котором объект будет двигаться в новом направлении. Для этого напишем этот код: Code elseif status == 2 then - elseif - Это слово пишется тогда, когда мы объявляем условие, при котором будет что-либо выполняться. - status == 2 - Это условие, при котом будет выполняться код, написанный вами ниже. Мы с вами ранее написали код, в котором указывается, что слово "status" ровно "2" Примечание: Два знака "="обязательно! - then - Если условие выполнено, то с помощью этого значения будет выполняться код, написанный вами ниже 7. Теперь нам требуется подвинуть объект туда, куда нам требуется. Для этого напишем этот код: Code moveObject (objectone, 5000, movX, movY, movZ) Теперь мы разберём написанный нами код: - moveObject - переменной, при помощи которой мы заставляем двигаться нужный нам объект. Примечание: Изменять нельзя! - objectone - Название объекта, который мы писали ранее. (Возможно вы его изменили). - 5000 - Время, за которое объект будет проходить нужное расстояние. - movX - Координаты по оси X, куда должен будет переместиться объект. - movY - Координаты по оси Y, куда должен будет переместиться объект. - movZ - Координаты по оси Z, куда должен будет переместиться объект. 8. Теперь нам требуется чтобы объект двигался в первоначальном направлении. Для этого мы вернём функции "status" первоначальное значение - "1". Вот код ( Не забудьте перейти на новую строку ): Теперь мы вспомним что это такое: - status - Название переменной, для которой мы поставили значение. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "status" то, которое вы выберите ). - 1 - Значение переменной, которую мы написали ранее. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо цифры "1" то, что вы выберите ). ВАЖНО: Если вы хотите, чтобы объект не возвращался на старое место, а двигался на новое, то поставьте вместо цифры "1" другое число (какое угодно) и делайте всё также, как в предыдущих действиях. 9. После выполненных действий перейдите на новую строчку и напишите слово - end . 10. После того, как вы написали слово "end" - перейдите на новую строчку и напишите слово "end" ещё раз. 11. Затем пропустите две строки и напишите этот код: Code addEventHandler ( "onResourceStart", getRootElement(), start ) Я думаю вам уже не понадобится знать, что это значит всё, но знайте: последнее слово "start" - это название той переменной, которую мы писали в начале. 12. Сохраните ваш документ. ( Нажмите на иконку дискеты, она третья по счёту в панели инструментов и выглядит так: ) Вот такой код у вас должен был получиться (Только с вашими значениями местами): Code function start () setTimer(objectm, 5000, 0) status = 1 objectone = createObject(3458,2488.9965820313,-1667.4375,13.86528015136,0,0,0) end
function objectm() if status == 1 then moveObject (objectone, 5000, 2488.9965820313, -1667.4375, 30.86528015136) status = 2 elseif status == 2 then moveObject (objectone, 5000, 2488.9965820313, -1667.4375, 13.86528015136) status = 1 end end
addEventHandler ( "onResourceStart", getRootElement(), start ) Примечания: - Чтобы проще было найти то, что вам нужно - после открытия новой переменной ( Тоесть после таких переменных как: function, if, elseif ) на следующей строке нажмите один раз клавишу "TAB", а когда пишите слово "end" , то убирайте этот пробел. Таким образом у вас будет получаться что-то типо "дерева" переменных. - Каждый новый код, написанный выше, должен писать с новой строки. (Смотрите пример кода, написанный выше)
|
|
|
|
sana65
|
1
Оффлайн
Воскресенье, 22.07.2012, 01:25:57 | 6
|
Группа: |
Пользователи |
Репутация: |
|
|
спасибо тебе,ты очень хороший человек!!!Добавлено (22.07.2012, 01:25:50) --------------------------------------------- MaZaFaKa-killer, могу показать в скайпе как это зделать!! Добавлено (22.07.2012, 01:25:57) --------------------------------------------- MaZaFaKa-killer, могу показать в скайпе как это зделать!!
|
|
|
|