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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 13:46   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию C++ Builder (компоненты)

Доброго времени суток уважаемые форумчане, появилась мысль написать игру (всем известный snake) на формах, но возникло пару вопросов, буду благодарен за любую помощь.
Я представлял себе эту игру на консольки, сообственно напредставлял себе следующее: Есть двумерный массив, всё происходит в бесконечном цикле с постоянным сдвигом одномерного массива, то есть змейки, по отрезкам матрицы который забит нулями за исключением сомой змейки,
она к примеру будет иметь единицу (змейка будет ввиде одномерного массива), по нажатию кнопок (left, right, up, down), изменять направление сдвигов змейки - то есть единицу по ячейкам. Далее рандомно расскидывать по массиву по одному x значению,
если это значение будет найдено, добавлять в массив змейки ещё одну единицу, и передвигать уже соответственно два эелемента змейки и т.д.
Хотелось бы поинтересовать у знатоков, какие компоненты мне будут нужны для работы (с формами никогда не работал, поэтому и решил что-то написать, чтобы получить базу знаний с работай по формам)
Если моя идея не совсем корректная, буду рад поправки. На формах я хотел использовать такую же идею, но змейку я хочу сделать ввиде квадратиков, то есть с использованием .jpg картинок + корм ввиде другого рисунка. (Змея скушала корм, получила +1 квадратик)
Не прошу за меня писать программу, прошу дать мне направление в нужное русло, дать толковое объяснение
За ранее благодарен за любую помощь.

Ссылка на программу: http://www.sendspace.com/file/englux

В опциях задумывается изменять скорость передвижения змейки, вкл/выкл. музыку ну и т.д.

Последний раз редактировалось coNsept; 22.04.2010 в 14:16.
coNsept вне форума Ответить с цитированием
Старый 22.04.2010, 18:35   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Я сейчас работаю над игрой, тоже в билдере (можете посмотреть результаты вот здесь, последняя версия внизу второй страницы). Из всех компонентов у меня только форма и таймер. Все рисование производится на канву формы (впрочем, имеется еще два TBitmap'а - первый для двройной буферизации, второй для главного меню) и TBitmap'ы для каждой загруженной в память картинки. Плюс множество собственных классов для реализации логики игры.
Собственно, игра проходит так: каждое срабатывание таймера - итерация игрового цикла, игра меняется по своим законам и выводит результаты на экран путем рисования сначала на буфер, потом с него - на канву формы. Также обрабатываются события OnKeyDown и OnKeyUp для управления игроком (они только меняют флаги нажатия клавиш, в зависимости от которых каждый шаг игрового цикла игра реагирует), OnMouseMove и OnClick для работы меню.
И еще одна маленькая деталь - для загрузки данных с текстовых файлов используется TStringList, но это детали конкретной реализации, можно читать файлы и потоками и сишными функциями и чем хотите.
Вот, кажется, и все, что касается использования конкретных компонент среды разработки. Это почти самый минимум, дальше - только WinAPI и DirectX/OpenGL/...
Хотя для начала вам может оказаться проще работать с движущимися TImage, но не советую, т.к. это очень не эффективно, а работать с канвой не так уж и сложно. Освойте на самых простых (необязательно игровых) примерах функции CopyRect, Draw, познакомьтесь с TBitmap и TRect и, если я ничего не забыл, этого вам с головой хватит!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 22.04.2010, 19:07   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Пффф, нереально огромнейший благодарюн за такой действительно хороший ответ.
coNsept вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание объектов компоненты в С++ Builder d0ger C++ Builder 1 06.12.2009 19:24
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00