Prikazujem rezultate 1 do 7 od 7

Tema: Problem C++ igre (SDL lib...)

  1. #1
    Guest

    Problem C++ igre (SDL lib...)

    Evo, nakon nekog vremena sam se ponovo vratio na forum... Moj problem je sljedeći:
    U C++ radim uz pomoć SDL-a igru. Iam klasu "Player" u kojoj su kao public pohranjene koordinate (2D):
    Code:
    Class Player
    {
    private:
    ( neke misc varijable)
    public:
    int playerX;
    int playerY;
    (jos neke varijable)
    }
    I klasu "NPC" vrlo slicnu prethodnoj klasi. Igrac ima pixel based movement, tj. nešto ovakvo:
    Code:
    if (tipkaGore())
    {
    playerY-=1
    }
    Animacije za igračev lik nisu upitne i moguće ih je lako riješiti jer se aktiviraju putem tipki na tipkovnici (npr. Pritisnuta razmaknica, lik napada...), međutim animacije za NPCove su malo veći problem, jer one nisu kontrolirane tipkovnicom, nego one mijenjaju x i y koordinate u glavnom loopu konstantno dok ne dodju do igračeva lika. Ako je igra gledana iz izometrijske perspektive (znači top down rotacije ne dolaze u obzir), kako da riješim "rotaciju" NPCova s obzirom na smjer? (npr. ako se kreće prema dolje -> sprite se promijeni u sliku NPCa koji se kreće prema dolje, itd.)?

  2. #2
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: Problem C++ igre (SDL lib...)

    Ako sam dobro shvatio, pitaš kako rješiti reagiranje npceva na igrača?

    Jedan način je da napraviš "update" funkciju u klasi za NPCa, koju ćeš pozivati u svakom frameu. Ona će provjeriti podatke o igraču i ovisno o njima napraviti što želiš (npr. promijeniti svoju animaciju).
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  3. #3
    Guest

    Re: Problem C++ igre (SDL lib...)

    = Citat = Izvorno postao Luka
    Ako sam dobro shvatio, pitaš kako rješiti reagiranje npceva na igrača?

    Jedan način je da napraviš "update" funkciju u klasi za NPCa, koju ćeš pozivati u svakom frameu. Ona će provjeriti podatke o igraču i ovisno o njima napraviti što želiš (npr. promijeniti svoju animaciju).
    Hvala na odgovoru, ali krivo si shvatio pitanje...
    Nije meni problem reagiranje NPCova i igrača, nego određivanje smjera NPCa. Eo slike:


    Nadam se da kužite...

  4. #4
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: Problem C++ igre (SDL lib...)

    Aha, kut. Znaš trigonometriju?

    Kut između y-osi i smjera NPCa iznosi: arctangent(x/y). S tim da imaš 4 slučaja, ovisno o kvadrantu u kojem se nalazi igrač u odnosu na NPCa koji je središte sustava.
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  5. #5
    Guest

    Re: Problem C++ igre (SDL lib...)

    = Citat = Izvorno postao Luka
    Aha, kut. Znaš trigonometriju?

    Kut između y-osi i smjera NPCa iznosi: arctangent(x/y). S tim da imaš 4 slučaja, ovisno o kvadrantu u kojem se nalazi igrač u odnosu na NPCa koji je središte sustava.
    Otprilike sam shvatio...malo ću još progooglati. Hvala.

  6. #6

    Re: Problem C++ igre (SDL lib...)

    Code:
    float x = igrac.x - NPC.x;
    float y = igrac.y - NPC.y;
    float c = sqrt(x*x + y*y);
    float b = abs(x);
    float deg = asin(b/c)*(180/pi);
    if (x<=0&&y>=0) k=0;
    else if (x<0&&y<0) k=1;
    else if (x<=0&&y<=0) k=2;
    else k=3;
    deg += k*90;
    Evo ovo sam nešto osmislio.
    Prvo se pretvara iz pravokutnog koord. sustava u Kartezianov sustav tako da je NPC središte sustava.
    Pomoću trigonometrije se izračunava kut koji iznosi od 0-90.
    Potom se traži u kojem je kvadrantu igrač i kutu se dodaje iznos k*90.

  7. #7
    Guest

    Re: Problem C++ igre (SDL lib...)

    Ovo mi je pomoglo da shvatim, hvala.

Slične teme

  1. Problem sa ulaskom u igre
    By Markecgrad in forum Pomagaj brate!
    Odgovora: 3
    Posljednji post: 22-12-2008, 18:45
  2. Problem dok igram igre
    By Nightkiller in forum Hardware F.A.c.Q.
    Odgovora: 3
    Posljednji post: 22-12-2008, 08:12
  3. Problem kad igram igre
    By Nightkiller in forum Pomagaj brate!
    Odgovora: 4
    Posljednji post: 07-11-2008, 20:48
  4. Problem pri pokretanju igre
    By Tsumetai Ryujin in forum Pomagaj brate!
    Odgovora: 14
    Posljednji post: 02-11-2007, 00:39
  5. Problem u pokretanju igre- Sacrifice
    By mravojed20 in forum Pomagaj brate!
    Odgovora: 1
    Posljednji post: 19-09-2007, 08:59

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •