AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION: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-Apr-2024 14:32
(after 1 hour 16 minutes)
Gvint64
- Longevity: 4 years 6 months
- Posts: 625
- REPUTATION:72[+] [-]
|
AZJIO, убрать квадратик методом удаления CreateSprite не совсем удачно, там же далее идёт обращение к спрайту, чтобы отобразить его (каждые 60 раз в секунду). CreateSprite(0,0,0,#PB_Sprite_AlphaBlending) Это не удаление - квадратик просто размером 0,0,0.
|
Gvint64
- Longevity: 4 years 6 months
- Posts: 625
- REPUTATION:72[+] [-]
|
102711Я уже из океана подставлял функцию, пока не получилось Да это я тоже пробовал - тоже самое. Собственно поэтому и подумал спрятать квадратик. Кнопки всё равно работают.
|
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
qwea2005, да, у меня тоже ловится чуть выше горизонта и второй раз почти вверху. Вообще как то странно на 3D движке поверх накладывается 2D изображение движком спрайтов. При чём в коде "самолёт" ещё и перерисовка спрайта, в то время как Fred (автор PureBasic) говорил что перерисовка спрайтов не должна производится во время уже работающей игры, так как сводит на нет всю скорость спрайтов, потому что выгружает спрайт из памяти видеокарты в память ОЗУ чтобы перерисовать спрайт. Советовал если нужны тексты и прочее, то заранее сгенерировать буквы в виде картинок-спрайтов и составлять из них текст, то есть счёт и прочие цифры. Видеокарта с высокой скоростью расставляет картинки в своей памяти в любые позиции, вращает их и т.д., но если их выгружать для перерисовки то это снизит FPS. Для пробы я поставил отображение спрайта DisplayTransparentSprite() до отрисовки мира RenderWorld(), мир сразу стал без текстур, голые палки, как будто горевший лес. Также поиграл параметрами OpenScreen() изменял глубину цвета, менял на OpenWindowedScreen(), увеличивал размеры спрайта в 4 раза. Иногда на спрайте какая то движуха, как будто кусок зеркала крутится. Пробовал удалить спрайт и пересоздавать прямо в цикле, перед его отображением, тоже не помогло.
|
Current time is: 03-Dec 14:27
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
|