Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› Mitdenker-Runde für Kartenskripts ww

Autor Mitteilung
verfasst am: 27.06.2010, 11:47
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Ich brauch mal ein paar mehr Meinungen, ich glaub ich hab hier irgendwo einen Denkfehler:
Mein Kartenskript füllt erstmal jeden Raum mit dem Pseudoraum "Placeholder", dann erzeugt mir eine Funktion meine "unschöne" Straße (Sprich nur Asphalt Bodentile).
Jetzt soll das ganze natürlich eine schöne Straße werden und ich hab für jede Kurve und Gerade einen eigenen Raum und Funktion angelegt, die so aussieht:
//Check the South-East curve
function IsSECurve(x : LongInt; y : LongInt) : boolean;
var
  y1, x1 : LongInt;
begin
  result := false;
  dec(y1);
  if (y1 < 0) then y1 := y;
  dec(x1);
  if (x1 < 0) then x1 := x;
  if ((GetRoomAtPos(x, y1) <> 'PlaceHolder') and
      (GetRoomAtPos(x1, y) <> 'PlaceHolder')) then result := true;
end;

Die Randteile (also wenn x1 und y1 < 0 werden) sind sowieso fraglich, aber der Grundgedanke ist folgender:
Bisher sind auf der Karte nur die Räume "Placeholder" und "Street" vertreten, das heißt wenn die angrenzenden Räume (im Sinne des Straßenverlaufs, bei einer Kurve ist es der Raum darüber oder darunter und links oder rechts davon) nicht "Placeholder" sind, dann hab ich meinen Straßenpunkt gefunden.
Leider ist das Resultat nicht so schön und ich hab meistens denn Raum, den ich als letzter auf die Form abfrage.
Irgendwo hier muss ein Denkfehler von mir sein, sieht ihn vieleicht jemand?
verfasst am: 27.06.2010, 12:35
Registrierdatum: 16.07.2007, 16:03

 Beiträge: 86
okay..
du legst 2 lokale Variablen y1 und x1 an
diese dekrementierst du dann ohne ihnen vorher einen startwert zuzuweisen... (meistens ist dann der wert 0, aber es kann auch irgendein zufälliger wert sein)
ich vermute mal statt dem "dec(y1)" gehört "Y1 := y - 1", wenn ich diene Absicht richtig verstanden habe.. (und dasselbe für das x1)
verfasst am: 27.06.2010, 15:51
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Wie kann man nur so blöd sein, wie um alles in der Welt konnte ich das übersehen?! <Es folgen einige Flüche, die ich nicht näher ausführen will>

Das ganze schaut jetzt schon sehr viel besser aus, danke danke.
verfasst am: 28.06.2010, 00:12
Grafiker

Registrierdatum: 24.11.2006, 14:22

 Beiträge: 568
Zitat: Kreks
Das ganze schaut jetzt schon sehr viel besser aus, danke danke.

Funktioniert es denn richtig?

Zitat: Dragonblade
(meistens ist dann der wert 0, aber es kann auch irgendein zufälliger wert sein)

Genau! Es gibt Programiersprachen, die zum Beispiel Variabeln vom Typ 'integer' gleich null setzen wenn ihnen bei der Deklarierung kein Wert zugewiesen wird. Allein durch lesen dieses Posts vermute ich das Pascal nicht dazu gehört ^^
verfasst am: 28.06.2010, 14:04
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Doch, sollte bei Pascal schon so sein. Ein paar Testläufe im MEdit bestätigen das.
verfasst am: 28.06.2010, 14:28
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
ist auch so - der Fehler kam ja anscheinend dadurch das x1 und y1 eben nicht null als Startwert haben sollten, sondern abhängig von y und x gesetzt werden sollten.



Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.009 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003