|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.02.2008, 21:23 | #51 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Лучше создавать собственный класс...
Можно компонент. Разницы в принципе нет. |
04.02.2008, 21:46 | #52 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
А по подробнее...
Писано по д'Эльфийски
|
05.02.2008, 15:43 | #53 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Поворот
Стоп, стоп, стоп!
Лубышев, про клоны Image забудьте раз и на всегда. Пример был дан для демонстрации, применим в аркаде, квесте, может в РПГ от части, все в любительском режиме, но никак не для стратегий. Вообще, сначала стоит подумать о ресурсоёмкости игры, если проба своих сил, то можете попробовать клон, но не советую. В основе простейшей 2D игры - один объект отображения графики. Начните с того, что создайте Image, назовите его Screen, растяните на размер формы или как угодно, и с помощью Canvas можете делать клоны чего угодно куда угодно в этот Screen. Почему Canvas? 1. Топик говорит сам за себя, проще канвы нет ничего. 2. Для стратегии Canvas подойдет в виду статичности объектов. Заинтересовались? спрашивайте...
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 10.06.2013 в 15:52. |
05.02.2008, 17:23 | #54 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
Назови их например LeftPressed, UpPressed ну и дальше в таком роде. Это будут флаги обозначающие нажата данная клавиша или нет. При запуске они изначально все будут false (как и все глобальные boolean если их не инициализировать). Нам это подходит, так что пока их не трогаем. Теперь пишем обработчики событий нажатия клавиши и отпускания. OnKeyDown и OnKeyUp. Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
10.02.2008, 19:48 | #55 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
mutabor спасибо! Я так думаю уроки и надо было с этого начинать. Чтож за такая игра, когда нельзя одновременно нажать на две кнопки.
Что-то тело как то непонятно движеться, что-то не то я делаю. а есть готовый рабочий пример? Beermonza, не могли бы вы расказать более подробно об том, что вы говорили? могли бы вы дать маленький примерчик, чтобы я все понял.
Писано по д'Эльфийски
|
11.02.2008, 16:52 | #56 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Подробно
Начните с главного.
- Стратегия - это игра с действиями на карте; - Карта - это клетки с объектами на них; - Информационный скелет карты - двумерный массив. Начинайте создавать игру со "скелета" карты (анализ ПО, сбор данных, типизация, ТЗ и пр. предшествующие пункты плана создания игры вы уже должны были проделать). Тип массива может быть выбран совершенно любым, ...вы должны обдумать каким образом можно представить данные, отвечающие за тот или иной объект. Допустим, вы решили представлять некоторый объект (например, дом) числом, то массив у вас будет Word типа, поскольку видов объектов в стратегиях большое множество. Но, вам совершенно не удобно использовать такой код. Попробуете сделать таблицу на все 65536 значений, где за каждым числом закреплен рисунок? ...вряд ли!, ...да и тип Byte, вам тоже не подходит. Что же делать? Давайте вспомним, что каждая ячейка массива может быть не только вместилищем одного типа данных, но и массивом записей или объектов, которые мы можем сами прописать, и указать нужный их тип. Вот так можно представить упрощенный массив объектов, для простой демонстрации: Код:
Код:
Код:
Отображение объектов игры через Canvas Как применить Canvac вы уже наверное знаете, но тем не менее, уточню. У нас есть экран игры Screen - это объект Image, есть скелет карты - массив GameMapMas, нужно их совместить вот такой строкой: Код:
Это только одна сторона медали, так же серьезно следует взяться за задний план карты - это поверхность, как ее нужно отображать, и что она из себя представляет? ...может это просто фон одного цвета, а может и мозаика из разных кусочков - тип грунта и пр. Прежде чем что-то рисовать канвой, следует вернуть назад участок заднего плана, как это будет происходит, зависит от вашего выбора.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 10.06.2013 в 15:46. |
11.02.2008, 23:19 | #57 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
array of array of word + TImageList TImageList.Draw(canvas,x,y,map[mapx,mapy]);
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
12.02.2008, 15:11 | #58 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Для начала можно попробовать и просто картинку, ...только это будет графический редактор, или что-то в роде одноразовой аппликации. Все равно придется думать над хранением других данных, кроме картинки, и при том с как можно простым алгоритмом параллельного использования. Советую отказаться от использования объектов, если в них нет нужды, ...ведь нам нужен сам факт хранения картинок в ОЗУ, давайте делать это напрямую в массив, и выводить рисунок из памяти сразу в объект отображения без посредников. Обратите внимание на то, что в цикле прорисовки кадров в скором времени, когда игра будет совершенствоваться, появится множество процедур, ...тут идет борьба за каждую команду, за правильность выполнения последовательности, ...мы должны будем даже отказаться от привычного умножения (*) и деления (/), заменив их сдвигами.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 12.02.2008 в 15:13. |
|
12.02.2008, 23:32 | #59 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
конечно, если не делать сдвиги ради самих сдвигов p.s. TImageList выводит графику довольно быстро, для учебных целей хватит с головой, а по своей сути он оболочка к системному имиджлисту. Свои объекты работают не намного быстрее стандартных, вообще ООП это тормоз, от него тоже нужно отказываться если нужна сверхскорость.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
14.02.2008, 17:33 | #60 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Не буду спорить, ...начинающие выберут метод полегче, если он их устраивает. Давайте не будем ссылаться на две библиотеки , ...и без них можно обходиться и довольно быстро все отрисовывать.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 10.06.2013 в 15:54. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |