Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Четверг, 16.05.2024, 04:11
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Игровые алгоритмы

Отображение сетки на карте
Данная процедура пригодится для стратегий и игр с видом сверху. Разбив карту на ячейки, наша процедура наглядно покажет местонахождение всех обьектов, может использоваться в разных целях. Для начала обьявляем процедуру так:
var
i:integer; //могут возникать проблемы если перед процедурой не обьявлена ни одна переменная

procedure Setka(xKarti,yKarti,xKletki,yKletki:integer; Buf:Tbitmap);

Далее копируем следующий код самой процедуры

procedure Setka(xKarti,yKarti,xKletki,yKletki:integer; Buf:Tbitmap);
var
x,y:integer;
begin
x:=xKletki;
y:=yKletki;
  while(x<=xKletki*xKarti) do
  begin
  buf.Canvas.MoveTo(x,0);
  buf.Canvas.LineTo(x,yKletki*yKarti);
  x:=x+xKletki;
  end;

  while(y<=yKletki*yKarti) do
  begin
  buf.Canvas.MoveTo(0,y);
  buf.Canvas.LineTo(xKletki*xKarti,y);
  y:=y+yKletki;
  end;
end;

Перед тем, как я покажу Вам как использовать эту процедуру у Вас в программе, я обьясню переменные, которые нужно будет вписывать в процедуру
xKarti - ширина игровой карты в клеточках
yKarti - высота игровой карты в клеточках
xKletki - ширина клетки в пикселях
yKletki - высота клетки в пикселях
Buf - графический буфер (место для картинок), на который будет рисоваться видимая графическая область.

В нужном месте в программе мы можем вызывать нашу процедуру следующим образом:
Setka(33,22,30,30, buf);
Чтобы сетка постоянно рисовалась вставте вызов процедуры в таймер.

Затем для отображения нужно нарисовать графический буфер на чем-то, например:
1. Form1.Canvas.Draw(0,0,buf);
2. image1.Canvas.Draw(0,0,buf);
3. PaintBox1.Canvas.Draw(0,0,buf);


Категория: Игровые алгоритмы | Добавил: Armageddets (05.07.2012)
Просмотров: 1232 | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Где Вам удобнее оставлять коментарии и задавать вопроссы?
Всего ответов: 24
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0