unit 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.