Also zum Grundaufbau:Ich habe ein Objekt, dass ich mit der Maus fröhlich hin und her schieben kann. Jetzt habe ich darum einen Kreis gezeichnet, der praktisch das Sichtfeld abzeichnen soll mit einem Radius von 150.Dann habe ich die x und y Koordinaten genommen und mit
Alles anzeigen
Linien gezeichnet, die sich nach auftreffen auf ein (oder dieses) Objekt langsam bis zu dessen äußersten Kanten bewegen und so ein Dreieck bilden.
So weit so einfach.
Jetzt kommt der Teil an dem mich meine Schulkenntnisse verließen: Ich muss die Höhe des Dreiecks berechnen, damit die Seite C nicht innerhalb des Kreises rutscht wenn ich zu nah an einem Objekt stehe.
So könnte ich durch die Höhe eben Prüfen ob sie mindestens 1px größer als der Radius des Sichtbereichs ist.Ich komm aber mit diesem arccos() bzw radtodeg() nicht klar. Probiert habe ich schon die seltsamsten Sachen und nix hilft.
WIE GEHT DAS?!
Ich hab bald keine Haare mehr zum ausreissen ...
EDIT:
Der Kreise und die Linien und sowas:
Alles anzeigen
EDIT # 999:
Ich bekomm dauernd nen Fehler vom Forum wonach meine Sizung abgelaufen sei. Aller 10 Sekunden oder sowas.
Kennt einer noch das Kind das brüllte wes wolle jetzt unbedingt Unreal Tournament spielen ... SO GEHTS MIR GRAD!
GML-Quellcode
- r = 150;
- while (trace1 = true )
- { direct1 = point_direction(plX,plY,x,y) + direct1Mod;
- // plX ist die x Koordinate der Quelle und ext wäre dann der Ausgleich
- point1X = plX + lengthdir_x(r+ ext,direct1);
- point1Y = plY + lengthdir_y(r+ ext,direct1);
- direct1Mod+=0.1 ;
- if (!collision_line(plX,plY,point1X,point1Y,id,true,false)) {trace1 = false} }
- // noch mehr code für Kontaktpunkte und dann
- while (trace2 = true )
- direct2 = point_direction(plX,plY,x,y) + direct2Mod;
- point2X = plX + lengthdir_x(r+ ext,direct2);
- point2Y = plY + lengthdir_y(r+ ext,direct2);
- direct2Mod-=0.1 ;
- if (!collision_line(plX,plY,point2X,point2Y,id,true,false)) {trace2 = false}}
Linien gezeichnet, die sich nach auftreffen auf ein (oder dieses) Objekt langsam bis zu dessen äußersten Kanten bewegen und so ein Dreieck bilden.
So weit so einfach.
Jetzt kommt der Teil an dem mich meine Schulkenntnisse verließen: Ich muss die Höhe des Dreiecks berechnen, damit die Seite C nicht innerhalb des Kreises rutscht wenn ich zu nah an einem Objekt stehe.
So könnte ich durch die Höhe eben Prüfen ob sie mindestens 1px größer als der Radius des Sichtbereichs ist.Ich komm aber mit diesem arccos() bzw radtodeg() nicht klar. Probiert habe ich schon die seltsamsten Sachen und nix hilft.
WIE GEHT DAS?!
Ich hab bald keine Haare mehr zum ausreissen ...
EDIT:
Der Kreise und die Linien und sowas:
GML-Quellcode
EDIT # 999:
Ich bekomm dauernd nen Fehler vom Forum wonach meine Sizung abgelaufen sei. Aller 10 Sekunden oder sowas.
Kennt einer noch das Kind das brüllte wes wolle jetzt unbedingt Unreal Tournament spielen ... SO GEHTS MIR GRAD!

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von yokmp ()