jeli tezak taj pascal i dal radis sam likove za igru
Dakle, radim na jednom 2D platformeru. Radim u Pascalu i koristim SDL library za grafiku i zvuk.
Vidim da ovdje rijetko tko radi u Pascalu, ali nije ni bitno.
Uglavnom, riješio sam kretanje, gravitaciju te učitavanje levela iz mape. I animaciju lika (dobro, ne do kraja, ali to još samo trebam ubaciti teksture koje već imam).
Jedini problem koji mi je ostao je detekcija podloge. Zasad sam skakanje napravio tako da lik normalno skoči, a kad se vrati u jednaku visinu iz koje je skočio, skok je gotov. To je bilo tek toliko da imam nekako isprobavati postavke za gravitaciju i slično. Sad još moram napraviti detekciju površine, tako da lik prekine skok tek dok sleti na neku podlogu.
E sad, mapa se učitava iz tekstualne datoteke (to mi se čini kao najbolje rješenje, jer se na brzinu može napraviti velik broj nivoa) u array (niz) varijabli.
Jedini način za koji ja znam je u svakom frejmu provjeravati jel su x i y koordinate igrača jednake onoj neke platforme (s tim da u tom slučaju petlja mora provjeriti sve tileove), što mi ne pomaže previše, jer koristi previše resursa.
Ako se itko dosad susreo sa sličnim problemom ili zna kako ga riješiti, bilo bi super kad bi napisao neki pseudo kod ili jednostavno riječima detaljno objasnio što i kako napraviti.
Hvala. ;D
jeli tezak taj pascal i dal radis sam likove za igru
"Programski jezici kao što su C++ i Java dizajnirani su za profesionalni razvoj sa velikim timovima iskusnih programera koji se brinu za efikasnost izvršavanja svog koda."
U čemu je problem sa x,y detekcijom?
Ja bih problem rješio (pod pretpostavkom da je svaki tile struktura sa sljedećim podacima: x, y, w, h) tako da provjerim je li lik.y > tile.y (dakle je li lik ušao u tile) i lik.y < tile.y + tile.h (tile može biti negdje u zraku, a lik na zemlji, pa je potrebna ova provjera). Osim toga trebaš provjeriti i x koordinate...
Taj kod ponavljaš za svaki tile, ili ako imaš neku optimizaciju (npr. ako je level podjeljen u sektore), za svaki tile u trenutnom sektoru.
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!
Heh, nema drugog nacina, pozicije na ovaj ili onaj nacin jednostavno moras usporedit da bi znao. Ako provjeravanje koristi previse resursa onda moras eliminirati one tileove koje nema smisla provjeravati.Izvorno postao Ixy
Najednostavnije da nakon loada tileove grupiras u grupe/sektore - najednostavnije preklapajuce pa onda provjeravas samo one u ono sektoru u kojem se player nalazi ... ili da igra popise/grupira sve tileove u nekom radijusu oko playera (te samo te provjerava) - nakon svakih x sekunda ili je trigger odredena kolicina pomaka
Pa zapravo ga nema, samo koristi stvarno previše procesorskog vremena.Izvorno postao Luka
Našao sam jedan tutorial. Nisam ga još stigao baš pogledati, no ako to ne pomogne, pokušat ću razdijeliti nivo u sektore...
Jel ti palo na pamet da moraš provjeravati samo y koordinate za zadanu x koordinatu lika? Usporedba prepolovljena. Još ako nekako poredaš tileove da uspoređuje samo najbliži tile, na konju su.
Najbrži pištolj Policije Okusa. Može da pogodi sve od bilo gdje. Također piše i poeziju.
Ne. Moram provjeravati i x i y koordinatu i lika i tileova. Jer nivo nije jednodimenzionalan.
Evo kako meni izgleda tekst fajl iz kojeg se učitava nivo.
Primjer:
11111111111111111111
222
333 2222
3332223333
3333333333
3333333333
4444444444
1111111111111111111111
Iščitava znakove iz datoteke. Ako naiđe na razmak (' '), pomakne se za širinu tilea udesno. Ako naiđe na broj, ucrta tile. Različiti brojevi = različiti tileovi.
E sad, ne razumijem baš kako bih provjeravao samo y koordinatu.
A najbliže tileove ću i uspoređivati, ali po jednakom principu po kojoj ću provjeravati je li igraču tlo pod nogama.
Probat ću podijeliti cijeli nivo na dvodimenzionalnu mrežu i vidjeti kud s tim mogu dalje...
Evo jednog dobrog tutoriala za tile engine. Jest da je za Flash, ali to nije bitno jer princip je isti.
http://www.tonypa.pri.ee/tbw/start.html