Olen miettinyt, että miten voisin tehdä jonkin (neliön) pelaajan ympärille.
Tämän tarkoitus näyttää milloin pelaaja törmää johonkin...
Ei ole Harmainta aavistustakaan miten kys. juttu tehdään.
Grafiikka kirjastona käytän SDL.
Minkä muotoisia ovat muut törmättävät kappaleet ja miten niiden muodot on tallennettu?
siis lataan kuvan tiettyyn pisteeseen ja ajattelin, että miten voisin tehdä siihen ympärille jonkin muotoisen "törmäyskentän". Riittää, että kenttä on neliö tai suorakulmio..
Suorakulmioille voidaan erikseen vertailla törmäystä x- ja y-akseleiden suhteen. Suorakulmiot törmäävät x-akselilla, jos yksikin seuraavista ehdoista pätee:
al > bl && al < br ar > bl && ar < br al < bl && ar > br
Ja y-akselilla jos yksikin seuraavista ehdoista pätee:
au > bu && au < bd ad > bu && ad < bd au < bu && ad > bd
Silloin kun törmäykset tapahtuvat molemmilla akseleilla, suorakulmiot törmäävät oikeasti. Muuttujissa siis a ja b tarkoittavat kahta eri suorakulmiota, l on vasemman reunan x-koordinaatti, r oikean reunan x-koordinaatti, u yläreunan y-koordinaatti ja d alareunan y-koordinaatti. Yhdistämällä nuo tähän tapaan saadaan lopullinen lauseke, joka on tosi suorakulmioiden ollessa päällekäin:
((al > bl && al < br) || (ar > bl && ar < br) || (al < bl && ar > br)) && ((au > bu && au < bd) || (ad > bu && ad < bd) || (au < bu && ad > bd))
Optimoimisen varaa tietysti on, mutta kääntäjää osannee tehdä sen tässä tapauksessa ihmistä paremmin.
Tarkoitin, että miten voin luoda sdl:ää käyttäen suorakulmion..
SDL:llä piirretään suorakulmioita SDL_FillRect()-funktiolla tähän tapaan:
SDL_FillRect(osoitin_surfaceen, osoitin_suorakulmioon, väri);
Toisena parametrina annetaan siis osoitin SDL_Rect-rakenteeseen, joka luodaan näin:
SDL_Rect skulmio; skulmio.x = ...; skulmio.y = ...; skulmio.w = ...; skulmio.h = ...;
En tosin oikein ymmärtänyt millä tavoin pelkkä kulmion piirtäminen auttaa sinua tekemään törmäystarkistuksen.
sijoitan suorakulmion ukon kuvan Ympärille ja liikutan sitä samalla kun liikutan ukko... Koska kun lataan kuva se tulee yhteen pisteeseen...
Tässä ois vieläkin yksi ongelma. Kun lataan ton pelaajan kuvan se tulee vaan yhteen pisteeseen, miten saisin sillein että se tulisi vaikka 4 pisteen "sisälle".
Tämä taitaa ola järjetöntä, mutta en keksi muutakaan.
Ett neuvvoja pliide.
Aihe on jo aika vanha, joten et voi enää vastata siihen.