|
11 / 11 / 2
Регистрация: 13.07.2014
Сообщений: 420
|
||||||
Pygame. Маленький FPS07.06.2018, 21:21. Показов 8386. Ответов 8
Метки нет (Все метки)
Добрый вечер. Немного практикую сабж.
В общем делаю примитивную недоигру. Танк имеется. Едет вперёд (строго вперёд) по дороге асфальтовой, она представляет собой текстуру 200 килобайт png. И таких список из 4 стоящих в ряд, типа тайлов, иллюзия одной длинной дороги. Когда нижняя заходит за границу экрана, она переносится на самый вверх и так по кругу. Вот и бесконечная дорога готова. Тут и проблем нет. Проблемы начинаются с другой текстурой. Травой. Она около мегабайта размером, jpg. Их я 6 использую для полного заполнения экрана (с запасом) и так же перекидываю их снизу вверх для имитации бесконечности. ТАК ВОТ, когда я убираю эту текстуру травы из рендера, ФПС 60 равен. Но когда на экране фигурирует эта текстура травы, ФПС падает до 13-20! Что для меня шок, ведь я делаю примитивную игру, а не Крайзис. Тем более с моими i5 3550, 16г ОЗУ и RX480 как никак. Думал, что дело в формате (jpg), но менял я на png, увы. Краем глаза видел про некую функцию convert(), которая убирает альфу и ФПС вырастает в разы. Но пока не получилось использовать её. Пока делаю так (я новичёк в Питоне, и в Пайгейме). global Map Конструктор: self.Map = [pygame.image.load(os.path.join('D:\Tanki ', 'grass.png'))] * 6 # Создаю куски карты. Map_coordinat = [а тут всякие значение для всех этих кусков общей карта травы] А вот уже игровой цикл:
Остальное не стал показывать, основное лишь показать, остальное не суть важно я думаю. Заодно прикладываю скрины текстуры этой травы и в целом скрин из этой "недоигры". Так что я не так делаю? Загрузку текстур я делаю не в игровом цикле... Хотя бы скажите пожалуйста, дело не в самом языке Python? Реально на нём хотя бы 2D игры делать с хорошим FPS?
0
|
||||||
| 07.06.2018, 21:21 | |
|
Ответы с готовыми решениями:
8
При импорте pygame пишет что нет модуля pygame.base Ошибка в pygame AttributeError: 'pygame.Rect' object has no attribute 'blit' Pygame ошибка module ‘pygame’ has no ‘init’ member |
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 07.06.2018, 23:24 | ||||||
|
Используйте convert
1
|
||||||
|
11 / 11 / 2
Регистрация: 13.07.2014
Сообщений: 420
|
||
| 07.06.2018, 23:59 [ТС] | ||
|
0
|
||
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 08.06.2018, 00:43 | |
|
1
|
|
|
11 / 11 / 2
Регистрация: 13.07.2014
Сообщений: 420
|
||
| 08.06.2018, 01:51 [ТС] | ||
|
Я в принципе делал это self.Window = pygame.display.set_mode([1920, 1080]) Но почему-то это не помогало от той ошибки. И я сделал отдельно просто строку pygame.display.set_mode((800,600)). Если не затруднит, не скажите, в чём там всё таки фишка с этим convert? По этой теме материала мало, загуглить не так и просто, а хочется осознать в чём дело. Почему с альфой этой такие просадки. Как я понимаю дело не в самом языке, язык не такой уж и тормознутый
0
|
||
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|||||||||||
| 08.06.2018, 04:18 | |||||||||||
Сообщение было отмечено Masai как решение
Решение
Для отрисовки pygame использует surface, это структура которая содержит список пикселей, вот эта команда
1
|
|||||||||||
|
11 / 11 / 2
Регистрация: 13.07.2014
Сообщений: 420
|
|
| 08.06.2018, 11:53 [ТС] | |
|
Ещё раз огромное спасибо, ТабуретY!
Приятно увидеть того кто в ПайГейме разбирается. У меня правда ещё вопрос был по поводу Rotation (башню на танке поворачивать). В sfml я это делал вознёй с origin, а потом поворачивал. А в Пайгейме как-то иначе это делается. pygame.transform.rotate поворачивает объект не по своей оси, ещё и коверкает изображение. Мне новую тему создать для этого вопроса?
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 08.06.2018, 11:59 | |
|
0
|
|
|
9 / 9 / 3
Регистрация: 05.01.2016
Сообщений: 17
|
|
| 11.06.2018, 17:46 | |
|
Примеры приличных игр смотри на pyweek.org
От 2d, до псевдо-3д и 3д. Хотя конёк питона это, конечно же, 2д. Из названий добротно написаных , по памяти, помню Sky Eraser. Дома собрал для себя список качественно написаных игр, если надо, могу попозже скинуть.
1
|
|
| 11.06.2018, 17:46 | |
|
Помогаю со студенческими работами здесь
9
В играх маленький FPS Маленький fps в играх с DirectX11 Скачет загрузка GPU и маленький FPS
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|