AZJIO
- Стаж: 6 лет 9 месяцев
- Сообщений: 1325
- Репутация:127[+] [-]
|
3D-графика на PureBasic Скачать (исходники в комплекте) Три примера Ландшафт, Океан, Самолёт В каждом исходнике ссылка на тему, где автор pf shadoko опубликовал код.
Из последних правок: 1. Оставил ранее вставленный ключ #PB_Engine3D_DebugLog, который принуждает библиотеку писать лог инициализации движка, то есть все ошибки, с которыми столкнётся движок напишет в лог. 2. Русифицировал меню в левом верхнем углу (горячие клавиши). 3. Добавил Linux-версию (океан), и в исходнике указал прямые пути на файл-движок-3D и текстуру, так как относительные не видит. В ландшафт не отображается меню и пока не разгадал причину, в общем там должны отображаться следующие горячие клавиши:Для ЛандшафтаПеремещение : Стрелки + мышь [F1]->[F5] Выбрать местность [F11] Полёт/прогулка [F12] Каркас, плоскости [Esc] Выход До кучи остальные:Для океанаПеремещение: Стрелки, мышь, колесо Волны: [F1] / [F2] Поперечные: 100% [F3] / [F4] Малые: 100% [F5] / [F6] Продольные : 100% [F7] / [F8] Пена: 100% [F11] Полёт/прогулка [F12] Каркас, плоскости [Esc] ВыходДля самолёта[Стрелки] / Мышь - Штурвал/ручка [Pad 2-1] / ЛКМ-ПКМ - Руль [Pad 0-1] / Колесо - Двигатель (задаёт в процентах) [F1] Камера [F2] Дым [Esc] Выход Двигатель 100% Высота Скорость
|
Отправлено: 11-Апр-2024 14:32
(спустя 1 час 16 минут)
Gvint64
- Стаж: 4 года 7 месяцев
- Сообщений: 626
- Репутация:72[+] [-]
|
AZJIO, убрать квадратик методом удаления CreateSprite не совсем удачно, там же далее идёт обращение к спрайту, чтобы отобразить его (каждые 60 раз в секунду). CreateSprite(0,0,0,#PB_Sprite_AlphaBlending) Это не удаление - квадратик просто размером 0,0,0.
|
Gvint64
- Стаж: 4 года 7 месяцев
- Сообщений: 626
- Репутация:72[+] [-]
|
102711Я уже из океана подставлял функцию, пока не получилось Да это я тоже пробовал - тоже самое. Собственно поэтому и подумал спрятать квадратик. Кнопки всё равно работают.
|
AZJIO
- Стаж: 6 лет 9 месяцев
- Сообщений: 1325
- Репутация:127[+] [-]
|
qwea2005, да, у меня тоже ловится чуть выше горизонта и второй раз почти вверху. Вообще как то странно на 3D движке поверх накладывается 2D изображение движком спрайтов. При чём в коде "самолёт" ещё и перерисовка спрайта, в то время как Fred (автор PureBasic) говорил что перерисовка спрайтов не должна производится во время уже работающей игры, так как сводит на нет всю скорость спрайтов, потому что выгружает спрайт из памяти видеокарты в память ОЗУ чтобы перерисовать спрайт. Советовал если нужны тексты и прочее, то заранее сгенерировать буквы в виде картинок-спрайтов и составлять из них текст, то есть счёт и прочие цифры. Видеокарта с высокой скоростью расставляет картинки в своей памяти в любые позиции, вращает их и т.д., но если их выгружать для перерисовки то это снизит FPS. Для пробы я поставил отображение спрайта DisplayTransparentSprite() до отрисовки мира RenderWorld(), мир сразу стал без текстур, голые палки, как будто горевший лес. Также поиграл параметрами OpenScreen() изменял глубину цвета, менял на OpenWindowedScreen(), увеличивал размеры спрайта в 4 раза. Иногда на спрайте какая то движуха, как будто кусок зеркала крутится. Пробовал удалить спрайт и пересоздавать прямо в цикле, перед его отображением, тоже не помогло.
|
Текущее время: 14-Дек 14:33
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы не можете скачивать файлы
|
|