Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2015, 20:47   #11
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Да что ты будеш делать, 30 минут сидел писал писал все тонкости в проекте, отправил пост и было написано "Зарегистируйтесь на сайте".
Я все описал, все проблемные события и все остальное и тут на тебе!

phomm
Долго писал вам пост, буквально под каждой строчкой, сайт все затер...
Я перепишу завтра что хотел.

Очень мало народу я смотрю подобные программы собирали...

Рисуя тайловый мир на карте мы рисуем каждую клеточку на экране отдельно, а затем соединяем все клеточки вместе и получаем вид нашей игровой карты.

В ходе процесса игры я так делаю 30 раз в секунду с количеством клеток = 200 штук.
Пока все работает и вроде не виснет слава богу..

Но я усложняю игру я добавляю туда еще обьектов и не простых обьектов, а тех которые должны двигаться!

Трудность первая заключается вот в чем: их может быть очень сильно много и тогда как ими управлять?

Вторая трудность- тайлы у меня - это одна ячейка в массиве, а на карте это квадратный кусок канвы размером 32 на 32 пикселя. Как перемещать движущиеся обьекты например черепахи?
Если перезаписывать массив и затем перерисовывать канву взяв значения из массива- то мы сместим за черепаху сразу на 32 пикселя! что не есть хорошо!

Ну а если ей организовать смещение на 4 пикселя, для более плавной прорисовки то как это организовать то непойму? Это же непросто имага- персонаж которую как хочеш так и подвинеш используя Left, Top..
Это уже потребуется гораздо более сложную какую-то прорисовку организовать..

Поэтому я предлагаю- давайте детально разработаем (в мелких деталях) все возможные алгоритмы!
Хоть их десяток или хоть их двадцать или тридцать будет!


Тогда и будет возможность подумать над каждым из них в отдельности, протестить его, взвесить плюсы, минусы и подобрать уже оптимальный будет гораздо проще.
Обсудим плюс и мунус у каждой строны

Последний раз редактировалось Stilet; 09.02.2015 в 10:28.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 09.02.2015, 06:13   #12
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Очень мало народу я смотрю подобные программы собирали...
Независимая экспертная оценка. Вы точно изучили доступный в наиближайшем окружении материал, чтобы о таком судить ?
Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Рисуя тайловый мир на карте мы рисуем каждую клеточку на экране отдельно, а затем соединяем все клеточки вместе и получаем вид нашей игровой карты.

В ходе процесса игры я так делаю 30 раз в секунду с количеством клеток = 200 штук.
Пока все работает и вроде не виснет слава богу..
Оптимизацию либо закладывают изначально (опционально - сделать основу но не развивать , пока не прижмёт), либо потом работают с профайлером, оптимизируя только самое тормозное.
Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Но я усложняю игру я добавляю туда еще обьектов и не простых обьектов, а тех которые должны двигаться!

Трудность первая заключается вот в чем: их может быть очень сильно много и тогда как ими управлять?
ВНЕЗАПНО! Писать код. Какой именно код - надо _спланировать_
Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Вторая трудность- тайлы у меня - это одна ячейка в массиве, а на карте это квадратный кусок канвы размером 32 на 32 пикселя. Как перемещать движущиеся обьекты например черепахи?
Если перезаписывать массив и затем перерисовывать канву взяв значения из массива- то мы сместим за черепаху сразу на 32 пикселя! что не есть хорошо!

Ну а если ей организовать смещение на 4 пикселя, для более плавной прорисовки то как это организовать то непойму? Это же непросто имага- персонаж которую как хочеш так и подвинеш используя Left, Top..
Это уже потребуется гораздо более сложную какую-то прорисовку организовать..
Делается такое обычно простым способом - слоями, у статичных объектов свой слой, с поклеточной адресацией, а у динамичных свой слой (и под слоем понимается не просто информация где что находится, а целая система подпрограмм обработки разных явлений, например, простые вычисления на каких координатах одного слоя находится объект другого слоя или более комплексные просчёты взаимного смещения слоёв при динамичной отрисовке) с попиксельным размещением объектов.
Писать такое посложнее, но и свобода потом нормальная, без запутывания всего чего можно, включая себя, при необходимости каких-либо изменений/дополнений.
Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Поэтому я предлагаю- давайте детально разработаем (в мелких деталях) все возможные алгоритмы!
Хоть их десяток или хоть их двадцать или тридцать будет!


Тогда и будет возможность подумать над каждым из них в отдельности, протестить его, взвесить плюсы, минусы и подобрать уже оптимальный будет гораздо проще.
Обсудим плюс и мунус у каждой строны
Откуда ж вы такие берётесь, товарищи ?
Неужель с киберфорума ?
Хочу заметить, что такие рассуждения идут от недостатка опыта, и кажущееся возможным решение проблем через "взять количеством" не приводят ни к чему хорошему (известное "девять женщин не родят ребёнка за месяц"), а стоит заняться в первую очередь качеством. Уж хотя бы потому, что никому кроме Вас и, возможно, пары других новичков (но со своими грандиозными планами, а не стремящихся перенять Ваши), эти вещи не нужны, так как люди работают обычно до предела своих "сил", изучая предыдущий опыт, и только потом, усвоив и закрепив "уроки", делают своё, а потом переделывают, и так в цикле, пока не будет что-то имеющее минимальную адекватность.
А когда не зная чужого опыта, пытаются делать немаленькое дело "наощупь", то тратят много времени и сил, с довольно призрачным результатом и разочарованием.

И, в который раз: Забудьте об имейджах.
phomm вне форума Ответить с цитированием
Старый 09.02.2015, 09:59   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Трудность первая заключается вот в чем: их может быть очень сильно много и тогда как ими управлять?
У Вас есть же некий объект который отрисовывает клетки. Здесь будет тоже самое - некий менеджер, который будет в цикле рассматривать каждый объект и решать что с ним (или что он) должно сделать.
Цитата:
Поэтому я предлагаю- давайте детально разработаем (в мелких деталях) все возможные алгоритмы!
Хоть их десяток или хоть их двадцать или тридцать будет!
Это отсутствия опыта и элементарного планирования работ. Каждая задача только на первый взгляд является гиперсложной. Все что Вам нужно это создать дерево целей. Говоря проще - разбить задачу на мелкие независимые этапы, решение которых Вам вполне понятно и доступно. Например, поведение персонажей сложный и непонятный процесс. Но его можно разбить на следующие элементы:
- отрисовка персонажа
- логика поведения (принятие решения) персонажа
- изменение параметра персонажа (убит, стал силней, отняли часть жизни/брони и т.д.)
Видите? Проблема уже не кажется прям такой вот страшной. И вообще есть такая поговорка - Не так страшен черт, как его малютка. Вот и работайте в таком вот ключе.
Ну а все персонажи это цикл. Сможете сделать работу с одним, значит сможете и с двумя и с миллионом.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.02.2015, 12:05   #14
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

phomm.
Из вашего примера http://programmersforum.ru/showpost....5&postcount=37
Как это называется для Google?
Буду искать как это создается в среде Delphi7. Ведь это не MDI форма, и не отдельные unit, чем они сгруппированы (соединены)?
Изображения
Тип файла: jpg как это называется, ведь это не MDI форма.JPG (73.7 Кб, 88 просмотров)
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 15.02.2015, 14:03   #15
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Вопроса не понял, что называется, совсем.

Там обычное VCL-Forms (оконное с дельфи-формами) приложение. На скриншоте обычный вид для приложения с несколькими формами.
Если Вы про название, то оно указывается проекту при сохранении. Юзес же автосформированый самой дельфёй.
Формы добавляются в проект обычным образом File-New-Form

Если у Вас есть сложности с пониманием "структуры дельфи-проекта", то надо почитать что-то по данной теме, например, http://www.interface.ru/home.asp?artId=3621
phomm вне форума Ответить с цитированием
Старый 15.02.2015, 14:33   #16
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

У Forms в конструкторе нет видимой Form1. Как её создать? (У вас она называется "program ExiT_GamE;")
Надо просто изменить название на другое, не вникая в подробности...
Изображения
Тип файла: jpg File-New-куда.JPG (71.6 Кб, 151 просмотров)
Тип файла: jpg File-New-Other....JPG (91.4 Кб, 137 просмотров)
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 15.02.2015 в 14:44.
zvygin1964 вне форума Ответить с цитированием
Старый 15.02.2015, 17:23   #17
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Формы добавляются в проект обычным образом File-New-Form
Если делать так, то получается как на следующем скрине, а не как у Вас.
Изображения
Тип файла: jpg формы в обычном VCL-Forms (оконное с дельфи-формами).JPG (98.2 Кб, 145 просмотров)
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 15.02.2015, 17:44   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Создаешь проект, сохраняешь Save As с любимым именем проекта и главной формы. Каждую дополнительно созданную форму тоже Save As. Это будет именем юнита. Тип и имя формы меняй в свойстве Name формы. Ранее включенный в проект юнит тоже можно переименовать используя Save As. Ссылки на него из других юнитов придется ручками править. Форму со старым именем тоже ручками из каталога удаляй
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.02.2015 в 17:47.
Аватар вне форума Ответить с цитированием
Старый 15.02.2015, 18:01   #19
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Попробовал. У всех Unit создались визуальные TForm2 = class(TForm) .
program ExiT_GamE не создался (Unit без визуальной Form ).
У phomm сделано без главной формы.
Изображения
Тип файла: jpg program ExiT_GamE не создался.JPG (25.3 Кб, 84 просмотров)
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 15.02.2015 в 18:03.
zvygin1964 вне форума Ответить с цитированием
Старый 15.02.2015, 18:33   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот то файл проекта с расширением dpr. Просмотр и редактирование его Project->View Source
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Двумерные массивы 1Dima Помощь студентам 2 29.05.2011 13:57
ДВУМЕРНЫЕ МАССИВЫ rhbcnbyf Паскаль, Turbo Pascal, PascalABC.NET 2 09.06.2010 08:36