Probleme beim berechnen der Spiefigur?
Übersicht

bruce85Betreff: Probleme beim berechnen der Spiefigur? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich hab da ein kleines problem, ich habe folgender Code geschrieben wenn z.B. Spieler1 auf den Spieler2 spring, dann soll das hier ausgeführt werden: Code: [AUSKLAPPEN] If Spielfeld((spieler_x+16)/32,(spieler_y+32)/32) = Spielfeld((spieler2_x+16)/32,(spieler2_y)/32) Then
Spiel = 0 EndIf das funktioniert aber nicht, der Code wird sofort bei Spielstart ausgeführt und ich erhalte auch gleich die Meldung "Array index out of bounds" Edit: Also das soll nur ausgeführt werden wenn der spieler auf den spieler2 sein Kopf springt, also von oben nach unten. Wisst ihr vieleicht was ich da falsch gemacht habe? Vielen Dank schonmal. MFG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
coldie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du das Array "Spielfeld" auch mit mindestens
Code: [AUSKLAPPEN] Dim Spielfeld(32,32)
dimensioniert? bzw. spieler_x+32 muss halt kleiner sein als die Dimensionierung des Arrays. |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ne das ist richtig so, spieler_x+32 ist also 32 pixel von links nach rechts vom spieler, also die berechnung.
ich muss nurnoch überprüfen wann der spieler auf den anderen drauf springt ![]() Edit: ich habe solche grosse map erstellt: Dim Spielfeld(199,29) |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
coldie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wenn du den code den du oben gepostet hast entfernt funktioniert es? | ||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, es funktioniert sehr gut wenn das entfernt ist.
Ich möchte einfach nur die berechnung machen wenn man beim anderen player drauf springt ![]() |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
coldie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Manchmal gibt es auch probleme mit dem teilen bei Integervariablen.
Hast du eigentlich nicht die Möglichkeit das mit Code: [AUSKLAPPEN] If spieler_x=spieler2_x And spieler_y=spieler2_y...
abzufragen? Oder muss die If Abfrage unbedingt mit dem Array sein? Ansonsten kann es eigentlich fast nur sein (wie die Fehlermeldung auch sagt), dass die Arraygröße bei der Abfrage überschritten wird. Ich würde das mal so überprüfen: Code: [AUSKLAPPEN] Text 0,0,"Wert Spieler X: "+(spieler_x+16)/32+" Wert Spieler Y: "+(spieler_y+32)/32 Text 0,10,"Wert Spieler2 X: "+(spieler2_x+16)/32+" Wert Spieler2 Y: "+(spieler2_y+32)/32 |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, des muss berechnet werden.
So geht das ja nicht, wenn ich z.B. dann neben den spieler2 dran stoße, dann soll das ja nich ausgefhührt werden, sondern nur wenn ich auf dem kopf drauf springe. sonst wird es ja immer ausgeführt sobald die sich berühren. MFG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab es so gelöst:
Code: [AUSKLAPPEN] If ImagesCollide(spieler,spieler_x,spieler_y+32,spieler_frames,spieler2,spieler2_x,spieler2_y,spieler2_frames) Then
Spiel=0 EndIf Danke trotzdem für die Antwort. Gruss Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group