Seite 1 von 2
Isometrische Karten : Problem bei Erstellung
Verfasst: 08.10.2006 23:34
von coMstructor
Habe diesen code in der Repeat-Schleife , aber dabei geht bei kompilieren absolut garnix an . es sollte aber 5x5 isometrische kästen zeichnen

wenn ich nur eine zeile zeichnen will , dann funktioniert das , kann mir da einer helfen?
Code: Alles auswählen
For z1=0 To 5
y = standard_y
x = standard_x
For z2=0 To 5
DisplaySprite3D(0,x,y)
x+62
y-31
Next
standard_x+62
standard_y+31
Next
Verfasst: 08.10.2006 23:38
von Frogger
Hast du auch Start3D() und Stop3D() auserhalb der Schleife eingesetzt?
Siehe Hilfe!
Verfasst: 08.10.2006 23:41
von coMstructor
ja hab ich , ich hab doch gesagt wenn ich nur eine zeile zeichnen will geht das

Verfasst: 08.10.2006 23:47
von Frogger
Poste mal den Rest des Codes.
Verfasst: 08.10.2006 23:52
von Hellhound66
Probiers mal mit Standard_x-62.
Verfasst: 08.10.2006 23:56
von coMstructor
was soll das denn bringen mit x-62????
hier der ganze code:
Code: Alles auswählen
standard_y=300
standard_x=3
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(1024, 768, 16, "Sprite")
LoadSprite(0, "0001.bmp", #PB_Sprite_Texture)
;For bild = 0 To 100
CreateSprite3D(0, 0)
CreateSprite3D(1, 0)
CreateSprite3D(2, 0)
;Next
TransparentSpriteColor(0, 0, 0, 0)
Repeat
FlipBuffers()
ClearScreen(255,255,255)
If Start3D()
For z1=0 To 5
y = standard_y
x = standard_x
For z2=0 To 5
DisplaySprite3D(0,x,y)
x+62
y-31
Next
standard_x+62
standard_y+31
Next
Stop3D()
EndIf
ExamineKeyboard()
Until x > 500 Or KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf
End
Verfasst: 09.10.2006 00:04
von Hellhound66
Ich dachte halt, du fängst oben an (ISO-technisch gesehen links oben),
dann zeichnest du eine Reihe. dazu musst du X und Y folgendermaßen ändern:
Für die nächste Zeile, die darunterliegt musst du die Anfangswerte folgendermaßen anpassen:
Lass es wirken, setz es um, und du wirst sehen, dass es klappen wird.
Verfasst: 09.10.2006 00:06
von coMstructor
kannst du das bitte in die for schleifen packen sonst hab ich gleich wieder das gleiche prob wie vorhin ^^

Verfasst: 09.10.2006 00:22
von Kaeru Gaman
mit deinen wilden +/- bist du da aber auch ziemlich aufgeschmissen.
errechne die koordinaten direkt aus den schleifenvariablen.
Code: Alles auswählen
ZX = 400
ZY = 100
For YR = 0 To 5
For XR = 0 To 5
TX = ZX + 64 * XR - 64 * YR
TY = ZY + 32 * XR + 32 * YR
Debug "Row: "+Str(XR)+" ; Line: "+Str(YR)+" ; x: "+Str(TX)+" ; y: "+Str(TY)
Next
Next
Verfasst: 09.10.2006 10:13
von coMstructor
stark danke

würde mich aber trotzdem interessieren warum mein code nicht geklappt hat
