AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DXDraw und die koordinaten.
Thema durchsuchen
Ansicht
Themen-Optionen

DXDraw und die koordinaten.

Ein Thema von chrys · begonnen am 21. Jan 2003 · letzter Beitrag vom 29. Jan 2003
 
chrys

Registriert seit: 21. Jan 2003
Ort: Italien
34 Beiträge
 
Delphi 6 Personal
 
#1

DXDraw und die koordinaten.

  Alt 21. Jan 2003, 21:45
hallo
ich arbeite an nem isometrischen tiles engine.
Bis jetzt leuft alles ganz super aber ich bekomme es einfach nciht hin das ich per mausClick die korekten koordinaten bekomme ... deshalb ist bei mir das gefuehl hochgekommen das ich da irgendwas falsch mache oder mir das falsch vorstelle ... hier ein wenig code ..

Code:
procedure TForm5.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
  if not DXDraw.CanDraw then exit;
  DXInput1.Update;
  if not DXDraw.CanDraw then exit;

  if isLeft in DXInput1.States then begin
     if ( startx > 2550) then begin
     startx:=2550;
     GlobalX:=GlobalX+scrollspeed;
     end
      else begin
     inc( startx, scrollspeed );
     GlobalX:=GlobalX-scrollspeed;
     end;
     end;
  if isRight in DXInput1.States then begin
     if ( startx < -3140 ) then begin
     startx:=-3140;
     GlobalX:=GlobalX-scrollspeed;
     end
     else begin
     dec( startx, scrollspeed );
    GlobalX:=GlobalX+scrollspeed;
     end;
     end;
  if isUp in DXInput1.States then begin
    if ( starty > 50) then begin
     starty:=50;
     GlobalY:=GlobalY-scrollspeed;
     end
     else begin
        inc( starty, scrollspeed );
        GlobalY:=GlobalY+scrollspeed;
     end;
     end;
  if isDown in DXInput1.States then begin
     if ( starty < -3000) then begin
        starty:=-3000;
        GlobalY:=GlobalY+scrollspeed;
     end
      else begin
     dec( starty, scrollspeed );
     GlobalY:=GlobalY-scrollspeed;
     end;
     end;
somit kann ich den bildschirm bewegen und die mappe scrollen
globalx und gloably waren die variablen in meinem versuch.Sie sollten festhalten wieviel ich gescrollt bin.

Code:
procedure TForm5.DXDrawMouseDown(Sender:TObject;Button : TMouseButton;Shift:TShiftState;X,Y:Integer);
var XClick,YClick:integer;
    xlogic,ylogic:integer;
begin
if(button = mbLeft)then begin
 if(unitsnotselected)then begin
    XClick:=X;
    YClick:=Y;
    end;
  end;
end;
mit der DXMouseDown .... will ich ganz einfach jetzt wissen auf welche koordinate ich geklickt habe ... das problem ist ja es waere keine grosse sache wenn das bild nicht scrollbar waere .
in xclick,yclick halte ich die koordinaten fest wo ich geklickt habe ...diese ist aber relativ zu der DXDraw oberflaechte also nicht zu der logischen koordinate.
ich dachte mir deshalb ich mache eine logische koordinate xlogic,ylogic
wobei :
xlogic:=X+globalx;
ylogic:=-Y+globaly: //habe hier -Y weil die koordiante negativ ist
//jeh weiter ich runter scrolle ... das weis ich weil wenn ich die
//tiles von hand ausrechne wo sie stehen kommen mit meiner metode
//negative nummern raus!


Wenn jemand einen tipp hat wie ich das loesen koennte waere ich dankbar.
  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 12:08 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