Berechnen in welche Richtung ein Car zeigt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community,
    Ich bruache eure Hilfe. Und zwar möchste ich scripten das Auto schießen können. Das habe ich auch schon ganz gut umgesetzt, mit diesem Code:



    if(newkeys & KEY_FIRE && IsPlayerInAnyVehicle(playerid))
    {
    if(shoot[playerid] == 0)
    {
    new Float:x,Float:y,Float:z;
    GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
    CreateExplosion(x+2.5,y+20,z,10,20);
    shoot[playerid] = 1;
    SetTimerEx("newshoot",1000*3,false,"d",playerid);
    return 1;
    }
    else{SendClientMessage(playerid,0xCD0000FF,"Du kannst erst in 3 Sekunden wieder schießen!");return 1;}
    }


    Mein Problem ist jetzt nur das wenn ich in die flasche Richtung zeige mit meinem Car, dann explodiert es hinter mir, aber es soll ebend immer ca. 5 Meter oder was auch immer vorm dem Fahrzeug explodieren. Nur ich weiß ebend nicht wie ich das berechne! oder gibt es eine Funktion dafür?


    MFG


    xKrUsE6x

    Gruß


    xKrUsE6x :thumbup:

  • Sieh dir mal das an:

    GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, a);
    GetPlayerFacingAngle(playerid, a);
    if (GetPlayerVehicleID(playerid))
    {
    GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    }
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    }


    #Brotfischbaron


    In schā'a llāh

  • foatsin und floatcos sind mathematische Berechnungsfunktionen (Sinus und Kosinus - Siehe http://de.wikipedia.org/wiki/Sinus).
    Damit lassen sich vereinfacht gesagt Winkel und Wellen berechnen.


    Oder wie oben aus der angabe von 2 Koordinaten eine Richtung bzw. einen Punkt auf einer Geraden (distance) berechnen.


    Edit: Rechtschreibfehler.


    #Brotfischbaron


    In schā'a llāh

    Einmal editiert, zuletzt von namespace ()