Kollision wackelt?
Übersicht

Nichts95Betreff: Kollision wackelt? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, irgendwie habe ich das Problem das bei einer Kollision in meinem Spiel der ganze Bildschirm wackelt! Hier die Funktion:
Code: [AUSKLAPPEN] Function kollision() If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then Print "hallo" EndIf End Function Ich vermute mal dass das mit meiner "Levelform" zutun hat, deshalb hier das Bild der "Levelform": ![]() Ich hab hier im Forum auch irgendwie was gelesen das wenn man "schief" geht man die Kollision verhindern kann - vielleicht ist das auf Grund der Levelform so? Zudem kann man bei mir im ganzen Spiel schief gehen! (Das ist natülich gewollt...) |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entweder du hast den Backbuffer nicht gesetzt, oder.... KP^^
Mach mal das "Print" raus! "Print" ist naja... nicht sehr toll. Ersetz das lieber durch "Text". Dann gehts sicherlich... Wenn man in 3D "Print" verwendet, dann kann das Spiel schonmal ganz schön ruckeln... An der Levelform liegt es nicht! ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Nichts95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Tankbuster: Das mit dem Print war nur versuchsweise da das Spiel das erste war, dass eine Kollisionsabfrage enthielt^^
Jetzt habe ich bloß ein neues Problem - irgendwie funktioniert die Kollisionsabfrage nicht... Hier die zwei Funktionen die eigentlich dafür zuständig sind: Code: [AUSKLAPPEN] Function kollision() If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then kollidiert = ja Else kolliediert = nein EndIf End Function Function steuerung() If kolliediert = nein Then ;oben If KeyDown(200) Then ypos = ypos - geschwindigkeit EndIf ;unten If KeyDown(208) Then ypos = ypos + geschwindigkeit EndIf ;rechts If KeyDown(205) Then xpos = xpos + geschwindigkeit EndIf ;links If KeyDown(203) Then xpos = xpos - geschwindigkeit EndIf EndIf End Function |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du die Variablen auch alle Global gemacht ?? | ||
Twitter
Download Jewel Snake! Windows|Android |
Nichts95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja... | ||
ETsoftware |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuchs mal so:
Code: [AUSKLAPPEN] Function kollision()
If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then kollidiert$ = "ja" Else kollidiert$ = "nein" EndIf End Function Function Steuerung() If kollidiert="nein" Then ... Also das ganze als Zeichenkette und die Variablennamen beide gleich. Ich würde es jedoch mit Zahlen machen, wenn es kollidiert dann kollidiert=1 sonst kollidiert=0. Edit:Sonst meint das Programm, dass ja und nein Variablen sind und weil ihnen keine Werte zugewiesen wurden, haben beiden den Wert 0 Hoffe ich konnte helfen! |
||
ETsoftware 2007 |
Nichts95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmmm... Keine Fehlermeldung, aber auch keine Anerkennung dass die Spielfigur kolliediert und dann auf Tastendrücke nicht reagiert... ![]() |
||
ETsoftware |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Probier's mal so:
Code: [AUSKLAPPEN] Global geschwindigkeit=10 ;Wichtig dass diese Variable einen Wert hat
Global ypos Global xpos Global spieler=LoadImage("spieler.jpg") Global level1=LoadImage("level1.jpg") Repeat Cls If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then ;Direkt in Hauptschleife abfragen steuerung kollision="JA" EndIf Text 10,10,"Kollision="+kollision Text 10,25,"XPos="+xpos Text 10,40,"YPos="+ypos DrawImage spieler,xpos,ypos DrawImage level1,0,0 Flip kollision="NEIN" Until KeyHit(1) Function steuerung() ;Hier habe ich die Abfrage gelöscht ;oben If KeyDown(200) Then ypos = ypos - geschwindigkeit EndIf ;unten If KeyDown(208) Then ypos = ypos + geschwindigkeit EndIf ;rechts If KeyDown(205) Then xpos = xpos + geschwindigkeit EndIf ;links If KeyDown(203) Then xpos = xpos - geschwindigkeit EndIf End Function Wichtige Stellen habe ich kommentiert! Mfg ETsoftware Edit: Vielleicht solltest du das Programm mal mit Debugger laufen lassen, um zu sehen welche Werte die Variablen haben! |
||
ETsoftware 2007 |
Nichts95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Irgendwie klappt das nicht ![]() Code: [AUSKLAPPEN] Function kollision() If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then ;Direkt in Hauptschleife abfragen kollidiert="level" EndIf DrawImage spieler,xpos,ypos Flip kollidiert="NEIN" ;------------Was passiert wenn kollidiert? If kollidiert = "level" Then xpos = xpos - 3 ypos = ypos - 3 SetBuffer BackBuffer() DrawImage spieler,xpos,ypos Flip EndIf End Function Habe es etwas verändert dass die Spielfigur anhält, doch das klappt ja nicht^^ |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: If ImagesCollide(spieler, xpos,ypos,0, level1,0,0,0) Then ;Direkt in Hauptschleife abfragen
kollidiert="level" EndIf DrawImage spieler,xpos,ypos Flip kollidiert="NEIN" ;------------Was passiert wenn kollidiert? If kollidiert = "level" Then kollidiert wird nie "level" sein, denn es wird immer wieder zu NEIN! |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group