|
|
1 | |
Игра на Delphi. Спрайты13.02.2018, 22:29. Показов 984. Ответов 2
Метки нет (Все метки)
Решил попробовать сделать платформер. Уже очень много googl'ил на эту тему, но кроме статей типа "как сделать игру пятнашки" не нашёл. Хотел попробовать сделать все игровые спрайты путём компонентов, но тут есть несколько проблем...
1. Допустим нужно сделать много блоков одинакового типа, и получается для каждого придётся создавать заново оригинальный компонент? 2. Если каждый спрайт - оригинальный компонент, то выходит координаты столкновения нужно высчитывать для каждого такого компонента... Это громоздко. Хотел попробовать просто отрисовывать спрайты на канве, но обновлять её каждые 100 мс - уже громоздкая операция, которая приводит к мерцаниям и зависанию. Есть ли какой-то простой способ реализовать игру? Ссылки на движки я находил много раз, но это не решает проблему. Примеров нормального платформера тоже не нашёл. Что делать?
0
|
13.02.2018, 22:29 | |
Ответы с готовыми решениями:
2
Игра на delphi Реализовать и привести в рабочее состояние программу по представленному интерфейсу и коду Игра в Delphi Игра на Delphi |
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
14.02.2018, 08:45 | 2 |
Решает. Потому что движки используют не просто рисование на канве, а OpenGL или DirectX, которые вместо ресурсов процессора используют ресурсы видеокарты и как раз заточены по эти задачи. Надо просто вдумчиво сесть и разобраться как работать с конкретным движком.
Это путь в никуда. Это не громоздко. Вычисление столкновений геометрически простых фигур (круг, квадрат и т.д.) - достаточно тривиальная задача, там простая математика, она не будет сильно грузить систему (если, конечно, речь не о сотнях спрайтов). Разумно и правильно. Всегда для игр должен быть принцип - одна канва на всю игру, и картинка отрисовывается именно на эту канву. Как получить картинку для вывода - уже другая интересная история, и битмапы тут, конечно, не лучший вариант. Не просто так люди отказались от этого варианта в пользу DirectX, например. Кстати, что там за платформер такой, который при 10 фпс выдает мерцания и зависания? Скорее всего, неоптимальная архитектура. По факту, если есть интерес именно получить общее понимание, то, имхо, самое правильное - Delphi 7 + DelphiX. Старый, неподдерживаемый и мертвый движок, но порог вхождения в него очень и очень низок.
0
|
|
|
14.02.2018, 09:29 | 3 |
http://asphyre.net/
работает на свежих версиях кроме того, FMX тоже использует ускорение, так что можно рисовать на канве
0
|
14.02.2018, 09:29 | |
14.02.2018, 09:29 | |
Помогаю со студенческими работами здесь
3
Игра в Delphi Игра танчики - Delphi Игра судоку на Delphi 7 Delphi игра змейка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
КуМир, исполнитель Водолей: Задачи и решения
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 являются двумя. . .
|