mam taky problem....potrebujem vyrezat obrazok pricom nechcem aby ten vyrezany obrazok mal niake pozadie....dajme tomu ze idem vyrezat niaky dom...pricom napr pri programe gimp2 sa mi podari vyrezat dom ale ked novy obrazok ulozim vzdy ma ni
@ninus , to stvorcove pozadie je primarne nastavene ako "priesvitne"- ked ten obrazok ulozis ako png alebo gif tak si zachova priehladnost, ziadne pozadie tam uz nemas
to pozadie tam nieje ale pritom tam je .....pretoze ja sa to snazim vyuzit v jednej hre.... ked mi objekt narazi do objektu zmizne....lenze tam je ten problem....ked mi objekt narazi do stvorcoveho neviditelneho pozadia tak zmizne pricom ma zmiznut az ked narazi do daneho objektu....ale ajtak dik za rady
@ninus aha, ak to chces v hre tak si sprav mensi objekt, ktory bude neviditelny, a spolu s nim sa bude pohybovat obrazok co si orezala. Ten neviditelny objekt bude fungovat ako susptac teda, objekt zmizne az ked narazi do hentoho druheho, nie do obrazka, tak sa budu aj prekrivat s obrazkom.
pripadne mozes zmenit sirku a vysku toho obrazka, nech tesne prilieha k okrajom tej kresby.
hmmmm to je velmi dobry napad....len tych objektov je viac druhov a bolo by stym vela prace....ovela lahsie by bolo najst niaky program ktory by mi presne vyrezal ten objekt
1. grafické programy zvyknú priesvitné pozadie (alfa kanál s hodnotou nula) zobrazovať ako šedobielu šachovnicu.
2. problém nie je v obrázku, ale v tvojom kóde na detekciu kolízii pravdepodobne, kontroluješ či sa ti prekrývajú dané dva obrázky a ak áno, tak to berieš ako kolíziu. lenže tie dva obrázky budú vždy obdĺžnikové, aj tie priesvitné pixely sú ich súčasťou, čiže vždy už v momente keď sa ti prekryjú tie dva obdĺžniky je to kolízia. potrebuješ implementovať niečo čomu sa hovorí "pixel-perfect collision detection", čiže v momente keď sa ti prekrývajú tie dva obrázky (resp. ich obdĺžniky) potrebuješ skontrolovať, či sa vrámci obrázkov aj reálne prekrývajú nejaké pixely ktoré nie sú priesvitné (čiže majú hodnotu alfa kanálu vyššiu ako 0).
alebo ešte iná varianta, možno jednoduchšia, podľa toho v čom tú hru robíš, je dať každému objektu aj polygón ktorý bude mať zhruba tvar tej nepriesvitnej - pevnej časti obrázku, a potom nekontrolovať či sa prekrývajú obrázky, ale tie polygóny.
@ninus np. pygame príliš nepoznám, ale trošku som googlil a vraj python má polygon objekt ktorý má aj vstavané funkcie na detekciu kolízií/prekrytia, čiže by to asi bolo jednoduchšie týmto spôsobom, než implementovať klasický pixel-perfect algoritmus. nevýhodou bude že budeš musieť každému objektu okrem obrázku "kresliť" aj ten polygón, skrátka dáta navyše, ale potom samotný algoritmus bude omnoho jednoduchší asi. ešte otázka, vlastne dve, len tak zo zvedavosti: koľko máš rokov? lebo pochybujem že tých 10 čo máš v profile. a prečo robíš tú hru? je to nejaké zadanie do školy, alebo len tak pre zábavu?
Roleta je špeciálny inkognito mód, ktorým skryješ obsah obrazovky pred samým sebou, alebo inou osobou v tvojej izbe (napr. mama). Roletu odroluješ tak, že na ňu klikneš.
11 komentov
pripadne mozes zmenit sirku a vysku toho obrazka, nech tesne prilieha k okrajom tej kresby.
1. grafické programy zvyknú priesvitné pozadie (alfa kanál s hodnotou nula) zobrazovať ako šedobielu šachovnicu.
2. problém nie je v obrázku, ale v tvojom kóde na detekciu kolízii pravdepodobne, kontroluješ či sa ti prekrývajú dané dva obrázky a ak áno, tak to berieš ako kolíziu. lenže tie dva obrázky budú vždy obdĺžnikové, aj tie priesvitné pixely sú ich súčasťou, čiže vždy už v momente keď sa ti prekryjú tie dva obdĺžniky je to kolízia. potrebuješ implementovať niečo čomu sa hovorí "pixel-perfect collision detection", čiže v momente keď sa ti prekrývajú tie dva obrázky (resp. ich obdĺžniky) potrebuješ skontrolovať, či sa vrámci obrázkov aj reálne prekrývajú nejaké pixely ktoré nie sú priesvitné (čiže majú hodnotu alfa kanálu vyššiu ako 0).
alebo ešte iná varianta, možno jednoduchšia, podľa toho v čom tú hru robíš, je dať každému objektu aj polygón ktorý bude mať zhruba tvar tej nepriesvitnej - pevnej časti obrázku, a potom nekontrolovať či sa prekrývajú obrázky, ale tie polygóny.