dimecres, 25 de març de 2009

Ordenant Objectes

Hui, per fí, he avançat prou amb el Patman. He implementat l'ordenació dels objectes i he fet una mínima interacció entre ells. El sistema de espentes encara no està funcionant, es lo següent que ve.

Vaig a parlar un poc més en profunditat del sistema d'ordenació del objectes. En un mapa isomètric els objectes en un moment donat poden estar més cap a dins o més cap a fora. Si estàn més cap a fora s'han de pintar després que els que estàn més cap a dins.

La forma que he decidit usar per a mantindre els objectes en l'ordre que toca es ficar-los en una llista enllaçada, així puc mourelos sense massa dificultat ni cost, movent punters. La llista està enllaçada desde el objecte més profund (que se pintarà primer) fins el mes extern (que es pintarà l'ultim).

Una aproximació hauria pogut ser reordenar la llista a cada pas del bucle, per si ha canviat algún objecte de posició. No obstant, he decidit que l'ordenació nomes es farà quan un objecte es moga. Es més, l'unic que es reordena es eixe objecte, que buscarà sobre quins objectes ha de permutar la seua posició.

Una optimització que he implementat sobre aquest sistema es el fet que no fa falta recorrer tota la llista de objectes, sino nomes el costat de la llista que convinga. Si el objecte va cap avall, cap al nord o cap a l'est, nomes pot pujar posicions en la llista (o siga, anar cap al fondo). Així, nomes he de comparar la seua posició amb els que te davant en la llista.


Pel contrari, si es mou cap a dalt, cap al sud o cap a l'oest, nomes pot baixar posicions en la llista, pel que nomes el compararé amb els que te darrere en la llista.


La comparació consistirà en: si he superat en posició al que tinc després, m'intercanvie amb ell i ho comprove amb el següent. Pararà en el moment en que trobe un objecte al que no pot superar.

Les colisions les comprove de la mateixa forma, ja que si em meneje cap al sud nomes puc colisionar amb un objecte que estiga més al sud que jo. Més baix en la llista, per tant, i només fa falta que mire eixe costat de la llista.

Està quedant super-sucosot (be, a mi m'ho pareix :-), es una llàstima no tindre molt de temps esta setmana. Com sempre, espere que demà millore la cosa. En quan tinga el sistema de espentes implementat releasaré una versió alpha amb una sola habitació amb objectes que espentar i tal, per que pugau tastar el saboret que tindrà i pugau provar, de paso, si trobeu algún poll.

3 comentaris:

  1. Molaría poder ver videos per vore com va i que ens pugues ensenyar el que vas comentant. Crec que amb el FRAPS es podia (versio de pagament) pero si ja costa prou tindre temps per a fer el joc i el blog, com per a posarse a crackejar el fraps, fer el video, editarlo i muntarlo xD.

    Per cert, ja he vist el teu anterior comentari. Ahir vaig estar pulsant F5 tot el matí :P

    Esperant la release :)

    ResponElimina
  2. fraps... interesant. Gonna informar-me. Pareix que la versió de prova deixa gravar 30 segons, de sobra pal que jo ficaria ací.

    De totes formes, la intenció es que si hi ha algo que valga la pena vore, que ja es veja en viu, releasant una versió.

    ResponElimina
  3. Ai que ganes de vore algo en moviment... :D
    que jo no vaig jugar (i si vaig jugar no ho recorde) al batman eixe

    ResponElimina