Entwickler-Ecke

Multimedia / Grafik - Bug beim scrollen


Elayla - Do 26.06.03 20:37
Titel: Bug beim scrollen
Huhu ich bins nochmal, ich bin mit meinem kleinen Programm jetzt soweit das ich ne karte erzeuge, die problemlos scrollen kann, auch Gebäude können gebaut werden und diese scrollen auch mit.
ABER:
Wenn ich am Rand der Karte angelangt bin scrollen die Häuser immer um ein Feld weiter :?
Hier mal ein Ausschnitt aus der Scrollprozedur:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.oben;
begin
  detaily := detaily - scrollspeed;
  if detaily < 1 then
    begin
      detaily := 40;
      dec(standy);
      if standy < 1 then begin
         standy := 1;
         detaily := 0;
       end;
    end;
  IF standy > 1 Then
  Begin
    IF complete_Haus1 = true THEN completeY_Haus1:=completeY_Haus1+2;
    IF complete_Haus2 = true THEN completeY_Haus2:=completeY_Haus2+2;
  End;
end;

Habt ihr ne Idee was ich da verändern könnte / muss?

Variablenerklärung:

detaily : Erzeugt das Stufenlose scrollen
standy : 1 Feld aus der Karte (Array)
complete_Haus2 : Kontrollvariable ob Gebäude gebaut
completeY_Haus2 : y-Koordinate des Hauses


umpani - Do 26.06.03 21:11

Wie ich sehe, benutzt du noch immer mein Grundgerüst. :D

Wenn du einen link zu deinem kompletten Quelltext gibst, dann schaue ich ihn mir mal an.

Gruß Umpani


Elayla - Do 26.06.03 21:22

Oki hier der Link: http://www.pro3d.de/gonozal/Mapcreate.zip

Dein Grundgerüst ist ja auch gut ^^

(Und nicht wieder meckern, das ist nur ein Testprogramm und soll keinen Schönheitswettbewerb gewinnen (Quelltextmäßig) :twisted: )


umpani - Do 26.06.03 22:07

So, habe den Quelltext korrigiert.

Hier am beispiel "nach oben"

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.oben;
begin
 IF not ((standy = 1and  (detaily = 0)) Then
  Begin
    IF complete_Haus1 = true THEN completeY_Haus1:=completeY_Haus1+scrollspeed;
    IF complete_Haus2 = true THEN completeY_Haus2:=completeY_Haus2+scrollspeed;
  End;
  detaily := detaily - scrollspeed;
  if detaily < 1 then
    begin
      detaily := 40;
      dec(standy);
      if standy < 1 then begin
         standy := 1;
         detaily := 0;
       end;

    end;


end;


Gruß Umpani

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


Elayla - Do 26.06.03 22:50

Ui vielen dank, funktioniert mal wieder perfekt :)