|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.08.2011, 12:55 | #1 |
В стагнации
Участник клуба
Регистрация: 29.07.2011
Сообщений: 1,303
|
Вопрос: Параллельные алгоритмы. Реализация стрельбы.
Мне пришла идея написать текстовую игру. Назову её THE TAXER.
Суть такая - вы сборщик налогогов (буковка Т) будете приходить к злостным неплательщикам (Z - мелкие, B - большие) и пр. Но они не хотят отдавать свои деньги просто так. Они наняли всяких там убийц. Когда вы приходите на уровень (к ним в дом), то вам надо найти этого чувака и дать ему по шапке, но по пути должны быть всякие ловушки и убийцы, а также аптечки, и прочие мелкие атрибутики и мини-игры в виде взлома сейфов на время и пр. В конце вы находите главного чувака, он вам сдается, отдает деньги. За выполнение уровня и всяких там мини-игр вам даются различного вида бонусы, на которые вы можете закупать дополнительные атрибутики для себя. И всё это я хочу реализовать в консольном окошке размером 80х25 символов. Понимаю что бред, но с графикой я не работал никогда, да и хочется просто пока разобраться с классами и параллельными алгоритмами. Использую язык С++. А теперь вопрос: я хочу чтобы например я стрельнул знаком * и выстрел летел себе и летел, независимо от того иду я или стою на месте. Ну вот например если я напишу в общих чертах так. Код:
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание. |
05.08.2011, 13:25 | #2 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
В VCL для этого можно использовать TTimer, который будет содержать основной цикл игры. В вашем случае можно просто сделать цикл в стиле
Код:
Код:
|
05.08.2011, 13:41 | #3 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
DimaTs, вот вы про VCL, а ведь MooNDeaR ясно же сказал, что использует С++ - однако я сомневаюсь, что он пишет в билдере(хотя, в Visual Studio тоже есть Timer).
MooNDeaR, я делал(и делаю) так: у меня есть основной цикл ожидания действий, что-то типа(псевдокод) Код:
Последний раз редактировалось _-Re@l-_; 05.08.2011 в 13:43. |
05.08.2011, 13:54 | #4 | ||
В стагнации
Участник клуба
Регистрация: 29.07.2011
Сообщений: 1,303
|
Цитата:
Цитата:
Спасибо, кстати за код. Только в С++ нет keyPressed, там есть kbhit(), но это мелочи. Спасибо большое.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание. |
||
05.08.2011, 14:17 | #5 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
-Re@l-_, а я ясно сказал что МОЖНО использовать таймер, однако в консольке неплохо приживется просто цикл) Который вы в принципе и приводите. И, возможно, стоит сначало всех подвинуть, а потом уже читать клавиши?
MooNDeaR, с указателями и списками вы наверняка знакомы? Либо с динамическими массивами? тТогда пули лучше всего заносить именно туда, это сразу же решит возможную проблему с наличием нескольких пуль на экране |
05.08.2011, 18:02 | #6 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Советую почитать классику. Скажем, исходники Quake 1. ftp://ftp.idsoftware.com/idstuff/source
Есть даже их обзор: http://fabiensanglard.net/quakeSource Там таймер сделан простым бесконечным циклом; когда набирается достаточный интервал времени - выполняeтся Host_Frame (time), который, помимо прочего, обрабатывает "собранные" нажатия клавиш. Минус такого подхода - 100% загруженность процессора. Но у меня есть наработки по таймеру, быстрому (быстрее стандартных виндовских 65 Гц) и негрузящему процессор. В понедельник выложу, если надо. |
05.08.2011, 19:16 | #7 | ||
В стагнации
Участник клуба
Регистрация: 29.07.2011
Сообщений: 1,303
|
Цитата:
Но ничего, время есть, и тем более у игры написано только вступление и сюжет. Пока весь, так называемый "проект" на бумаге. Цитата:
Возник еще вопрос, вот например я хочу реализовать маленькую мини игру, в которой надо будет вскрывать сейф. То, по каким правилам он будет вскрываться, еще в доработке, но уже точно ясно что это будет на время. Как бы мне привязать весь процесс обратного отсчета к системному времени?:
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание. Последний раз редактировалось MooNDeaR; 05.08.2011 в 19:20. |
||
05.08.2011, 19:25 | #8 | |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
Цитата:
Насчет пуль, имеется список объектов типа пуля, цикл каждый раз по нему пробегает(на самом деле я думаю пуль будет штук 5 максимум) и подвигает пулю в нужном направлении. Когда пулю пора убрать, ее объект просто уничтожается. Кстати если у вас враги планируют стрелять, все пули можно класть в один список. |
|
05.08.2011, 19:32 | #9 |
В стагнации
Участник клуба
Регистрация: 29.07.2011
Сообщений: 1,303
|
Тогда можно пожалуйста в кратце объяснить суть его работы А лучше просто небольшой код, который мне объяснит всё лучше слов.
P.S. С пулями довольно ловко. Только это если врагов немного (а на поле 80х25 много и не запихаешь
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание. |
05.08.2011, 20:36 | #10 | |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача из раздела Комбинаторные алгоритмы и алгоритмы на гра-фах в Паскале | Klik_1602 | Помощь студентам | 1 | 04.01.2011 01:18 |
[Вопрос] Реализация многопоточности запуска/остановки конкретных программ из списка | Человек_Борща | Общие вопросы Delphi | 8 | 06.10.2010 08:59 |
Численные методы. Метод Стрельбы (Делфи) | s1z0n | Помощь студентам | 1 | 23.04.2010 15:37 |
краевая задача диф.уравнения методом стрельбы | Laplas | Помощь студентам | 2 | 26.12.2009 23:56 |
Задача на оценку эффективности стрельбы | Борзов | Помощь студентам | 3 | 23.05.2007 06:54 |