ein seltsamer bug, x koordinate viel zu riesig
Übersicht

BobbleboyBetreff: ein seltsamer bug, x koordinate viel zu riesig |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wieso reißt die x koordinate ab und an so hoch?
sie ist markiert... hier ist die ganze funktion zu sehen, in der ein gegner sich bewegt. damit er diagonal nicht schneller läuft als horizontal, spalte ich seine geschwindigkeit in x und y auf. beim addieren / multiplizieren buggt er sich und fetzt ihn astronomisch aus der karte, was bei einer tilemap karte von dim 100,100 zum absturz führt. hier mit lasse ich den debugger stoppen: (teilweise im code zu sehen) BlitzBasic: [AUSKLAPPEN] If g\x<0 Or g\x> 3199 Or g\y<0 Or g\y> 3199 Or g\zielx<0 Or g\zielx> 3199 Or g\ziely<0 Or g\ziely> 3199 Then Stop ;der Test ob sie aus der karte fetzen link: http://img194.imageshack.us/img194/6481/bugwm.jpg ![]() nochmal der relevante code als code: BlitzBasic: [AUSKLAPPEN] Function movegegner(g.gegner,a.player,s.stinkeknoten) dt ist zur bug zeit immer 0 ! was einfach bedeuten würde, das g\x nicht größer werden dürfte ![]() BlitzBasic: [AUSKLAPPEN]
|
||
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
niemand da der mir helfen kann?
gehört das noch zu beginner? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne Vollständigen Code kann vermutlich niemand nachvollziehen, wo ein Fehler entsteht...
Benutze Debuglog um alle wichtigen Variablen vor dem Fehlerpunkt mit zu schreiben. |
||
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) |
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mehr code?
ist das ein witz? kompletter debug screenshot und du willst noch mehr? alles relevante ist hier im thread. |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If (g\zielx-g\x)^2+(g\ziely-g\y)^2>25
xspeed#=g\speed# * Cos(g\wziel) yspeed#=g\speed# * Sin(g\wziel) g\x = g\x + calc_speed(xspeed) ;GENAU HIER SPRINGT ER WAHNSINNIG HOCH g\y = g\y + calc_speed(yspeed) End If -> Code: [AUSKLAPPEN] If (g\zielx-g\x)^2+(g\ziely-g\y)^2>25
xspeed#=g\speed# * Cos(g\wziel) yspeed#=g\speed# * Sin(g\wziel) g\x = g\x + calc_speed(xspeed) ;GENAU HIER SPRINGT ER WAHNSINNIG HOCH Debuglog "x: "+g\x+" xs:"+xspeed+" s:"+g\speed g\y = g\y + calc_speed(yspeed) End If und dann guck dir mal die zahlen bei debuglog an vllt fällt dir irgendein muster auf |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bobbleboy, darf ich dich bitten, in Zukunft mehr Geduld an den Tag zu legen? Schon nach knapp zwei Stunden den eigenen Thread wieder zu pushen, ist ziemlich hart an der Grenze...
Ich erinnere dich, dass hier alles auf freiwilliger Basis abläuft - niemand ist gezwungen, dir zu helfen. Vielleicht geht's den meisten einfach so wie mir: Ich hab mir deinen Code und den Screenshot nun ziemlich lange und genau angeschaut und es gelingt mir nicht, dabei auf die Ursache deines Problems zu schliessen ![]() Wahrscheinlich geht das vielen anderen auch so (auch Silver_Knee konnte dir lediglich Unterstützung bieten, wie DU den Fehler ausmachen kannst (denselben Rat gab dir Xeres übrigens auch)). Dann ist's logisch, dass keine Antwort kommt, weil keiner den Fehler findet. Natürlich kannst du nicht ahnen, dass wir in dem Code da den Fehler nicht finden, wenn wir es dir nicht sagen. Allerdings tat Xeres genau das und alles, was von dir zurückkommt, ist eine ziemlich harsche Antwort, die schon geradezu frech ist. Natürlich ist der Screenshot gut gemeint - aber der geübte Hilfeleistende kopiert einen Code (wenn der Fehler nicht offensichtlich ist), lässt's zum Fehler laufen, setzt ein paar DebugLogs, debuggt und schaut sich die Werte selber an. Wie kann ich anhand des Screenshots und deiner Aussage wirklich 100% sicher sein, dass dt=0 ist? Nicht, dass ich dir nicht vertrauen würde, aber wie du schon selber sagtest: x dürfte sich in dem Falle nicht verändern. (Ich persönlich würde auch gerne wissen, in welcher Zeile der Debugger stand, als das Bildchen gemacht wurde - ist ja ziemlich seltsam, dass nur g\x ausrudert, g\y aber nicht ![]() Und dann möchte ich schlussendlich noch darauf hinweisen, dass Doppelposts hier nicht gerne gesehen sind. Solche, die dem Zweck, den eigenen Thread zu pushen, dienen, erst recht nicht. An einem Sonntag Abend sollte man sich schon mal mehr als zwei Stunden auf eine Antwort von den Menschen im Forum gedulden können. mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group