![]() |
Пример создания дыма:
для начала сохраните у себя на компьютере в какую-нибудь папку следующие текстуры: ![]() ![]() они нам потребуются для работы кода, теперь копируем следующий код в блиц-редактор, оттуда сохраняем в папку, куда скопированы текстуры... запускаем... Код:
;устанавливаем видеорежим и ставим текущий буфер видеопамяти на задний фон |
Примечание:
в зависимости от текстуры можно писать вот так: Код:
sm2=LoadSprite("smog2.bmp",2) |
|
не - делал не я. я только нарыл её )
|
Вложений: 2
Можно еще вот такой дым сделать (см. аттач)
использование: ObjectToSmog - делает объект дымящимся параметры: ObjectToSmog ( SmogObject% - идентификатор объекта который будет дымиться (например возвращенный созданием сферы) Sprite% - идентификатор спрайта для дыма, возвращенный LoadSprite() Timer% - таймер для дыма, для установки времени между пусканиями облачков дыма (в итерациях) Height# - высота столба дыма (в блиц-координатах) Speed# - скорость шага поднятия облачков дыма ввоздух (в блиц-координатах) Radius# - на самом деле столб дыма не совсем столб, а как-бы конус расположенный острием вниз, дым ведь рассеивается, дак вот этим параметром можно настроить величину отклонения облачков дыма при движении вверх (в блиц-координатах) Rotating From# - максимальная закрученность облачков дыма против часовой чтрелки Rotating To# - максимальная закрученность облачков дыма по часовой чтрелке, на самом деле вызывается для каждого облачка rnd (Rotating From, Rotating To) что и определяет закрученность облаков в ту или иную сторону. Size From# - начальный размер каждого облачка дыма Size To# - размер достигаемый облачком при достижении высшей точки столба дыма Alpha From# - прозрачность облачка дыма в самом начале Alpha To# - прозрачность облачка дыма при достижении высшей точки столба дыма ) RemoveSmog убирает дым с объекта параметры: RemoveSmog( EntityHandle - идентификатор объекта на который был установлен дым ) SmogUpdate() обновляет состояние дыма, эту функцию нужно запихать в главный цикл программы, чтоб дым работал... |
Последний вариант дыма рулит! Особенно, если сравнить его с дымом в первом посте :)
Красиво и вполне реалистично. Респект. :super: |
вообще все эти примеры были как учебное пособие, я считаю, что каждый должен сделать себе дым сам, подходящий для логики существования его мира... с учетом гравитации и ветра и со своими текстурами (саморисованные текстуры всегда лучше) :rolleyes: :rolleyes:
|
Можно еще добавить анимацию и вращение. Так же и огонь можно сделать (в MaxPayne это было потрясно реализовано).
|
а можно зделать клон lotusа
только использовать не спрайты, а блиттеры я щас делаю систему партиклов на блиттерах у maxusа вышло намного лутче 10 тыс обектов - 180 фпс у меня 400 обектов - 120 фпс правда у maxusа есть секрет :) и он им нехочет делится ps. кто не в курсе lotus и lotus 2 ето самые красивые системы партиклов для блица , хотя они и самые тормозные ps2. спрайт ето 2д еденица а блиттер 3д блиттер создается вот етим кодом : Код:
mesh = CreateMesh() |
2jimon Не вижку различий между блиттером и спрайтом у которого установлен режим "независим от камеры" - free тобишь. Может объяснишь в чем разница по конкретнее?
|
спрайт рисуется 2д системой
а блиттер ето 3д иденица у maxusа вышло что блиттеры быстрее спрайтов у меня наоборот я непонимаю |
Цитата:
Думаю так быстрее намного будет, только сложнее на столькоже :) больше мыслей нет PS: в своей игрухе я так делал, только не двигал ничего, просто заново создавал часть карты :) |
Ответь мне тогда еще на один вопрос:
Если спрайт это 2D единица, то прокоментируй следующее (это из справки по блитцу): Цитата:
PS: просто немогу понять, как может 2Д единица иметь два полигона :dontknow: PS2: И почему спрайтов нет в Blitz Basic 2D? |
PАХ:
Спрайт - это не 2д единица, а 3д - квад из 2х поликов(но можно и 1), кот-й может быть повёрнут к камере. в блице они организованы как отдельные объекты, поэтому тормозят. так что их полюбому нужно делать как сингл-сурфейс :) |
2 ньюб - посмотри мой код создания блиттера
он правильный ? ничего неможеж зделать \ предложить чтобы ускорить рендер ? copyentity юзаю в тесте создается только один блиттер |
Часовой пояс GMT +4, время: 21:00. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot