Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Aрканоид на Bordland Pascal

Автор: Natalya 4.03.2014 2:33

Привет) Пишу сюда впервые, как впрочем и впервые пишу свою игру. Мне очень нужна помощь людей с опытом написания подобных игр. Итак, я совершенно не понимаю, как представлять массив в качестве поля игры. Знаю только общую идею, что в массиве содержаться числа, которые определяют прочность блоков, но не представляю, как это реализовать, да еще и в графическом режиме...Помогите кто-нибудь, пожалуйста советом или кодом!

Автор: OCTAGRAM 4.03.2014 10:46

Я начинал с того, что заполнял массив рисунком и отрисовывал этот массив на экране.

Автор: Natalya 5.03.2014 0:32

Цитата(OCTAGRAM @ 4.03.2014 7:46) *

Я начинал с того, что заполнял массив рисунком и отрисовывал этот массив на экране.


А вы не могли бы пояснить, что имеете в виду?

Автор: OCTAGRAM 6.03.2014 10:23

Массив можно инициализировать константой


const MyArray : array[0 .. 6][0 .. 19] = (
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0),
(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0),
(0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0),
(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
);



Затем этот массив статично отрисовать.

Графический режим обычно либо 320x200 (256 цветов), либо 640x350 (16 цветов). Обычно, если инициализировать графику, будет 640x480 (16 цветов), он не подходит потому что в нём в видеопамять влезает только одна видеостраница, а для графики без мерцаний надо хотя бы две, но это уже на будущее, просто режим надо выбрать с самого начала, и в 640x480 будут проблемы.

Выбрав видеорежим, можно прикинуть, какие координаты будут у стен и блоков и отрисовать всё это.

Автор: Natalya 9.03.2014 20:54

Цитата(OCTAGRAM @ 6.03.2014 7:23) *

Массив можно инициализировать константой


const MyArray : array[0 .. 6][0 .. 19] = (
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0),
(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0),
(0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0),
(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
);



Затем этот массив статично отрисовать.

Графический режим обычно либо 320x200 (256 цветов), либо 640x350 (16 цветов). Обычно, если инициализировать графику, будет 640x480 (16 цветов), он не подходит потому что в нём в видеопамять влезает только одна видеостраница, а для графики без мерцаний надо хотя бы две, но это уже на будущее, просто режим надо выбрать с самого начала, и в 640x480 будут проблемы.

Выбрав видеорежим, можно прикинуть, какие координаты будут у стен и блоков и отрисовать всё это.

спасибо) попробую сделать так)