Regio je kao sto je JaHvram rekao oblast. U Win API-ju postoje gotove funkcije za proveru da li su dva regiona poklopljena, da li je tacka u regionu... Pogledaj Win 32 SDK Help u Delphi-u i potrazi Region functions.
P.S.
Ako radis sa tile-ima onda ti regioni i nisu potrebni, ali ako hoces nepravline oblike za platforme i pixel preciznost, regioni mogu monogo da ti pomognu.
_v!rus_: Videcemo vec nekako da sredimo taj jump...
Posle 2 sata cupanja slika iz emulatora, evo quick'n'dirty implementacije grafike glavnog lika! Po meni izgleda VEOMA interesantno && lepo se uklapa u fizicki model.
Gde je ta grafika?
Sto se tice ovog drugog... mislim da je bolje da koristimo regione, sta vi mislite o tome? Ja nikada nisam radio sa njima, ali mislim da je lako...
Peta "verzija" izgleda OK. Mario je odlican. Skok je isto dobar. Jedino mi se nesvidja raspored tastera za kretanje i skok, pa sam stavio VK_LEFT, VK_RIGHT, VK_UP dok sam isprobavao :) Naravno ovo nije vazno dok se radi na enginu, i poboljsanju mehanike ali na kraju bi bilo dobro ostaviti mogucnost da korisnik sam napravi raspored tastera.
Grafika ce biti rucno crtana, trazena na netu ili kreirana nekim programom ?
____________________________________________________________
:: PLADEON - Konvertor valuta :: Easy File Shredder - Unistite fajlove zauvek :: http://www.suonline.net/~nikolovski
Viruse, sad sam pogledao zadnju verziju i našao nešto vrlo interesantno: uopšte do sada nisam znao za postojanje DoubleBuffered propertija! Koliko sam ranije pyzdeo što su mi "sprajtovi" treperili u mojim klonovima arkanoida...
Hvala ti puno, da nije bilo ovoga verovatno nikada i ne bih saznao sa DoubleBuffered.
Sto se tice rasporeda tastera, morao sam tako jer kod mene nece da reaguje na VK_UP itd. (uopste ne triggeruje event) ako nemam neku kontrolu na formi koja reaguje na te tastere (Npr TEdit). Ne znam kako kod tebe radi i ne znam kako cu to da resim kod sebe...
@Voodoo
Nisam ni ja znao dok mi nije zatrebalo za tetris, onda sam dao Search na Delphi help i kucao Double buffer nadajuci se da cu naci te reci u opisu, kad ono iskoci ceo property!
Ni meni nije prvo radilo ali onda sam shvation i zasto... Dugme "Stisni Me!" je obicno dugme i kada kliknes na njega ono zadrzava fokus, ali ako ga izbrises i umesto njega stavis SpeedButton koje nema fokus onda ce da ti rade VK_LEFT, VK_RIGHT i VK_UP, ... ma ustvari sve bi trebalo da radi.
Ovo radi kod mene, e sad ti probaj.
_________________________________________________________________
:: PLADEON - Konvertor valuta :: Easy File Shredder - Unistite fajlove zauvek :: http://www.suonline.net/~nikolovski
_v!rus_: Nisam ni ja znao dok mi nije zatrebalo za tetris, onda sam dao Search na Delphi help i kucao Double buffer nadajuci se da cu naci te reci u opisu, kad ono iskoci ceo property!
Ovo mnogo dobro radi, skoro kao da ide preko DirectDrawa...
He he, a zamalo da počnem da učim DirectX zbog glupog treperenja :)
Dugme "Stisni Me!" je obicno dugme i kada kliknes na njega ono zadrzava fokus, ali ako ga izbrises i umesto njega stavis SpeedButton koje nema fokus onda ce da ti rade VK_LEFT, VK_RIGHT i VK_UP
Ne bi mi nikad palo na pamet, to znaci da TButton (i verovatno jos neke kontrole) "gutaju" poruke o pritisnutim tasterima ako imaju kod za obradu odredjenih tastera, i da KeyPreview nije bas Preview nego Review...
Sad cu pogledati petu verziju pa cu javiti. Fora za grafiku je bila da si napisao evo grafike a nema attach-a... ma nema veze, neko je nesto propustio :)
Bio bih VEOMA zahvalan ako bi neko imao kod (ili cak eventualno napisao kod) za neke stvari:
-Objekat koji bi autonomno menjao svoje koordinate u zavisnosti od parametara funkcija kretanja (npr. kruzenje oko neke tacke, kretanje duz putanje sa vracanjem), veoma ce mi biti potrebno za razne stvari u igri. Sobzirom da sam JAAAAAKO los iz matematike i da mi pravljenje TCharactera i TWorlda oduzima mnogo vremena, ako bi neko imao parce koda ili bar korisnu ideju...
-funkcija koja menja RGB vrednosti pixela bitmape da bi se dobio efekat svetlucanja (color cycling) - znam da sam ranije pokusavao nesto slicno ali mi nikad nije uspevalo
-Idealno bi bilo ako bi neko imao funkcije za init DirectX-a u odredjenoj rezoluciji i DirectX rutinu koja radi BitBlt (Crta blok piksela na X, Y iz memorijskog bafera u memorijski bafer - virtuelnu stranicu koje se posle filpuje na ekran) - samo 2 funkcije!
Ne verujem da gutaju nego, kada je dugme fokusirano ono ocekuje da kada pritisnes strelicu (levo, desno, gore, dole) "izgubi" fokus, tj. da fokus predje na drugo dugme.
_____________________________________________________________
:: PLADEON - Konvertor valuta :: Easy File Shredder - Unistite fajlove zauvek :: http://www.suonline.net/~nikolovski
Ne verujem da gutaju nego, kada je dugme fokusirano ono ocekuje da kada pritisnes strelicu (levo, desno, gore, dole) "izgubi" fokus, tj. da fokus predje na drugo dugme
Da, ali cim ne proslede tu poruku do forme znaci da je sta - progutaju!
Verovatno zato sto su te osnovne kontrole podrzane direktno preko API-ja...
Na kraju krajeva skroz nebitno, bitno da smo resili problem!
Lepo ti napreduje :)
Posto Super Mario zove Super Mario (kako je ovo bilo dubokoumno), a ovaj nov lik lici na Srbina... zvacemo ga Super Srbin :)
Ja sam konacno nasao malo vremena pa sam poceo da radim na tile world, a ne pixel world (doduse nemam tako lepe slicice za igraca, ali nema veze). Svaki tile ima svoj friction (po travi recimo ne proklizava i lako staje, dok na ledu polako krece, ali se i polaaaako zaustavlja), svaki nivo (napravio sam samo jedan mali, probni) ima svoju gravitaciju, prilikom kreiranja igraca moguce je postaviti njegove karakteristike. Poceo sam da pravim klasu za kameru koja ce pratiti igraca kroz nivo (crtanje igraca i sveta vec podrzava iscrtavanje na odredjenoj poziciji u Canvas-u + svet ne mora da se crta ceo... dovoljno je nacrtati samo deo oko igraca... da ne bude kocenja kod velikih nivoa). Sada me malo zeza detektovanje sudara. U vecini slucajeva radi kako treba, ali cete primetiti bagove. Cim nadjem vremena pokusacu to da ispravim... ili ako naravno neko ima zelju moze i sam(a) da popravi to.
Imas u mom kodu rutinu za detekciju sudara uz pomoc 4 tacke (vidi u TCharacter metod Tick, red if World.IsAvailable(X,Y) and (X+Width, Y) and (X, Y+Height) and (X+Width, Y+Height)
Jako brzo se izvrsava jer je provera 2 reda, jedino kod za popravku sadrzi repeat, ali se okrene najvise 3-4 puta, sto je sasvim OK...