Spiel programmieren: Winkel berechnen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Spiel programmieren: Winkel berechnen

    Hallo Leute,

    ich wollte schon immer mal ein Spiel mit Visual Basic programmieren, bin mir allerdings auch bewusst, dass dies nicht gerade die ideale Programmiersprache dafür ist.
    Nun hab ich den Anfang schon gecoded, aber ein Problem habe ich, welches ich nicht eigenständig lösen kann:
    Ich habe keine Ahnung, wie ich den Winkel von Schüssen berechnen soll! Angenommen man steuert mit den Pfeiltasten eine Kanone, die man nach oben und unten bewegen kann -
    um die Kanonenkugel eher in einem Bogen, oder flach abzuschiessen. Aber wie berechne ich die Position der Picturebox? Gibt es eine Funktion zur Konvertierung in Winkel?
    Oder ist das garnicht erst zu machen, oder viel zu kompliziert? Ich bin zwar kein kompletter Anfänger mehr, aber noch lange kein Profi.

    mfG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „PhilSoft“ ()

    Du kannst diesen Winkel sehr leicht berechnen! Du hast doch ein rechtwinkliges Dreieck, mit Kanone und Maus... Siehe Bild

    Du kannst darin alle Winkel berechnen, eine gute Seite ist die hier

    Achtung: vb benutzt keine Winkel, sondern das Bogenmaß eines Winkels. Wie du umrechnest steht auch unten auf der Seite. Du auchst dazu noch Math.Pi.

    Um diese Flugbahn dann zu berechnen ist einfach Physik nötig, gibt genug dazu im Internet und im Forum letztens auch!

    Viel Glück, Nibel
    Dateien
    • winkel.jpg

      (813,17 kB, 1.025 mal heruntergeladen, zuletzt: )
    Danke für deine schnelle Hilfe, Nibel, muss ich dann also so vorgehen?:
    -zuerst Strecke a und b definieren
    -dann c mit dem Satz des Pythagoras herleiten
    -und dann Alpha mit a / c berechnen

    Ich gehe in die 8. Klasse und hatte noch nicht so viel Mathematik :)
    Am Ende müsste ich dann ja c als Sinus (Bogenmaß?) haben, wenn meine Vermutungen richtig sind.

    Edit:

    Ich bin nun schon weiter gekommen, ich habe ein kleines Programm geschrieben, was bei Eingabe von a und b alpha berechnet:

    VB.NET-Quellcode

    1. Dim a As Double = CDbl(TextBox1.Text) 'In die Textboxen schreibt man Seite a
    2. Dim b As Double = CDbl(TextBox2.Text) 'und b
    3. Dim c As Double
    4. Dim alpha As Double
    5. c = Math.Sqrt(a ^ 2 + b ^ 2) 'mit dem Satz des Pythagoras wird c berechnet
    6. alpha = Math.Asin(a / c) * 180 / Math.PI 'der Sinus von alpha gebildet, in Bogenmaß konvertiert, und als Gradzahl ausgegeben.
    7. Label1.Text = alpha & "°"


    Jetzt fange ich mit der Animierung einer Kanonenkugel an.

    MfG

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „PhilSoft“ ()

    Bitte benutze "Option Strict ON"

    Das ganz oben in den Code hinschreiben!

    Dann zeigt er dir erstmal ein paar Fehler an:
    Dim a As Double = TextBox1.Text

    Es gibt diese schönen Parse Funktionen, du weist nämlich gerade einer Variable des Typs Double einen String-Wert zu! -> Double.Parse(TextBox1.Text)

    So ein Programm hab ich auch mal geschrieben, ist ne echt klasse Übung!