Denkfehler
Übersicht

![]() |
EntenfelsBetreff: Denkfehler |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allerseits!
Ich weiß einfach nicht, was ich falsch mache. Die Sache ist folgende: Ich habe den Spieler sowie zwei Häuser. Mit einem Haus stellt der Computer alles korrekt dar (Player wird richtig vor/hinter das Haus gemalt). Beim zweiten Haus funktioniert es jedoch nur noch mit dem neuen Haus, nicht mehr mit dem zuvor erstellten. Code: [AUSKLAPPEN] Graphics 1024,768,0,1
house=LoadImage("Pictures\building0.bmp") player=LoadImage("Pictures\Player.bmp") Global Ende Global PlayerX = 50 Global PlayerY = 50;Y-Koordinate DER UNTERKANTE des Bildes Global PlayerImageY Type building Field X Field Y ;Y-Koordinate DER UNTERKANTE! Field CollisionX ;Breite der Kollisionsfläche Field CollisionY ;Tiefe der Kollisionsfläche Field ImageY ;Hoehe des Bildes End Type house.building = New building house.building\X = 100 house.building\Y = 200 house.building = New building house.building\X = 500 house.building\Y = 300 For house.building = Each building house.building\CollisionX = 50 house.building\CollisionY = 50 house.building\ImageY = 100 Next swapped=True ;Gebaeude sortieren While swapped swapped=False VNew=True For house.building=Each building If XBefore>house.building\X And VNew=0 Then Insert house.building Before Before house.building VNew=0 swapped=True End If XBefore=house.building\X Next Wend Repeat If KeyDown(1) Then Ende=1 ;Steuerung mit Pfeiltasten PlayerDrawn=0 For house.building = Each building If PlayerY<house.building\Y Then DrawImage Player,PlayerX,PlayerY-PlayerImageY DrawImage house,house.building\X,house.building\Y-house.building\Imagey PlayerDrawn=1 Else DrawImage house,house.building\X,house.building\Y-house.building\Imagey End If If PlayerDrawn=0 Then DrawImage Player,PlayerX,PlayerY-PlayerImageY Next Flip Until Ende End Weiß jemand, was ich falsch mache? Danke schon im Voraus Entenfels |
||
Die Details sind zu 94 Prozent zutreffend, bei sechs Prozent unvermeidbarer Extrapolation.
-Artemis Fowl von Eoin Colfer |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das dürfte eigentlich überhaupt nicht funktionieren, weil du erst die Variable house einmal als Image benutzt und danach als Type. Müsste theoretisch einen "Variable mismatch" Fehler geben.
Der Fehler selbst liegt in deiner For Schleife. Du gehst jedes Haus durch und zeichnest für jedes Haus auch das Playerbild. Die Bilder überlagern sich dann natürlich, es wird z.B. erst das Playerbild gezeichnet, dann das Haus und dann das Playerbild noch einmal darüber. Somit kann immer nur das zuletzt erstellte Haus richtig dargestellt werden, da kein Durchgang mehr kommt, indem ein neues Playerbild gezeichnet wird. |
||
![]() |
Entenfels |
![]() Antworten mit Zitat ![]() |
---|---|---|
Thx.
Das mit "house" ist mir bei der Vereinfachung des Codes passiert ![]() |
||
Die Details sind zu 94 Prozent zutreffend, bei sechs Prozent unvermeidbarer Extrapolation.
-Artemis Fowl von Eoin Colfer |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group