|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
||||||
Проблема с 2D аркадой30.04.2011, 22:48. Показов 1693. Ответов 13
Метки нет (Все метки)
Робяты у меня ппц... полный, кризис жанра! вобщем я ворзнамерился написать 2D аркаду(а иначе у меня программинг не учиться тока так ставя перед собой сложные задачи и решая их я и могу учиться). Игра примитиф летит самолетик постояно стреляет патронами... мочиво пиф-паф итд. В чем собсно трабл? а вот в чем я незнаю как зделать так чтоб постояно стрелял патриками... подскажыте.Уже все перепробовал и через масиви и через таймер итд... нефига невыходит. Прилагаю код + екзешник.
0
|
||||||
| 30.04.2011, 22:48 | |
|
Ответы с готовыми решениями:
13
проблема при работе с китайским J-LINK 8 или же проблема с с Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста! Холодильник LG .мод GR-M392YQ.Проблема с дверю, Проблема с дверю при закрывании |
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
||||||
| 07.05.2011, 15:39 [ТС] | ||||||
|
...Вобщем я заглядывал в специализированые по игрострою форумы мне сказали ето решаемо через конструктор
P.S не конструктор "присобачить" а как зделать проблему решаемую через конструктор. P.P.S заранее благодарен.
0
|
||||||
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
|
| 07.05.2011, 23:28 | |
|
с таким подходом на дельфи ты не сделаешь аркаду... ты лучше возьми gamemaker (погугли) и мануалы по нему
а на дельфи это делается не совсем так, как пишутся офисные программы (что видно у тебя) желательно создать описание пары сущностей-объектов (не программных оъектов) где указать, что у них будут храниться за данные и как изменяться. например, корабель : координаты - 2 числа, линейная скорость - 1 число(можно и 2 , если скорости различаются по осям - вперед-назад быстрее, вверх-вниз медленее ), время перезарядки (в виде количества условных "тиков", скорость, кстати , тоже по ним , по тикам ), желательны также 2 числа - ширина и длина корабеля, дополнительно надо бы указать принадлежность корабеля - игрок/враг ,ну и куда же без неёё - картинки ) также потом в игре появятся жизни, броня и т.п. "патрик" (эх, молодёжь) : координаты - 2 числа, скорость - 1 число(только вперед) , и "принадлежность" - своя/вражья. им понадобится массив... ну и конечно ещё и урон в последствии, да и пометку о пападании тоже как происходит работа программы (забудь про событийную модель, почти всё на таймере) : создаем таймер. ставим его интервал = числу от 50 до 100 (так удобнее), ещё лучше - создать константу для этого числа. в событии создания формы задаем таймеру интервал значению из той константы. задаем координаты корабля нашего, его размеры и картинку, также и картинку для пули, ну и скорости им тоже. в событии закрытия формы освободим память под картинки. в событии таймера надо будет писать всю основную работу - проверить нажатость клавиши при помощи getasynckeystate и если нажаты нужные кнопки для ускорения корабля - то прибавить его каждой координате соответствующую скорость. если нажата кнопка выстреала, то надо создать пулю с начальными координатыми равными кораблю, задать остальные нужные параметры и положить её в конец массива пуль. потом пробегаемся по массиву пуль - если пуля ушла за экран или помечена попавшей, то удалим её (можно просто помечать как-то дополнительно, но по уму и уменьшать массив, посмотри в справке функцию slice), иначе прибавим каждой пуле к координате полета вперед её скорость, при этом надо производить проверку столкновения с объектами. это я привел очень кратенько и обобщенно. а вот как это реализовывать... ну тут на выбор - писать объектно или же структурно.. то что ты привел выше это запись (record), относится к структурному программированию, понядобится писать процедуры для обработки этих записей. а можно и писать объектно - вот в них как раз существует понятие конструктора, а не то что ты привел (хотя может имелся в виду конструктор игр как программа, тогда см. первое предложение поста), там код немного посложней, но и удобства потом оценишь, когда например, код за создание корабля игрока и врага будет работать и с кораблем противника, только чуток изменятся цифры (в структурном так посложнее сделать)
0
|
|
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
|
| 08.05.2011, 00:40 [ТС] | |
|
эээ ну мне gamemaker точно не каким боком не уперся. Он хорош спору нет, если твой потолок 2D аркада... хочеться большого а он меня ограничивает да и я принцыпиально не могу чтото выучить(в даном случаи прграммирование) не ставя перед собой трудные задачи.
Добавлено через 56 секунд Хотел бы я простых путей взял бы какой-нить бесплатный двиг... Добавлено через 5 минут Так как я учусь я бы хотел попробывать реализовать оба варианта но просто уже неделю стою в тупике. И лучше начать со структурного... от сложного к лёгкому ити проще.Подскажыте самуидею как ето реализовать и дальше я сам. p.s заранее благодарен
0
|
|
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
|
| 08.05.2011, 08:19 | |
|
сперва полностью напиши код объявления 2 record , которые тебе нужны, а там поглядим.. судя по твоим сообщениям , тебе надо всё по шагам, научишься ) коли будет желание... я вообще учился всему сам, без инета, справки мануалы и кодить кодить
почему я говорю только про 2 записи, ибо НАЧИНАТЬ НАДО С КОНЦЕПЦИИ, а у тебя это примерно будет такое - кораблик с такими-то параметрами пермещается в космосе, изображенным плоским пространством(определись, что это будет - просто некая область, скроллер с постепенным перемещением по области, или side-скроллер, когда переход за границу экрана сопровождается появлением с другой стороны). игрок управляет перемещением кораблика с помощью клавиш стрелок, и может стрелять - тогда он выпускает прямолетящую пулю с такими-то параметрами. пуля при столкновении с "врагом"(пока не будем трогать врагов, хоть бы с первым всем разобраться) будет наносить ему урон мой тебе простой совет - забудь про шейпы... взял и забыл, нет их. хочешь научиться - учись, а не придумывай костыли, коими являются шейпы. тебе надо загрузку картинок и их отрисовку, причем по таймеру. это точно. и кстати, я забыл дописать в то место где я писал про столкновение с другими объектами - тут будет проход по всем "действующим" объектам на экране и отрисовка их
0
|
|
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
||
| 08.05.2011, 12:28 [ТС] | ||
0
|
||
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
|
| 08.05.2011, 20:16 | |
|
Да, двойную буферизацию надо использовать, делается так, что в буферный битмап(который по размеру формы) рисуется всё что надо, а потом он один рисуется на форму, form.canvas.draw(0,0,bitmap);
0
|
|
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
|
| 08.05.2011, 20:23 [ТС] | |
|
Но до етого далеко мне надо чтоб у меня щя пули летели хотяб без перерисовки, а то перерисовывать то пока нечего
А то мне все говорят мол есть 2 подхода к решению твоей задачи и все - тишына и не кто не обьяснит а как ето собсно делать.
0
|
|
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
|
| 08.05.2011, 20:59 | |
|
0
|
|
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
|||||||||||
| 09.05.2011, 19:33 [ТС] | |||||||||||
|
я тут решыл маленько код переделать мне посоветовали делать через указатели... собсно новые только 3 процедуры... вопрос вот в чем: куда в type ткнуть PProjectile = ^TProjectile; чтоб оно не матюкалось?
Все не матюкаеться... Обьясните кто-нить что есть указатель, Tlist и как и для чего его исп. а то я так по примеру катанул... вроде и код понимаю а повторить не повторю. Добавлено через 24 минуты При изменении процедуры TForm1.add_projctl() ругаеться
Блин переписал пример из http://www.delphisources.ru/pa... e.php.html и всеравно нефига непашет. Кризис жанра. ХЕЛП!!1
0
|
|||||||||||
|
2184 / 1255 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
||||||
| 09.05.2011, 21:23 | ||||||
|
вот небольшой пример
можешь доработать код что бы объект уничтожался когда пулька залетает за правую форму (она уже становится не нужной ) )
0
|
||||||
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
|||||||||||
| 09.05.2011, 22:57 | |||||||||||
например конкретный вопрос - как работать с tlist для хранения в нем записей о типе "пуля" не теряйте времени, если хотите в этом разобраться...
0
|
|||||||||||
|
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
|
|
| 10.05.2011, 00:43 [ТС] | |
|
До событий таймера тупо не дошло.... мне ети процедуры выдавали ошыбку...
Были бы хоть какие-то книги с описанием Tlist везде только тот жалкий пример, который кстати непашет ![]() а 'ХЕЛП!!1' - крик души я уже незнаю сколько мучаюсь над етой проблемой. Добавлено через 31 минуту Почему в одних примерах исп. record а в других class?
0
|
|
|
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
|
||
| 10.05.2011, 09:21 | ||
|
А ты напиши, как тебе удобнее, начни с простого, не залезай во всякие оптимизации и и подобное... чтобы въехать в ООП (классы) тебе с гарантией потребуется 5 часов ! это минимум, и если ты очень умный, потому что мануалы по ООП довольно серьезные и объемные. Сделай пока так, как умеешь, и покажи, как ты выразил в коде свою концепцию, не пытатайся добиться работы сразу, а то будет каша я уже не знаю, как тебе это объяснять, если и после этого поста не будет того, о чем я прошу, то я умываю отсюда
0
|
||
| 10.05.2011, 09:21 | |
|
Помогаю со студенческими работами здесь
14
СМА Indesit AQ70L 05 CIS проблема с вращением двигателя, СМА Indesit AQ70L 05CIS проблема с вращением двигателя
Проблема Неполадки с IE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|