Kollision die Zweite...:-(
Übersicht

![]() |
5k41Betreff: Kollision die Zweite...:-( |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Tut mir leid das ich euch schonwieder mit diesem Thema nerven muss aber ich komm einfach nicht weiter... ![]() Code: [AUSKLAPPEN] dynview(p\x_versch) For ebenen=2 To 3 For x=((p\x_pos*(-1)+p\x_const)/64)-1 To ((p\x_pos*(-1)+p\x_const)/64)+1 For y=((p\y_pos*(-1)+p\y_const)/64)-1 To ((p\y_pos*(-1)+p\y_const)/64)+1 For kollisions_tiles=0 To tiles If p\zoom<2 Then ;Mit Sachen If feld(x,y,ebenen)=kollisions_tiles Then If ImagesCollide(tileset,(x*64+p\x_versch),y*64,kollisions_tiles,p\gfx,(p\x_pos*(-1)+p\x_const),(p\y_pos*(-1)+p\y_const),p\angle/2) Then p\x_pos=p\x_temp p\y_pos=p\y_temp p\angle=p\angle_temp EndIf EndIf ;mit nichts EndIf Next Next Next Next soo...zur erläuterung: p=forschleife die es für player1 und 2 durchläuft ebenen sind die ebenen die mit dem spieler auf einer ebene sind und somit kollidieren sollen...kollisions_tiles ist eine schleife die das für jeden frame des tilesets pfürt und die anderen schleifen sind zur berechnung was überhaupt geprüft werden muss...so mein problem ist jetzt für spieler 1 klappt das auch alles wunderbar und man kann 1A gegen wände laufen und alles ist gut (bei ihm ist x_versch=0) bei player 2 findet keine kollision statt und man kann solange durch die map laufen bis man einen fehler kommt weil man das array der map verlässt...(x_versch=512 da splittscreen game) nun hab ich in müsamer handarbeit herausgefunden das wenn man statt p\x_versch einen wert der <= 136 ist hinschreibt alles gut funktioniert (auch wenn natürlich nicht mit den wirklichen kisten aber man sieht eine kollision) doch sobald man auch nur 137 addiert ist es ganz kaputt und es funktioniert keine kollision mehr (jedoch kommt keine fehlermeldung...-.-) vielen dank für euere antworten schonmal im vorraus... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
uff schon 38 Leutz haben in meinen Thread geguckt und keiner hatte ne Idee?? MIST! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
es ist einfach zu anstrengend sich in diesen Code hineinzudenken und vielleicht liegt der Fehler gar nicht in diesem Teil des Codes. Meine allgemeine Tipps: Manchmal ist die Methode die man gewählt hat zwar ganz gut, aber doch zu komplex und fehleranfällig oder schwer zu debuggen. Dann lohnt es sich über eine grundsätzlich andere Lösung nachzudenken. Es ist oft nützlich, einen Code lieber länger (in mehreren Zeilen aufgeteilt, mit zusätzlichen Variablen als Zusammenfassung) zu schreiben anstat sie so kompakt und klein wie möglich zu halten. Das ist so, wie einen sehr langen Satz in einem Textz zu schreiben, der zwar in Ordnung ist, aber anstrengend zu verstehen ist. Wenn du den Satz in 3 kürzere Sätze unterteilst, wird es verständlicher. Als Anhaltspunkt zur Fehlerfindung würde ich die erwähnte Zahl 136(137) oder Player 2 nehmen. Da könnte man die Spur zum Bug aufnehmen. Das mit der Zahl hört sich für mich so an, als ob das vielleicht mit der Aufbau deines "Levels" zu tun hätte oder etwas geht mit Float und Integer oder Abrunden durcheinander. Ich hatte schon öfters Fehler, wo Float mit Integer Werten gemischt wurde. |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
DANKE erstmal für die antwort!
Ich glaub leider das der Fehler in diesem Codeteil liegen muss, da ich (wie ich glaub ich auch geschrieben hab) einfach 136/137 eingeben kann und es trozdem nicht funtzt... ich glaub aber deine Idee das es an Player2 liegt ist nicht schlecht...werd sofort den ganzen code nochmal durchkämmen... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
achja wie ist das eigentlich? wenn ich bei frame 0 hinschreib macht er dann nur den ersten frame oder alles? oder wie kann ich ihn ohne meine for-schleifen methode dazu bringen mit allem zu kollidieren?
~Edit~ Was ich grad bemerkt hab! Wenn ich da einfach 137 hinschreibe dann funktioniert die kollision auch nicht mehr für spieler eins!!! das macht das ganze dann ja nur noch merkwürdiger...das heißt es muss ja daran liegen! |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Werde das Spiel wahrscheinlich noch mal in 3D schreiben und hoffen das das Problem mit Collisions und EntityRadius nicht auftritt... danke trozdem für die hilfe... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group