Die gute alte Kollision...-.-*JUHU CLOSED!!!!!!!*
Übersicht

![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK ich werds dann noch ein letztes mal versuchen bevor ich neu anfang...nur der mist ist ja das es bei 2 rechnern geht bei 2 24 ° und bei einem 166° is (also der winkel bei dem er Memory Acsess Violation sacht)... das versteh ich einfach nicht! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ZorroZ.ch, warum sollte bei der Abfrage eine Zahl ausserhalb der Grenzwerte aufkommen. Habe ein Spiel bereits programmiert und bestimmt stundenlang damit rumgeflogen, und es ist kein einziges mal dieser Fehler aufgekommen. Der Grund für winkel=winkel+-360 ist folgender. Wenn man dem Winkel auch noch sowas wie eine Geschwindigkeit zuweist, dann würde ein hacken im Wendepunkt des Winkels auftretten. Beispiel: Ich beschleunige die Drehgeschwindigkeit permanent, dann könnte bereits eine Winkeländerung pro Schleifendurchlauf von sagen wir mal 4° haben. Bei einer konventionelen Abfrage Beispiel: 351°, 355°, 359°, 0°?!? oder doch lieber 3°? An dieser Stelle würde es dann immer wieder optisch hacken, daß wird damit vermieden. Ich sage ja nur, ich verstehe selbst das Problem von 5k41 nicht. @5k41, wenn du willst, kann ich dir den Code zuschicken. Ist aber ein uralter Code von mir (2002) der nicht grad besonders optimiert oder gar übersichtlich ist... | ||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für den Tipp ich werd alles nochmal umschreiben statt den code neu zu schreiben...geht auf jedenfall schneller und sowieso hab ich ja nix wirklich zu verlieren ![]() |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soo...also Leute nochmal von vorn...ich hab alles gemacht was ihr mir gesagt hab hab alles umgeschrieben und seit heute morgen 11 Uhr sitz ich dran...und nun wo ich mit allem fertig bin starte ich das programm und es kommt der gleiche fehler...ich bin echt vollkommen am ende und bruach jetzt echt eure hilfe...also zum fehler:
nochmal der winkel geht nich über 360° und nicht unter null... also ich starte das Spiel...ich kann mich bewegen alles ist gut auch meine kollision funktioniert...aber sobal ich gegen eine wand laufe (und so die kollision aktiviere) und mich genau auf 24 oder 336° drehe stürzt das Programm ab und sagt memory acces violation... das mit den gradzahlen weiss ich desshalb so genau weil ich eine etwas neuere version von BB besitze, welche einen eingebauten Debugger hat, und zwar einen welcher c.a. ein viertel deines bildschirms einnimmt (beim aufsführen aber im hintergund ist) und sobal ein fehler kommt kann man da alle variablen konstanten types usw nachgucken...und es sind IMMER diese Gradzahlen... der fehler liegt übrigends hier: (markert mir der Debugger an) Code: [AUSKLAPPEN] If ImagesCollide(tileset,x*64,y*64,kollisions_tiles,player1(p1\angle/2),(p1\x_pos*(-1)+p1xpos),(p1\y_pos*(-1)+ypos),0) Then und in dieser zeile da p1\angle/2 nun dacht ich is ja alles schön und gut und hab das Programm mit zu meinem Freund genommen und dort mein BB installiert...bei ihm ging es bei 24 und 336 ° einwandfrei und er hatte probleme bei 166 und 204° (man beachte ALLE zahlen lassen sich durch 2 teilen) nun waren wir wirklich verwirrt...wir dachten ok wir führen es auf seinem alten PC nochmal aus so haben wir eine ExE erstellt (weil wir keine lust hatten an dem andern PC auch noch BB zu installieren) und sie dort ausgeführt...NICHTS...mein code lief fehlerfrei! Klar das wir sofort dachen es liegt an der ExE wir führten die SELBE ExE (über Lan) auf dem andern rechner aus und wieder fehler bei 166 und 204° ich natürlich als ich abends nach hause gefahren bin alles wieder auf meinen Stick getan versuchte beide dateien bei mir Fehler bei 24 und 336°... ich weiss echt nicht wieso und was das soll...hat vielleicht irgendwer erfahrung mit sochen komischen problemen...achja hätt ich fast vergessen...kryan hier aus dem forum hat das spiel auch ausprobiert und sagte das es bei ihm fehlerfrei lief, was ich aber nicht beschwören kann weil ich nicht selbst so gegen die wand gelaufen bin um es zu sehen da er ja doch ein paar kilometerchen weg wohnt.... UFF hoffe das ihr mein Problem nun endlich versteht... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
fang nochmal komplett neu an ![]() |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
glaub mir es hat auch keinen sinn weil die kollisionsabfrage oder bessergesagt der teil mit dem winkel dann auch drinn bleiben würde...ich hab mir im moment echt schon genug arbeit gemacht dafür das ich wieder auf dem gleichen stand wie vorher bin... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich denke mal wenn du es so machst, kann nichts passieren:
Code: [AUSKLAPPEN] tempx=playerx
tempy=playery ....hier bewegst du deinen helden If ImagesCollide(player,playerx,playery,0,schwarzweiss,0,0,0) Then playerx=tempx playery=tempy End If allerdings musst du dann vor dem spiel das komplette level als schwarzweiß malen |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
da is doch garnicht das problem das problem is das die player gfx in nem dim feld gespeichert ist und wenn ich da in bestimmten werten (in verbindung mit der kollision) drauf zugreife dann spackt er rum und sacht memory acsess aber die werte bei denen er das macht sind von rechner zu rechner unterschiedlich und manchmal garnicht vorhanden wie bei dir... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo 5k41, wenn ich es richtig verstanden habe, würde ich sagen das schonmal ein Fehler im deinem letzten Codebeispiel vorliegt.Code: [AUSKLAPPEN] If ImagesCollide(tileset,x*64,y*64,kollisions_tiles,player1(p1\angle/2),(p1\x_pos*(-1)+p1xpos),(p1\y_pos*(-1)+ypos),0) Then
Eine Negation der Bewegungen (p1\x_pos*(-1)+p1xpos) sollte erst nach einer Kollision durchgeführt werden.
|
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das is keine Negation sondern eine IF abrage...das tileset liegt im plusbereich die x uznd y variablen im minus bereich weil sie die map nicht der spieler bewegt (siehe erster post) und damit ich eine Position bekomme mit der ich eine Kollision durchführen kann muss ich erstmal dir "wirkliche position" des spielers auf der map rasufinden, was ich mit dieser formel tue! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr werdets wahrscheinlich nicht glauben, aber ich habe mir grade auf geheiß von hectic die neue Version von BB runtergeladen...und man glaubts nicht der winkel ist nun nicht mehr 24 sondern 8 ° ich versteh das nicht! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nun ist es wieder auf 24° aber ich bin mir 100 pro sicher das es auf 8 war als ich es das letzte mal getestet hab...WAS IST HIER LOS?
~Edit~ Ich hab um nochmal ganz sicher zu gehen das ganze mal übers netzwerk auf dem rechner von meiner mutter gemacht...dort waren die problem-winkel 30 und 294°...ch versteh das einfach nicht wieso ist das bei jedem rechner anders? |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
JUHU!!!! ICH HAB ES GESCHAFFT!!!
Nach Stundenlangem überlegen mit hectic sind wir auf die Idee gekommen kein Array sondern eine createte animimage zu benutzen und TADA kein problem mehr!!!Danke an alle die mir geholfen haben VIELEN DANK! |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist das ein Thread oder ein Live-Blog? | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
das war ein thread! ich wollte nur noch eine kleine abschlussnachricht schreiben nun wo das problem geklärt ist... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatte den Smiley vergessen, deswegen las sich das vielleicht als Vorwurf -war aber ironisch gemeint -> ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
achso...na dann ist ok...^^ | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group