Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

DelphiX - Objekte drehen(Autos)

  Alt 4. Sep 2004, 17:53
[/delphi]Hallo,
ich möchte ein kleines auto spiel schreiben und habe probleme mit dem drehn des autos:
Delphi-Quellcode:
procedure TGame.KeyCheck(Key:Word);
begin
  if Key = VK_RIGHT then begin
    if Player.zr + 10 <= Lings then
      Player.zr:=Player.zr+10;

// Player.x:=Player.x-10;
  end;

  if Key = VK_Left then begin

    if Player.zr - 10 >= -Rechts then
      Player.zr:=Player.zr-10;

// Player.x:=Player.x-10;
  end;

  if Key = VK_UP then begin
    Player.x:=Player.x+10;
  end;

  if Key = VK_Down then begin
    Player.x:=Player.x-10;
  end;

  if key = vk_f1 then stop:=not stop;
  
end;
Const:
Delphi-Quellcode:
const
  lings = 60;
  rechts = 60;
  oben = 257;
  Unten = 130;
ich habe mir eine kleine grafik lib geschrieben dort habe ich den befehl DrawRoate verwendet:
Delphi-Quellcode:
procedure TDX.DrawRoateImage(Name:String; x,y,a,pi:Integer; cx,cy:Double);
var
  i:Integer;
begin
  i:=DXImageList1.Items.Find(Name).Index;
  DXImageList1.Items[i].DrawRotate(DXDraw1.Surface,x,y,DXImageList1.Items[i].Width,DXImageList1.Items[i].Height,pi,cx,cy,a);
end;
aufrufen tue ich den so:
Delphi-Quellcode:
procedure TGame.Draw;
var
  i:Integer;
begin
  for i:=0 to high(Map) do begin
   GFL.DrawImage(Map[i].Name,Map[i].Tex,Map[i].x,Map[i].y);
  end;

// GFL.DrawImage('A' + IntToStr(Player.typ) + IntToStr(Player.richtung),0,player.x,Player.y);
  {if stop = False then begin
    if PLayer.zr1 >= 5 then begin
      Player.zr1:=0;
      if player.zr <= 360 then begin
        inc(player.zr);
      end
      else
        player.zr:=player.richtung;
    end
    else
      inc(player.zr1);
  end;}


  GFL.DrawText(IntToStr(PLayer.zr),300,400,16,clYellow,clRed);
  GFL.DrawRoateImage('A' + IntToStr(Player.typ),player.x,player.y,player.zr,0,1,0);
    
end;
der auskometrite teile war nur ein test(und ich weiß nicht ob ich den nochmal später brauche) der dreht einfach nur ein objekt immer und dies langsamm !!


das problem ist jetzt das der dreh winkel zu groß ist und ich würde auch noch gerne die geschwindigkeit einstellen können, wie mache ich dies genau ???
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat