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

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

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

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

Процедура прорисовки карты
Текст самой процедуры выглядит так:

procedure MapDraw(xKarti,yKarti,xTile,yTile:integer; buf:Tbitmap);
var
i,x,y:integer;
begin
  x:=0;
  y:=0;

  for i:=0 to xKarti*yKarti-1 do
  begin
    if i>0 then x:=i mod xKarti;
    if (x=0) and (i>0) then y:=y+1;
    buf.Canvas.Draw(x*xTile,y*yTile,Pic.Textures[ map.textures[i] ]);
    form1.Caption:='x='+inttostr(x)+'  '+'y='+inttostr(y);
  end;

end;

Описание параметром процедуры
xKarti - ширина игровой карты
yKarti - длина игровой карты
xTile - ширина клеток и текстур
yTile - высота клеток и текстур
buf - графический буфер, на который все рисуется, а потом весь буфер рисуется на чем-то. 
Буфер необходим дабы не происходило мигание при прорисовке графики, когда картинки рисуются поверх друг друга.

Использовать процедуру можно так:
MapDraw(200,200,32,32,buf);
Категория: Игровые алгоритмы | Добавил: Armageddets (09.07.2012)
Просмотров: 1149 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Какие уроки по созданию игр Вам удобнее?
Всего ответов: 141
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

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