AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX - Objekte drehen(Autos)
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX - Objekte drehen(Autos)

Ein Thema von mimi · begonnen am 4. Sep 2004 · letzter Beitrag vom 11. Sep 2004
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz