rendered paste bodyunit Soldier;
interface
uses Classes,DXClass, DXDraws,Graphics;
type
TSotilas = class
public
x:integer; //actual x
y:integer; //actual y
vx:real; //velocityx
vy:real; //velocityy
//radians(of given angle=kulma1). scalex,scaley(from radians). kulma1=real angle
//kulma2=angle for dxdraw
scalex,scaley,radians,kulma2,kulma1:real;
kuva:tpicturecollectionitem;
vauhti:integer; //speed
procedure Drawme(surfac:TDirectDrawSurface);
procedure Move;
constructor Create(kuva1:tpicturecollectionitem;alkux,alkuy:integer;kulma:real);
end;
implementation
{ Sotilas }
constructor TSotilas.Create(kuva1: tpicturecollectionitem; alkux, alkuy: integer;kulma:real);
begin
kuva:=kuva1;
kulma1:=kulma;
x:=alkux;
y:=alkuy;
end;
procedure TSotilas.Drawme(surfac: TDirectDrawSurface);
begin
kuva.DrawRotate(surfac,x,y,24,24,0,0.5,0.5,round(-kulma2));
end;
procedure TSotilas.Move;
begin
Radians := -(kulma1) * PI / 180;
scalex:=cos(radians);
scaley:=sin(radians);
vx:=vauhti*scalex;
vy:=vauhti*scaley;
kulma2 := 256 / 360 * kulma1;
x:=x+round(vx);
y:=y+round(vy);
end;
end.