Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi zeichen problem beim scrollen (https://www.delphipraxis.net/13231-zeichen-problem-beim-scrollen.html)

mimi 14. Dez 2003 13:03


zeichen problem beim scrollen
 
Hallo,
habe da ein kleines problem:
Delphi-Quellcode:
var
  x,y,i,p,m:Integer;
begin
  GLXDraw.Clear;
//  sx:=0; sy:=0;

  if Player.Players[Player.index].x-Player.DX >= 0 then
    p:=(Player.Players[Player.index].x-Player.DX)
  else
    p:=0;


  for x:=0 to MapX do begin
    for y:=0 to MapY do begin

      if Karte[x,y].typ > -1 then begin
        for i:=0 to High(Karte[x,y].Tex) do begin
          if x-p >0 then
            m:=x-p
          else
            m:=p-x;
          if p > 0 then
            GLXImageList.Items[Karte[x,y].typ].Draw(m * MapS,Y*MapS,Karte[x,y].Tex[i] )
          else
            GLXImageList.Items[Karte[x,y].typ].Draw( X*MapS,Y*MapS,Karte[x,y].Tex[i] )

        end;
      end;

    end;
  end;
warum geht das nicht?
er zeichnet nicht richtig !!!

oki 15. Dez 2003 09:29

Re: zeichen problem beim scrollen
 
hi,

gib deinem VCL-Objekt zeit zum Ausführen deiner Draw-Anweisung in den Schleifendurchläufen. Entweder mit
Delphi-Quellcode:
Application.ProcessMesssages // nach Draw für Process-Zeit anstehender Botschaften
oder durch einen direkten Aufruf zum Zeichnen nach Draw mittels Invalidate oder Refresh.

Gruß oki

mimi 15. Dez 2003 16:22

Re: zeichen problem beim scrollen
 
Liste der Anhänge anzeigen (Anzahl: 1)
das problem ist:
er zeichnet ein strein und da ist überhaupt keiner.
ich habe mal die anwendung hochgalden
hier noch mal der "neue" code zum zeichnen:
Delphi-Quellcode:
procedure T2D_Engine.DrawMap;
var
  x,y,i,p,m:Integer;
begin
  GLXDraw.Clear;
//  sx:=0; sy:=0;

  if Player.Players[Player.index].x-Player.DX >= 0 then
    p:=(Player.Players[Player.index].x-Player.DX)
  else
    p:=0;


  for x:=0 to MapX do begin
    for y:=0 to MapY do begin

      if Karte[x,y].typ > -1 then begin
        for i:=0 to High(Karte[x,y].Tex) do begin
          if p > 0 then
            GLXImageList.Items[Karte[x,y].typ].Draw( (x-p) * MapS,Y*MapS,Karte[x,y].Tex[i] )
          else
            GLXImageList.Items[Karte[x,y].typ].Draw( X*MapS,Y*MapS,Karte[x,y].Tex[i] )

        end;
      end;

    end;
  end;

{  for i:=0 to High(Player.Players) do begin
    if i = Player.index then
      GLXImageList.Items[2].Draw((Player.Players[Player.index].X+39 div 2)*MapS, (Player.Players[player.index].Y+21 div 2)*mapS,Player.Players[player.index].Tex )
    else
      GLXImageList.Items[2].Draw( Player.players[i].X*MapS,Player.players[i].Y*MapS,Player.players[i].tex );
  end;}

  for i:=0 to High(Player.Players) do begin
    if Player.Players[Player.index].x - Player.DX > 0 then
      GLXImageList.Items[2].Draw(( Player.Players[Player.index].x-Player.DX )*MapS ,Player.players[Player.index].Y*MapS,Player.players[i].tex )
    else
      GLXImageList.Items[2].Draw(Player.Players[Player.index].x*MapS ,Player.players[Player.index].Y*MapS,Player.players[i].tex );
  end;
  GLXDraw.Flip;
end;

mimi 18. Dez 2003 10:31

Re: zeichen problem beim scrollen
 
problem gelöst !!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz