Rozrzut z broni w grze 2d

0

Nie wiem jak zrobic fajny rozrzut z broni shotgun. Zrobilem cos takiego

    Vector3 pozycjaKursora;
    Vector3 kierunek;
    float szybkosc = 4f;
    float zasieg = 2f;
    float startTime;
    int randomNumber;
    void Start()
    {
        pozycjaKursora = Input.mousePosition;
        pozycjaKursora = Camera.main.ScreenToWorldPoint(pozycjaKursora);
        pozycjaKursora.z = 0;
        kierunek = pozycjaKursora - transform.position;
        float x = Random.Range(-1.5f, 1.5f);     
        kierunek.y = x;

Czyli pobiera pozycje myszki i tam ma strzelac + jakis rozrzut. Problem mi sie pojawia jak myszka jestem nad postacia myszka albo pod. Pociski potrafia leciec w druga strone. Po lewej i prawej stronie jak jestem myszka dziala idealnie.

1

Najlepiej chyba to będzie jak robisz przesunięcie o ileś stopni względem kursora, a nie o przesunięcie tylko na x.

0

Dobra dzieki za podsuniety pomysl zrobione.

        pozycjaKursora = Input.mousePosition;
        pozycjaKursora = Camera.main.ScreenToWorldPoint(pozycjaKursora);
        pozycjaKursora.z = 0;

        Vector3 kierunekDoKursora = pozycjaKursora - transform.position;
        float katDoKursora = Mathf.Atan2(kierunekDoKursora.y, kierunekDoKursora.x) * Mathf.Rad2Deg;

        float losowyKat = Random.Range(-15f, 15f);
        float nowyKat = katDoKursora + losowyKat;

        kierunek.x = Mathf.Cos(nowyKat * Mathf.Deg2Rad);
        kierunek.y = Mathf.Sin(nowyKat * Mathf.Deg2Rad);
        kierunek.z = 0f;
0

Shotgun to broń, która zwykle w wyniku strzału wyrzuca z lufy całą chmarę pocisków, a nie tylko jeden. Jeśli zależy Ci na tym, aby shotgun faktycznie tak działał, to w momencie strzału generuj n pocisków. Żeby to wyglądało dobrze, każdemu z nich ustal:

  • losowy kąt — kąt bazowy (do kursora) +/- nieduża liczba losowa,
  • losową prędkość — prędkość bazowa +/- nieduża liczba losowa.

Proste, a i rozrzut będzie zapewniony, i cząstki się lekko rozsuną.

0

@furious programming: Taki shotgun też wygląda dobrze :]

screenshot-20230308003707.png

2

Tak, choć to mały cheat — to sprite, nie cząstki. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1