Wieder mal Winkelfuktionen
Übersicht
BlitzBasic
Allgemein|
|
Shinkiro1ehemals "Espada"Betreff: Wieder mal Winkelfuktionen |
Antworten mit Zitat |
|---|---|---|
|
Hallo,
bevor ihr schreibt: "Benutz die Suchfunktion" => hab ich schon gemacht, verstehs aber trotzdem nicht Ich scheine echt ein bisschen schwer von Begriff mit Winkelfunktionen zu sein, hier mein Problem.
Der rote kreis stellt den spieler dar, das blaue kreuz den mouse-cursor. Nun will ich den Winkel bekommen egal wo sich der mouse-cursor befindet, das ganze natürlich von spielerposition aus. Zumindest Codeansätze wären nett, weil erklärungen hab ich mir schon genügend ohne erfolg durchgelesen. mdg Espada |
||
|
Blog :: Ein RPG in 3 Monaten erstellen
Twitter :: News zum Projekt |
||
|
|
Noobody |
Antworten mit Zitat |
|---|---|---|
|
Code: [AUSKLAPPEN] Angle# = ATan2( MouseY() - SpielerY#, MouseX() - SpielerX# )
|
||
| Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun | ||
|
|
XeresModerator |
Antworten mit Zitat |
|---|---|---|
|
Ich hab mal ein Beispiel für Sin/Cos geschrieben, hilft dir das?
Code: [AUSKLAPPEN] AppTitle("Sinus & Kosinus")
Graphics(800, 600, 0, 2) SetBuffer BackBuffer() Local timer = CreateTimer(60) Const KEY_Escape = 1, KEY_UP = 200, KEY_DOWN = 208 Const KEY_LEFT = 203, KEY_RIGHT = 205 Local radius = 150, winkel = 45, x, y Repeat If KeyDown(KEY_UP) Then radius = ((radius + 1)+300) Mod 300 If KeyDown(KEY_DOWN) Then radius = ((radius -1)+300) Mod 300 If KeyDown(KEY_LEFT) Then winkel = ((winkel + 1)+360) Mod 360 If KeyDown(KEY_RIGHT) Then winkel = ((winkel - 1)+360) Mod 360 x = 400 + Cos(winkel) * radius y = 300 - Sin(winkel) * radius ;** Der Radius: Color(255, 0, 0) Line(400, 300, x, y) Text(400 + Cos(winkel) * radius/2, 300 - Sin(winkel) * radius/2, "Atan2: "+ATan2(y-300,x-400)) ;** Die 0° Linie: Color(0, 0, 255) Line(400, 300, 400 + Cos(0) * radius, 300) Text(400 + Cos(0) * radius, 300, " 0°", False, True) ;*** Sinus: Color(255, 255, 0) Line(400, 300, 400, 300 - Sin(winkel) * radius) Line(x, y, 400, 300 - Sin(winkel) * radius) ;Zum Trabant Text(380, 300 - Sin(winkel) * radius/2, "Sin", True, True) ;*** Kosinus: Color(0, 255, 0) Line(400, 300, 400 + Cos(winkel) * radius, 300) Line(x, y, 400 + Cos(winkel) * radius, 300) ;Zum Trabant Text(400 + Cos(winkel) * radius/2, 300, "Cos") Color(255, 255, 255) ;** Die Mitte... DrawKreis(400, 300, 10) ;** Die Umlaufbahn... DrawKreis(400, 300, radius, False) ;** Der Trabant... DrawKreis(x, y, 5) Text(10, 10, "Winkel: "+winkel+"°") Text(10, 25, "Sinus: "+Sin(winkel)) Text(10, 40, "Kosinus: "+Cos(winkel)) Flip(0) WaitTimer(timer) Cls Until KeyHit(KEY_Escape) End Function DrawKreis(fx, fy, fr, solid=1) Oval(fx-fr, fy-fr, fr*2, fr*2, solid) End Function |
||
|
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) |
||
Kruemelator |
Antworten mit Zitat |
|
|---|---|---|
|
Welcher Winkel den? Ich sehe in deinem Bild mehrere Winkel.
Gruß Kruemelator |
||
|
|
Shinkiro1ehemals "Espada" |
Antworten mit Zitat |
|---|---|---|
|
Wow, Nobodys Code hat funktioniert ...
@Xeres: Das ist denke ich ein super Beispiel, danke dir, werde mir das mal anschauen. @Kruemelator: Naja, mit den lilanen dreieck wollte ich zeigen, dass ich zwar einen ansatz hätte, wie man den winkel berechnet, aber es nicht umsetzten kan -.- Thanks @ all |
||
|
Blog :: Ein RPG in 3 Monaten erstellen
Twitter :: News zum Projekt |
||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group

