Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Kuvan rakentaminen

Sivun loppuun

morderca [29.11.2015 00:40:31]

#

Olen rakentamassa eräänlaista communitykeskusta, johon tulostetaan näkyville pelaajan avatar. Avatar koostuu neljästä palasta: Pää, torso, housut ja kengät.
Saan kaikki osat näkyviin etsittäessä pelaajaa, mutta ongelma tulee siinä, kun kaikki päät eivät ole samankokoisia, jolloin välillä pään ja torson väliin jää ilkeitä välejä(sama myös torson ja housujen välissä tietenkin)

Googlailin aikani, mutta ajattelin kuitenkin kysäistä täältä, kun en oikein ole varma, että mitä yritän googlata. Yksi mikä tuli mieleeni, että onko PHP:llä mahdollista tehdä kuvalle spesifikoidun kokoista colission maskia tai vastaavaa? Kaikki ehdotukset otan vastaan.

Kysykää jos jotain oleellista auttamisen kannalta jäi puuttumaan.

Grez [29.11.2015 10:13:24]

#

On toki mahdollista tehdä vaikka collision mask, mutta en ymmärrä mitä tekemistä sillä on onglemasi kanssa.

Ehdotan että skaalaat päät oikeaan kokoon ennen yhdistämistä. Jos niissä on väärä kuvasuhde niin leikkaat ylimääräiset pois.

morderca [29.11.2015 12:47:48]

#

Kuvissa on eri kuvasuhteet, enkä mielelläni lähtisi niitä leikkelemäänkään, kun olisi tärkeää pystyä ne säilyttämään sellaisinaan.

Tuleeko mieleen jotain muuta ratkaisua?

The Alchemist [29.11.2015 12:54:11]

#

Ensin pitäisi tietää, mikä se eksakti ongelma on. Kuvien väliin jää tyhjää? Ahaa, no ota se tyhjä väli pois. Kun vastaat itsellesi, että miksi kuvien väliin jää tyhjää, mikä se syy on teknisestä näkökulmasta, niin osannet ratkaista sen itsekin. Me emme voi, koska et ole kertonut sitä.

morderca [29.11.2015 13:00:12]

#

En osaa laittaa kuvaa kuvana, joten tuosta linkki, joka toivottavasti kertoo vähän enemmän.

http://files.1337upload.net/kvat-495d7a.jpg

Grez [29.11.2015 14:22:16]

#

Ei toi kuva nyt oikeastaan kerro mitään itse ongelmasta - lopputulos näkyy, mutta ei mistä se johtuu. Mikä tuo vasemmassa kuvassa näkyvä valkoisen seinä(?) on? :o

Ehkä kannattaa määritellä eri kuviin missä ko. ukkelin osan jokin vakiopiste (esim. pään keskipiste, torson keskipiste) sijaitsee, ja sitten yhdistelet niin että vakiopisteet tulee aina samoihin kohtiin.

morderca [29.11.2015 14:29:58]

#

Ilmeisesti ongelmani ei ole selvinnyt vielä, joten yritän olla hieman spesifikoidumpi selittäessäni uudelleen.

Eli tällä hetkellä järjestelmästä voi hakea nimimerkillä käyttäjiä ja se hakee cryptatun profiilistringin palvelimelta, encryptaa sen ja alkaa lukemaan sitä.

Encryptatusta profiilistringistä selviää 100+ eri asiaa, joista 3 on vaatteet. Pää tulee ID:nä, Torso tulee ID:nä ja housut värikoodina. Minulla on 50 pääspriteä ja 50 torsospriteä, jotka piirretään sen mukaan, millaiset vaatteet pelaaja on valinnut itse pelissä. Osa vaatteista on yksityiskohtaisempia.
Esimerkiksi kuvassani vasemmanpuoleisella on paidassa huppu, joten pää piirtyy väärään kohtaan, sen pitäisi olla noin 20 pikseliä alempana. Oikeanpuoleinen taas näyttää ihan hyvältä, sillä siinä spritet ovat sopivan kokoisia.

En todellakaan ala kirjoittamaan törkeästi ehtolauseita, että saan juuri tietyt osat juuri oikein.

Tämän takia ajattelin, että mikäli jotenkin saa PHP:ssä collision maskit, jolloin voisin käyttää niitä aina tietyn kokoisina, ja kuvat rakentuisi luultavasti oikein.

Toivottavasti nyt osasin selittää hieman ymmärrettävämmin?

Grez [29.11.2015 14:52:02]

#

No edelleenkin minusta paljon yksinkertaisempi ratkaisu kuin törmäysmaski olisi vaan määrittää nuo avainpisteet eri kuville. Ehkä viiden minuutin homma kliksutella ne "keskipisteet" jos parisataa objektia. Myöskin niiden yhdistäminen lopulliseksi kuvaksi tällaisten tietojen avulla olisi hyvin triviaalia.

Jos nyt sitten kuitenkin lähtisit määrittämään törmäysmaskit kuville, niin ensinnäkin niiden maskien piirtelyssä menisi varmasti hyvän aikaa mutta miten ajattelisit että hyödyntäisit niitä? Päähän voi yhtä hyvin törmätä hupun kärkeen kuin vaikka tuon hupparin reunaan, eikä kumpikaan varmaan ole edes toivottu lopputulos.

morderca kirjoitti:

En todellakaan ala kirjoittamaan törkeästi ehtolauseita, että saan juuri tietyt osat juuri oikein.

Miksi ylipätään ajattelit että pitäisi tehdä "törkeästi" ehtolauseita? Minusta ei varsinaisesti ole tarvetta kirjoittaa yhtään ehtolausetta.

morderca [29.11.2015 14:56:02]

#

Ei mitään tietoa, että miten tuollaiset keskipisteiden määrittelyt toimii, mutta kaikenkaikkiaan kuulostaa aika järkevältä ratkaisulta, joten lähden tutkimaan sitä kautta.

Minä kiitän!

E: Ajattelin ensin tuon antamasi vinkin erilailla, että minun täytyisi tehdä tyyliin:

if ($torso == 1)
$center = [5,6];
elseif ($torso == 2)
$center = [2,6];

jne, mutta ymmärsin pahasti väärin aluksi

Metabolix [29.11.2015 15:45:40]

#

Yksinkertaisin keino olisi se, että lisäisit päihin riittävästi tyhjää reunoille niin, että kaikki kuvatiedostot olisivat yhtä isoja ja kaula aina samassa kohti.

morderca [29.11.2015 15:57:05]

#

Totta... Eipä tullut noin yksinkertainen juttu mieleenkään :D Kiitos


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta