Probleme mit Type einträge zu ändern? [Gelöst]
Übersicht

bruce85Betreff: Probleme mit Type einträge zu ändern? [Gelöst] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe mit Types Merk Felder erstellt für meine Karte und wird auch alles gut angezeigt, jetzt möchte ich einen eintrag gerne ändern, das funktioniert irgendwie nicht. Hier die Type Felder: Code: [AUSKLAPPEN] Type MerkFelder
Field merk_x:Float Field merk_y:Float Field feld_x:Float Field feld_y:Float Field fallen:Int Field jump:Float Field speed:Float Field richtung:Int Field loeschen:Int Field merk_frames:Int Field alphawert:Float=1.0 Global List:TList = New TList End Type Global Info:MerkFelder und hier möchte ich gerne von die Felder den Wert ändern: Code: [AUSKLAPPEN] For Info:MerkFelder = EachIn MerkFelder.List
If Info.fallen = 0 Then If Not map[Info.feld_x+1,Info.feld_y] = Info.merk_frames Then If Not map[Info.feld_x,Info.feld_y+1] = Info.merk_frames Then If Not map[Info.feld_x-1,Info.feld_y] = Info.merk_frames Then If Not map[Info.feld_x,Info.feld_y-1] = Info.merk_frames Then Info.fallen = 1 Info.jump = Rnd(2,6) Info.richtung = Rnd(1,2) Info.Speed = Rnd(1,3) EndIf EndIf EndIf EndIf EndIf If Info.merk_y >= 800 Then ListRemove MerkFelder.List, Info Next und hier ist die Schleife, in dem alles gezeichnen wird: Code: [AUSKLAPPEN] For Info:MerkFelder = EachIn MerkFelder.List
If Info.fallen = 0 Then 'Color 0,0,128 'Oval M\merk_x,M\merk_y,20,20,1 'DrawImage kugel_feld_png,Info.merk_x,Info.merk_y,Info.merk_frames EndIf If Info.fallen = 1 Then If Info.alphawert > 0 Then Info.alphawert :- .010 SetAlpha(Info.alphawert) DrawImage kugel_feld_png,Info.merk_x,Info.merk_y,Info.merk_frames Info.jump = Info.jump -0.20 Info.merk_y = Info.merk_y - Info.jump If Info.richtung = 1 Then Info.merk_x = Info.merk_x - Info.speed EndIf If Info.richtung = 2 Then Info.merk_x = Info.merk_x + Info.speed EndIf EndIf Next Der 2te Code abschnitt ist bei mir in einer Function drin, diese habe ich beim Posten entfernt, weil ich nur das wichtigste posten wollte und das 3te Codestück in der Hauptschleife meines Spiels. Jetzt zu meinem Problem: Bei dem 2ten Code abschnitt funktioniert der Wert änderung nicht, Info.fallen ist immer auf 0 obwohl es auf 1 geändert werden sollte. Muss ich vieleicht die Liste in denen die Type einträge verlinkt sind, aktualisieren? Ich bedanke mich schonmal im Voraus. MfG |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
- Zuletzt bearbeitet von bruce85 am Fr, Jul 04, 2008 23:05, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du schon mal überprüft, ob alle deine If not Abfragen überhaupt zutreffen? Womöglich hat sich vorher ein Denkfehler eingeschlichen. Mit DebugStop oder simpler Print("Code wird ausgeführt") würde ich versuchen was rauszufinden.
Aktuallisieren musst man die Typeliste gewiss nicht. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achso, das stimmt, ich dachte wohl das es was damit zu tun hatte mit dem aktualisieren.
Und nein, die If abfragen treffen nicht zu, ich habe mein Spiel erst in BlitzBasic geschrieben gehabt und habe den Code dann für BlitzMax umgeschrieben, bei BlitzBasic funktionierte es einwandfrei, vll habe ich noch was vergessen gehabt in BlitzMax. Ich werde mal den Code nochmal stück für stück durchgehen, es kann sein das es ein kleiner denkfehler von mir ist. Edit: Ich habe es anders gelöst und zwar, habe ich bei den If abfragen noch ElseIf angefügt und lasse die werte dann bei Else übergeben. Code: [AUSKLAPPEN] For Info:MerkFelder = EachIn MerkFelder.List
If Info.fallen = 0 Then If map[Info.feld_x+1,Info.feld_y] = Info.merk_frames Then 'Inhalt entfernt... ElseIf map[Info.feld_x,Info.feld_y+1] = Info.merk_frames Then 'Inhalt entfernt... ElseIf map[Info.feld_x-1,Info.feld_y] = Info.merk_frames Then 'Inhalt entfernt... ElseIf map[Info.feld_x,Info.feld_y-1] = Info.merk_frames Then 'Inhalt entfernt... Else Info.fallen = 1 Info.jump = Rand(2,6) Info.richtung = Rand(1,2) Info.Speed = Rand(1,3) EndIf EndIf If Info.merk_y >= 800 Then ListRemove MerkFelder.List, Info Next Funktioniert bestens. Und vielen Dank für deine antwort. MfG |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group