mardi 3 septembre 2013

Un premier monstre

C'est pas grand chose mais ça me permet d'apprendre Android et ses particularités tout en m'amusant avec monstre no. 1. Il a fait quelques dessins que j'ai scannés et j'ai commencé une structure de rendering en utilisant les appels graphique standard. J'avoue que c'est assez simple et supposément que depuis Android 3.0, tous les appels graphiques sont exécutés sur le GPU. Je n'ai pas fait de benchmark mais sur mon Nexus S, c'est smooth. Reste à voir sur le Nexus 7 2012 comment ça va réagir et surtout combien de sprites je pourrai utiliser.


Vous pouvez admirer mes talents de dessinateur avec le fond de l'image et les pommes! Les pieds, le tronc et la tête proviennent des images que j'ai scannées. Pour le moment, un swipe gauche ou droit permet de changer la tête du monstre. Autrement dit, j'ai du code de test pour le rendering de bitmap avec effet d'ombre et du code de test pour analyser la gestuelle. Ça amuse déjà monstre no. 1 et ça lui donne le goût de continuer à développer le jeu. Nous avons enregistré des sons de monstre avec mon téléphone et la prochaine étape est de faire jouer un son au hasard lorsqu'on tape sur la tête.

Comme la classe SoundPool s'occupe de gérer les effets sonores, ce ne sera pas grand chose à implémenter. Je vais surtout me concentrer à définir les sprites et l'engin de composition. Comme je veux gérer deux couches d'ombrage, il va y avoir des bitmaps offscreen pour le rendering des couches d'ombres et des couches d'images temporaires. Je me demande surtout s'il est plus utile de générer des bitmaps d'ombre pour chaque sprite ou reprendre le bitmap original et utilisant un shader pour ne dessiner que l'alpha. Il est terriblement simple de générer un bitmap d'ombre à partir d'une image. La méthode extractAlpha s"occupe de tout. J'imagine qu'elle retourne un bitmap en format ALPHA_8 ce qui sauve pas mal en mémoire. De plus, les bitmap temporaire pour le rendering d'ombre sont en format ALPHA_8. Je ne connais pas de tablette Android avec de la mémoire vidéo GDDR5, donc limiter l'accès mémoire devrait être un gain même si le processing GPU est le même. Enfin, on verra plus tard.

Aucun commentaire:

Enregistrer un commentaire