Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для RostorLuxor
144 / 129 / 46
Регистрация: 12.08.2015
Сообщений: 1,203
Записей в блоге: 1
1

Игра на Delphi. Спрайты

13.02.2018, 22:29. Показов 984. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решил попробовать сделать платформер. Уже очень много googl'ил на эту тему, но кроме статей типа "как сделать игру пятнашки" не нашёл. Хотел попробовать сделать все игровые спрайты путём компонентов, но тут есть несколько проблем...

1. Допустим нужно сделать много блоков одинакового типа, и получается для каждого придётся создавать заново оригинальный компонент?

2. Если каждый спрайт - оригинальный компонент, то выходит координаты столкновения нужно высчитывать для каждого такого компонента... Это громоздко.

Хотел попробовать просто отрисовывать спрайты на канве, но обновлять её каждые 100 мс - уже громоздкая операция, которая приводит к мерцаниям и зависанию.

Есть ли какой-то простой способ реализовать игру? Ссылки на движки я находил много раз, но это не решает проблему. Примеров нормального платформера тоже не нашёл. Что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2018, 22:29
Ответы с готовыми решениями:

Игра на delphi
Собираюсь писать игру. Вообщем мне нужно сделать 2d танк с видом сверху. Он будет состоять из 2...

Реализовать и привести в рабочее состояние программу по представленному интерфейсу и коду
Помогите реализовать и привести в рабочее состояние программу по представленному интерфейсу и коду....

Игра в Delphi
Здравствуйте, помогите с заданием Цель работы - создать программу-игру, выполняющую следующие...

Игра на Delphi
нужно сделать игру реверсы на Делфи играют человек-человек

2
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
14.02.2018, 08:45 2
Цитата Сообщение от RostorLuxor Посмотреть сообщение
Ссылки на движки я находил много раз, но это не решает проблему
Решает. Потому что движки используют не просто рисование на канве, а OpenGL или DirectX, которые вместо ресурсов процессора используют ресурсы видеокарты и как раз заточены по эти задачи. Надо просто вдумчиво сесть и разобраться как работать с конкретным движком.

Цитата Сообщение от RostorLuxor Посмотреть сообщение
1. Допустим нужно сделать много блоков одинакового типа, и получается для каждого придётся создавать заново оригинальный компонент?
Это путь в никуда.

Цитата Сообщение от RostorLuxor Посмотреть сообщение
2. Если каждый спрайт - оригинальный компонент, то выходит координаты столкновения нужно высчитывать для каждого такого компонента... Это громоздко.
Это не громоздко. Вычисление столкновений геометрически простых фигур (круг, квадрат и т.д.) - достаточно тривиальная задача, там простая математика, она не будет сильно грузить систему (если, конечно, речь не о сотнях спрайтов).

Цитата Сообщение от RostorLuxor Посмотреть сообщение
Хотел попробовать просто отрисовывать спрайты на канве, но обновлять её каждые 100 мс - уже громоздкая операция, которая приводит к мерцаниям и зависанию.
Разумно и правильно. Всегда для игр должен быть принцип - одна канва на всю игру, и картинка отрисовывается именно на эту канву. Как получить картинку для вывода - уже другая интересная история, и битмапы тут, конечно, не лучший вариант. Не просто так люди отказались от этого варианта в пользу DirectX, например. Кстати, что там за платформер такой, который при 10 фпс выдает мерцания и зависания? Скорее всего, неоптимальная архитектура.

По факту, если есть интерес именно получить общее понимание, то, имхо, самое правильное - Delphi 7 + DelphiX. Старый, неподдерживаемый и мертвый движок, но порог вхождения в него очень и очень низок.
0
 Аватар для krapotkin
5873 / 4601 / 1448
Регистрация: 14.04.2014
Сообщений: 20,415
Записей в блоге: 20
14.02.2018, 09:29 3
http://asphyre.net/
работает на свежих версиях

кроме того, FMX тоже использует ускорение, так что можно рисовать на канве
0
14.02.2018, 09:29
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2018, 09:29
Помогаю со студенческими работами здесь

Игра в Delphi
Здравствуйте, пишу игру "Морской бой".... Все вроде работает нормально....Только вот у меня можно...

Игра танчики - Delphi
Помогите пожалуйста исправить ошибку, все работает хорошо, но когда в мой танк прилетает пуля...

Игра судоку на Delphi 7
Игра судоку на Delphi 7 В прошлом году делал курсовой проект для одного парня. Называется...

Delphi игра змейка
Хочу добавить в игру змейка 3 бонуса 1) уменьшение увеличение змейки после его поедания 2)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru