Re: Редактор карт
да былобы здорово если это было выделено как алкоголик сказал
лучше в тег Коде ну и как сказали весь код в конце было норм! в целом все нормально! только не оч понятно зачем полный перебор можно через оюъект-хандел сделать! |
Re: Редактор карт
в целом, чисто туториал для копипастеров...
Глянь мой тутор, там йа чуть ли не каждую команду расписал ) И орфография с пунктуацией. 8) |
Re: Редактор карт
Это весь код:
Код:
|
Re: Редактор карт
Кое что новое узнал для себя. спс.
|
Re: Редактор карт
Продолжаем модифицировать редактор. Сейчас сделаем переключение текстур на стене. Для этого нам в типе MObject понадобится еще одна переменная в которой будет храниться путь к файлу текстуры. Собсно добавляем в MObject:
Field TP$ И после сих изменений тип MObject будет выглядить так: Type MObject Field Entity Field SX#,SY#,SZ# Field X#,Y#,Z# Field Picked Field TP$ End Type И еще одно в глобалах добавляем переменную для номера текстуры: Global tn Идем далее. Правим функцию деформации объектов(Deformation).Вписываем в эту ф-цию эти строчки кода: If KeyHit(20) Then tn=tn+1 End if |
Re: Редактор карт
Дальше:
If KeyHit(21) Then tn=tn-1 End if Это все нужно для выбора текстуры: нажимаем на T(англ) появляется следующая тектура. На Y предыдущая соответственно. Далее в главном цикле пишем. If m\picked=1 then if tn=1 then m\TP$ = "1.jpg" end if if tn=2 then m\TP$ = "2.jpg" end if entityTexture m\entity,LoadTexture(m\TP$) End if Вот этим куском у нас меняется текстура натянутая на выделенный объект. У нас для примера будет две текстурки. Возьмите любые JPG файлы и переименуйте их в 1 и 2, и собсно, киньте их в папку с редактором. |
Re: Редактор карт
Я бы например сделал массив текстур, а tn был бы его индексом... впрочем у автора другой подход
|
Re: Редактор карт
Дальше мы немного подправим функцию создания стены и функцию загрузки и сохранения карты. Чем мы сейчас и займемся. Для начала подправим ф-цию создания стены:
Function CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ#,TP$) o.MObject=New MObject o\entity=CreateCube() o\TP$=TP$ PositionEntity o\entity,X#,Y#,Z# ScaleEntity o\entity,SX#,SY#,SZ# RotateEntity o\entity,P#,YA#,R# EntityPickMode o\entity,2 EntityTexture o\entity,LoadTexture(o\TP$) End Function Надо было лишь всего-то добавить две строчки кода. Первая (o\TP$=TP$) у нас отвечает за имя файла текстуры. Вторая (EntityTexture o\entity,LoadTexture(o\TP$)) отвечает за применение данной текстуры к объекту. А и еще в функции появился новый параметр - TP$ - это путь к файлу текстуры. Идем далее. Модифим сохранение карты: Function WriteMap(Path$) file=WriteFile(Path$) For m.MObject = Each MObject WriteFloat file,EntityX(m\entity) WriteFloat file,EntityY(m\entity) WriteFloat file,EntityZ(m\entity) WriteFloat file,EntityPitch(m\entity) WriteFloat file,EntityYaw(m\entity) WriteFloat file,EntityRoll(m\entity) WriteFloat file,MeshWidth(m\entity) WriteFloat file,MeshHeight(m\entity) WriteFloat file,MeshDepth(m\entity) WriteString file,m\TP$ Next Сдесь мы добавили одну строку которая отвечает за сохранение пути к файлу текстуры(TP$). Примечание: загружать данные из файла нужно в такой последовательности как они были записаны в файл( эт наверное применимо только к Блитцу). Далее - модифим загрузку карты: Function LoadMap(Path$) fil=ReadFile(Path$) ;Удаляем старые стены For m.MObject = each MObject FreeEntity m\entity Delete m Next While Not Eof(file) X#=ReadFloat(File) Y#=ReadFloat(File) Z#=ReadFloat(File) P#=ReadFloat(File) YA#=ReadFloat(File) R#=ReadFloat(File) SX#=ReadFloat(File) SY#=ReadFloat(File) SZ#=ReadFloat(File) TP$=ReadString(file) CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ#,Tp$) Wend End Function Вот тута тоже мы добавили одну строку которая отвечает за загрузку из файла строковой переменной TP$ куда записан путь к файлу текстуры. И добавили один новый парметр в функцию(CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ# ,Tp$)) в данном случае TP$. Вот наш редактор теперь научился менять текстуры у объектов.:ok: |
Re: Редактор карт
Не хочу быть навязчивым, но воизбежании дальнейших вопросов "А почему я жму а нифега не происходит, или происходит но не так?".
А это т.к. проверка на нажатие кнопок у тебя происходит по пути, mr.DIMAS, Пожалуста! Присваивай в начале цикла все нажатия кнопок к переменным, и только потом юзай переменные, так ты избежишь много недочётов, увеличишь динамику в коде и новички будут учиться хорошему стилю. Спасибо! |
Re: Редактор карт
а у меня вообще не запускается, ошибки пигет, вот кен ай ду?????
|
Ответ: Редактор карт
Исправив пару ошибок в коде я смог запустить. Вот только че то ничего не работает... Даже не сохраняет.
|
Ответ: Редактор карт
было бы не плохо если бы автор скинул исходник !!)
|
Re: Редактор карт
изыни но исходник я потерял :( после очередной скриптовой чистки копма
|
Ответ: Редактор карт
Код кривой и не рабочий. Ужас просто.
|
Ответ: Редактор карт
Хороший код, позволяющий понять, как вообще можно написать примитивный редактор карт.
Цитата:
К слову, на этом редакторе карт основан мой редактор для игры, только сильно переделанный. Спасибо автору за старания. |
Часовой пояс GMT +4, время: 21:36. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot