Page 1 of 10

Игра "Косилка"

Posted: Tue Aug 14, 2007 4:53 pm
by Dron2004
Помнится, в начальной школе и 5-6 классах уроки информатики проходили у нас на компьютерах Yamaha КУВТ-2 (платформа MSX2). Примерно с 5 класса мы начали программировать на встроенном в ROM Basic'е, а до этого (в началке) исключительно играли в различные игры и рисовали (программа для рисования "Художник", вроде бы, называлась... Или что-то в этом роде). Так вот, одной из лучших игр, в которую я играл на КУВТе-2, была "Косилка". Смысл игры заключался в том, чтобы скосить всю траву на карте, причём по уже скошенной траве проехать нельзя. Кроме того, на карте был расположен ряд "мешающих" объектов, которые надо "объезжать".
У вас может возникнуть вполне логичный вопрос: к чему это я всё это рассказываю?
Дело в том, что после традиционного "хеллоуворлда" я решил заняться написанием какой-нибудь простой, но вполне "функциональной" (из скомпилированного хеллоуворлда конечный пользователь пользы извлечёт мало :) ) программы для Колибри. Этой программкой стала несложная, но, ИМХО, увлекательная игра. Как вы уже догадались, это попытка реализовать подобие той самой "Косилки" из далёкого прошлого. Однако, поскольку оригинала под рукой не было, всё писалось "по памяти", и в точности не соответствует оригиналу. Но, по крайней мере, суть одна и та же.

Итак, вот она, попытка реализовать "Косилку" для Колибри: Косилка для Колибри ОС. Версия 0.01.
Это ОЧЕНЬ ранняя версия. Скажем так, pre-Alpha. Она содержит только 2 уровня, графика крайне условна (по сути, всё состоит из прямоугольников). Однако, суть игры можно "прочувствовать" уже сейчас :wink: . Кстати, 2-й уровень пройти не так-то просто :D ...

Что касается технических деталей, игра пишется на C++. Используется MS Visual C++ 6.0, PE-шник "пропускается" через pe2kos.

P.S. Огромное спасибо diamond'у за статью про использование ЯВУ для написания программ для колибри.

Posted: Wed Aug 15, 2007 12:28 pm
by Mario79
Dron2004
Насколько я помню, оригинальная Косилка является динамической игрой, хотя пошаговая тоже интересна.
В динамической Косилке за игру начислялась очки: срезал кубик +100, проехал по земле -50, врезался в камень -200 и т. д.
Насчет кода вывода – он неоптимален, перерисовывать все поле при каждом шаге не надо. Нужно перерисовывать только ту область, которая изменилась, причем выводить информацию поверх, не проводя никаких процедур очистки, чтобы не мелькало. Окно вообще нужно перерисовывать лишь при поступлении события перерисовки.
Удачи.

Posted: Wed Aug 15, 2007 1:03 pm
by Dron2004
Приветствую.
Насколько я помню, оригинальная Косилка является динамической игрой, хотя пошаговая тоже интересна.
В динамической Косилке за игру начислялась очки: срезал кубик +100, проехал по земле -50, врезался в камень -200 и т. д.
Нет, та, в которую я играл на Ямахе, была именно пошаговой. Но поле было поменьше. Очков, насколько я помню, там не было вообще. Но, в принипе, ничто не мешает ввести понятие "очков" в Косилке для Колибри. Надо над этим подумать.
Насчет кода вывода – он неоптимален, перерисовывать все поле при каждом шаге не надо. Нужно перерисовывать только ту область, которая изменилась, причем выводить информацию поверх, не проводя никаких процедур очистки, чтобы не мелькало. Окно вообще нужно перерисовывать лишь при поступлении события перерисовки.
Большое спасибо за совет. Я как раз думал как сделать так, чтоб окно не мелькало. Будем работать :D .
Удачи.
Спасибо! Надеюсь, мне удастся довести написание этой игры до конца.

Posted: Wed Aug 15, 2007 3:12 pm
by Dron2004
Обновление. Скачиваем здесь: Косилка для Колибри. Версия 0.02 (32 Кб).

Изменения в версии 0.02:
- Исправлен жутчайший баг, из-за которого получаемая карта являлась зеркальным отражением задуманной
- Появилась полноценная графика. Можно переключаться между высококачественной графикой и стандартной графикой (прямоугольниками; такая графика была в версии 0.01). По умолчанию режим высококачественной графики включен
- Усовершенствован код вывода графики: теперь в процессе игры окно не мерцает
- Добавлен новый объект - деревья. По сути дела это тот же камень, только выглядит по-другому
- Теперь справа от игрового поля выводится версия игры :)

Posted: Wed Aug 15, 2007 4:03 pm
by Mario79
Dron2004
Акселерация разработки. Прогресс рвет все временные рамки. ;-)

Posted: Wed Aug 15, 2007 4:36 pm
by Dron2004
Ещё одно обновление! Косилка для Колибри. Версия 0.03 (49 Кб).

Изменения в версии 0.03:
- Исправлен баг: в версии 0.02 не обновлялось показание оставшейся травы. Теперь всё нормально.
- Устранено мерцание меню при переключении режима графики
- Теперь косилка рисуется в том направлении, куда был осуществлён ход (только в режиме высококачественной графики)
- Теперь при проигрыше (когда попыток не осталось) возможно начать играть заново (раньше можно было только выйти из игры)
- Устранена опечатка (точнее, мой "глюк"). "Число оставшихся жизней" теперь отображено как "Lifes left" (раньше было "Lives left" )

Mario79
:D :D :D

Posted: Wed Aug 15, 2007 4:38 pm
by DmitrySokolowsky
Вторая версия намного интереснее, графика понравилась :)

Posted: Wed Aug 15, 2007 6:17 pm
by Mario79
Dron2004
Выглядит значительно лучше, чем было, но размер возрос заметно.
Кстати при упаковке KPACK размер уменьшился с 150 Кб до 28,9 Кб, это лучше чем упаковывать в ZIP архив.
ИМХО имеет смысл выбросить низкокачественный режим - все равно память не экономится, а тормоза по идее не должны проявляться и на слабых компах - тут просто нечему тормозить. Хотя надо будет проверить на моему старом Cyrix.

Posted: Wed Aug 15, 2007 6:35 pm
by Dron2004
Кстати при упаковке KPACK размер уменьшился с 150 Кб до 28,9 Кб, это лучше чем упаковывать в ZIP архив.
Отлично! Значит, буду жать kpack'ом.
ИМХО имеет смысл выбросить низкокачественный режим - все равно память не экономится, а тормоза по идее не должны проявляться и на слабых компах - тут просто нечему тормозить. Хотя надо будет проверить на моему старом Cyrix.
ИМХО тормозить не должно. Низкокачественный режим оставлен просто так, без каких бы то ни было целей. Но убирать жалко, вдруг кто такую минималистичную графику предпочитает :D

Posted: Thu Aug 16, 2007 3:07 pm
by Dron2004
Косилка для Колибри. Версия 0.04 (30 Кб).

Изменения в версии 0.04:
-Добавлена анимация (движение косилки теперь анимируется). Стоит заметить, что анимация доступна как в режиме высококачественной графики, так и в режиме минималистичной прямоугольной графики. Анимацию можно отключить нажатием клавиши <a> в главном меню.

Posted: Thu Aug 16, 2007 3:25 pm
by Mario79
Dron2004
Между уровнями нужно вставить небольшую паузу, иначе не успеваешь отжать клавиши, а косилка уже шпарит по следующему уровню и шпарит не удачно.

Posted: Thu Aug 16, 2007 3:39 pm
by DmitrySokolowsky
Это хорошо, только косилка медленно движется и заметно мигает при движении (тестил в эмуляторе).
А хорошо бы ещё к этой игре звук добавить :D

Posted: Thu Aug 16, 2007 4:26 pm
by Dron2004
Mario79 wrote:Между уровнями нужно вставить небольшую паузу, иначе не успеваешь отжать клавиши, а косилка уже шпарит по следующему уровню и шпарит не удачно.
Хорошо.
Атауальпа wrote:Это хорошо, только косилка медленно движется и заметно мигает при движении (тестил в эмуляторе).
На реальной системе всё вроде бы нормально работает...

Posted: Fri Aug 17, 2007 6:44 am
by Leency
Игра отличная, графика конечно пока что немного примитивна, но всё же оформление и то что уже изпользуюццо бмп-файлы не может не радовать.
Удачи в разработке!

Posted: Fri Aug 17, 2007 5:02 pm
by Dron2004
Итак, Косилка для Колибри. Версия 0.05.

Изменения в версии 0.05:
- Добавлены паузы между уровнями
- Изменено оформление главного меню

Leency
Я очень рад, что игра понравилась :).
Leency wrote: графика конечно пока что немного примитивна
Ну, графику можно довольно легко заменить на любом этапе.
Leency wrote: но всё же оформление и то что уже изпользуюццо бмп-файлы не может не радовать.
Нууу... Там не совсем BMP файлы... Там довольно-таки хитро сделано... Картинки "зашиты" прямо в исходник :D.
Атауальпа wrote: А хорошо бы ещё к этой игре звук добавить
О звуке позже будем думать... Сначала надо всё остальное реализовать (в т.ч. подготовить уровни) :)