Понедельник, 20.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Как часто ви на этот сайт заходите?
Всего ответов: 159
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Графика » Игры

Advanced Draw

Кручу-верчу, обмануть хочу, или как использовать продвинутые методы вывода спрайтов.

В классе TSprite есть три метода:
DoDraw, DoCollision и DoMove
Чтобы заставить спрайт созданный таким образом:

TPlayer = class(TImageSprite)
end; 

выводится через продвинутые методы (DrawRotate, DrawAplha, DrawSub, DrawWave, StretchDraw), нужно "заглушить" стандартный вывод при создании объекта. Вот так:

type
 THero = class(TImageSprite)
 Angle:integer;
 protected
 procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
 procedure DoMove(MoveCount: Integer); override;
 procedure DoDraw; override; // вот здесь
 end; 

Теперь в процедуре DoDraw выводим спрайт нужным нам способом. Вот так:

procedure THero.DoDraw;
begin
 image.drawrotate(form1.DXDraw.Surface,round(x)+16,round(y)+16,image.width,image.height,round(animpos),0.5,0.5,Angle);
end; 

А теперь недокументированная фишка!
Забываем то, что написано выше и читаем дальше.
Cоздадим спрайт таким образом:

TPlayer = class(TImageSpriteEx)
protected
 procedure DoMove(MoveCount: Integer); override;
end; 

И теперь в процедуре DoMove можно задать Angle (угол поворота спрайта) и Alpha (прозрачность спрайта). Примерно так:

type
 THero = class(TImageSpriteEx)
 Angle:integer;
 protected
 procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
 procedure DoMove(MoveCount: Integer); override;
 end;

procedure TPlayer.DoMove(MoveCount: Integer);
begin
 X:=100;
 Y:=100;
 Angle:=60;
 Alpha:=150;
end; 

Дерзайте!

Получить ссылку на материал

Категория: Игры | Добавил: Барон (08.12.2011)
Просмотров: 535 | Теги: draw, Advanced | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
DirectX [17]
OpenGL [2]
Игры [15]
Разные [28]
Королевство Delphi © 2010-2024
Яндекс цитирования