Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Кручу-верчу, обмануть хочу, или как использовать продвинутые методы вывода спрайтов. В классе TSprite есть три метода: DoDraw, DoCollision и DoMove Чтобы заставить спрайт созданный таким образом:
TPlayer = class(TImageSprite) end
;
выводится через продвинутые методы (DrawRotate, DrawAplha, DrawSub, DrawWave, StretchDraw), нужно "заглушить" стандартный вывод при создании объекта. Вот так:
typeTHero = class
(TImageSprite) Angle:integer; protected procedure
DoCollision(Sprite: TSprite; var
Done: Boolean); override
; procedure
DoMove(MoveCount: Integer); override
; procedure
DoDraw; override
; // вот здесь end
;
Теперь в процедуре DoDraw выводим спрайт нужным нам способом. Вот так:
procedureTHero.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
;
Посмотрите этот dodraw.zip примерчик, для более ясного понимания. А теперь недокументированная фишка! Забываем то, что написано выше и читаем дальше. Cоздадим спрайт таким образом:
TPlayer = class(TImageSpriteEx) protected procedure
DoMove(MoveCount: Integer); override
; end
;
И теперь в процедуре DoMove можно задать Angle (угол поворота спрайта) и Alpha (прозрачность спрайта). Примерно так:
typeTHero = 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
;
Дерзайте!