erledigt - Type auf einmal Null :/
Übersicht

DüsiBetreff: erledigt - Type auf einmal Null :/ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin,
ich versuche grade einen Tile-Editor... Jetzt möchte ich ein Tile setzten, dazu habe ich folgende Funktion geschrieben: Code: [AUSKLAPPEN] Function SetTile()
;================================================================================================ ;--> Setzt ein Tile If Mousedown1 And MouseInMap And MouseOutGui And Collision = False Then ;--> Ist ein Tileset ausgewählt? If newTileset <> Null Then ;--> Untergrund? If Level = 0 Then Map(mtX, mtY)\Underground = newTileset Map(mtX, mtY)\UndergroundID = newTileID EndIf ;--> Objekt? If Level = 1 Then Map(mtX, mtY)\Object_ = newTileset Map(mtX, mtY)\ObjectID = newTileID EndIf EndIf EndIf End Function Hier klappt alles, newTileset ist nicht Null und die Variable Level ist 0. (newTileset ist der Type des aktuell ausgewählten Tilesets) Jetzt verwende ich diese Funktion zum malen der Map: Code: [AUSKLAPPEN] Function DrawMap()
;================================================================================================ ;--> Malt die Map ;--> Existiert eine Map? If MapX > 0 And MapY > 0 Then For X = 0 To MapX-1 For Y = 0 To MapY-1 ;--> Untergrund If Map(X, Y)\Underground <> Null Then DrawBlock Map(X, Y)\Underground\Img, X*32-ScrollX, Y*32-ScrollY, Map(X, Y)\UndergroundID EndIf ;--> Objekte If Map(X, Y)\Object_ <> Null Then DrawImage Map(X, Y)\Object_\Img, X*32-ScrollX, Y*32-ScrollY, Map(X, Y)\ObjectID EndIf ;--> Raster If Raster Then Color 255, 255, 255 Rect X*32-ScrollX, Y*32-ScrollY, 32, 32, 0 EndIf ;--> Feld ID If FieldID Then Color 0, 255, 0 Text X*32-ScrollX, Y*32-ScrollY, X+"/"+Y EndIf Next Next EndIf End Function Hier wird das Tile des Tilesets einfach nicht gemalt, Map(X, Y)\Underground zählt als Null, obwohl ich es beim setzten eines Tiles ja einem Type zugewiesen habe. :/ Woran liegt das? |
||
- Zuletzt bearbeitet von Düsi am Sa, Aug 23, 2008 14:06, insgesamt einmal bearbeitet
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
für eine tilemap verwende ich erne ein 2dimensionales array siehe dim![]() |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du wirst es nicht glauben, aber das tut er auch | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jupp, bevor man versucht zu helfen, sollte man sich zumindest die Mühe machen, den Problemcode durchzulesen.
@Topic: Im Code konnte ich jetzt keinen Fehler entdecken. Bist du dir sicher, dass zwischen den beiden Funktionen keine Werte verändert werden und dass mtX und mtY richtig berechnet werden? Hast du mit dem Debugger überprüft, ob Map\Underground wirklich Null ist oder siehst du einfach nichts? Bei letzterem könnte der Fehler natürlich auch woanders liegen. Ansonsten fällt mir grade nichts mehr ein. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
DonnerBlitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
? das tut er nicht ! | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn cih das richtig verstanden habe, wirst du die Werte aus "newTileset" kopieren müssen und nicht einfach eine Referenz dorthin legen. Weil wenn du jetzt irgendwo newTileset löscht, ist der Type in deiner Map auch gelöscht. (Die Map verweist ja nur darauf)
mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Macht hier eher begrenzt Sinn, da, wenn man in einem Mapeditor ein Tileset löscht, es auch nicht mehr irgendwo im Array existieren sollte, deswegen ist sein Ansatz schon richtig. | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, aber newTileset verweißt ja auf den Type des markierten Tileset, also verweißt dann ja im Endeffekt Map(xy, xy)\Underground auf den Type des Tilesets?! Oder hab ich da etwas falsch verstanden? :/
---- Arg, ich bin ja echt doof >.< Schon dumm, wenn man bei der Lösch funktion ebenfalls Mousedown(1) verwendet, danns etz ich das Tile ja und lösch es in der nächsten Funktion gleich wieder >.<. Ok, hab den Fehler. Drodztem danke für die Hilfe ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group