Problem bei Winkelvergleich von zwei Punkten mit Ausrichtung
Übersicht

KekskillerBetreff: Problem bei Winkelvergleich von zwei Punkten mit Ausrichtung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ein olles Problem, ich würde gerne meine Raketenroutine von
Tricorne übernehmen, aber etwas an Code und Bigs einsparen. Nur das Problem dabei ist, dass ich der Bug, den ich fand, imho schlecht zu beseitigen ist... Code: [AUSKLAPPEN] Function UpdateRockets()
For r.Rocket = Each Rocket r\fogcounter = r\fogcounter + 1 If r\fogcounter >= 100 - ROCKETFOGRATE PlaceStaticAnim(r\x, r\y, 95, IMG_fog3, 0, 5) r\fogcounter = 0 EndIf r\x# = r\x# + Sin(r\dir) * r\speed# r\y# = r\y# + cos(r\dir) * r\speed# r\speed# = r\speed# + r\speedadd# movetodir = CheckDegrees#(r\x#, r\y#, r\movetox, r\movetoy) Mod 360 ;korrigieren If <movetodir weiter rechts als r\dir> r\dir = r\dir - r\wendspeed ElseIf <movetodir weiter links als r\dir> r\dir = r\dir + r\wendspeed EndIf If r\x# < 0 Or r\x# > SCREENWIDTH - 1 Delete r.Rocket ElseIf r\y# < 0 Or r\y# > SCREENHEIGHT - 1 Delete r.Rocket EndIf Next End Function (Die Abfrage, wo das Problem drin sitzt ist mit <> Zeichen gekennzeichnet!) Ich will hierbei ohne Verlust rausfinden, in welche Richtung sich die Rakete drehen muss. Aber das Problem dabei ist, dass die Gradanzahl ja von 1 bis 360 geht und somit bei simplen größer-kleiner-Abfragen Probleme auftreten können (deswegen sind in Tricorne die Raketen manchmal sinnlos nach unten gesaust. Ich weiß echt nicht so recht, wie ich das machen muss - habe wohl einen Blackout oder so. Das wird mein erstes richtiges BB-Shooterspiel mit selbstgemachter und hochwertiger Grafik, daher will ich nicht schon wieder solche verdammten Bugs drin haben. Die Typinstanzliste: Code: [AUSKLAPPEN] Type Rocket
Field x# Field y# Field dir Field movetox Field movetoy Field wendspeed Field speed# Field speedadd# Field damage Field fogcounter End Type Global r.Rocket Code: [AUSKLAPPEN] Const ROCKETFOGRATE = 96
Code: [AUSKLAPPEN] Function CheckDegrees#(stx#, sty#, zx#, zy#)
Local ax# = zx# - stx# Local ay# = zy# - sty# Local r# = ATan2(ax#, ay#) r# = (r# + 360) Return r# End Function Das müsste eigentlich das wichtige hierbei gewesen sein. Hoffe, ihr könnt mir helfen. Euch wäre ein Credit und ein Tester-Job sicher. |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
das hier vielleicht das richtige: https://www.blitzforum.de/view...el+drehung ??? MfG D2006 EDIT: hab gar nichts von Belohnung gelesen. Will auch keinen Credits oder so, weil die Suche benutzen kann zumindest rein theoretisch jeder. |
||
- Zuletzt bearbeitet von D2006 am So, März 13, 2005 17:35, insgesamt einmal bearbeitet
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir, kann ich gut gebrauchen. Aber da der Code von Rallimen ist,
der sich hier nicht meldet und du das nur per Suche gefunden hast und es nicht dein geistiges Eigentum ist, bleibt die Belohnung aus ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group