divendres, 13 de febrer de 2009

Aroundant!

Ja tinc el pintat del mapa, el marcador, el cursor i el aigua.

Mapa
No he trobat massa problemes amb aquest tema. El Arounders tracta els mapes d'una forma un poc especial. Realment, els mapes están formats per tiles, pero resulta que els arounders, al llarg de la seua vida, es dediquen a destroçar el mapa, i ho fan a nivell de pixel. Per tant, el que vaig fer es pintar el mapa a base de tiles en una pantalla virtual i usar durant tot el nivell eixa pantalla virtual ja montada, sobre la cual podía borrar pixels a mi antojo.

En SDL tenim, en principi, lo que s'anomena suprficies (SDL_Surfaces), que son molt paregudes a les pantalles virtuals de antanyo. De fet, si li diguem que la superficie siga per software, es igual. Això es el que he optat per fer amb el Arounders, per tant, en eixe aspecte el joc apenes canvia.

El problema vindrà si en un futur vull fer un Arounders a mes resolució i mes currat. Fer-ho tot per software seria molt ineficient. No dic que en un comp de hui en dia no vaja a tirar, però si puc accelerar-ho tot per hardware, pos mola mes, no? I quin serà el problema? que les superficies accelerades per hardware, com ja vaig dir en l'anterior post, es guarden en la memòria de la tarjeta gràfica. Això vol dir que si vull accedir a ella a nivell de pixel he de bloquejarla per a edició i després fer accesos per pixel i despres bloquejarla... be, molta història i a més sense acceleració. Es més, si realment vull bona acceleració hardware tindré que usar OpenGL.

Pero be, tot aixó serà en el futur. Per ara els mapes no entranyen cap problema.

Marcador
El marcador no te ningún misteri. L'unic punt més interessant es el de pintar text. Encara no feia falta, ja que durant els nivells en sí no hi ha textos de color, pero ja ho he preparat per a que el text puga canviar de color. En l'Arounders original canviar el color del text era canviar una entrada en la paleta. Com ara no hi ha paletes, el que he fet es al carregar la font, faig un 'replace' del color base pel que vull. No es que m'agrade molt la solució (tal cual está implementat necesitaria crear tantes fonts com colors vullga), pero quan pase a OpenGL tot es mes facil, ja que puc pintar el text com a textura de un poligon i despres aplicarli filtres de color, lo qual es fast & furious.

Cursor
El cursor tampoc te res d'especial. Nomes fer notar que SDL continua mostrant el cursor per defecte, lo qual no m'interessava. Així que el que he fet es pintar el cursor del Arounders en la posició del ratolí i amagar el cursor per defecte.

Aigua
Sempre m'ha paregut molt cutre l'aigua del Arounders, pero es lo que hay. No habrá más declaraciones respecto a este tema.

No he parlat de l'estructura de l'aplicació. Si un dia tinc ganes i temps soltaré el rollo.

Cap comentari:

Publica un comentari a l'entrada