connect
 

Description:
Blog à quatre mains, mais sans sous-entendus sexuels.
Projets:

lache-tes.com

blog inconnu

page temporaire

Blog déjà pris

http://alibanana.dev-fr.org
http://anarx.dev-fr.org
http://arialia.dev-fr.org
http://Beda.dev-fr.org
http://bennyrebirth.dev-fr.org
http://Boustifire.dev-fr.org
http://Campanile.dev-fr.org
http://cartonslug.dev-fr.org
http://cid2mizard.dev-fr.org
http://CL_Son_Antre.dev-fr.org
http://Cobain.dev-fr.org
http://costello.dev-fr.org
http://Cotsz.dev-fr.org
http://cyaniss.dev-fr.org
http://darkmath.dev-fr.org
http://datoh.dev-fr.org
http://Decjo.dev-fr.org
http://DevCortes48.dev-fr.org
http://doud.dev-fr.org
http://Dr-Artanis.dev-fr.org
http://Emeric0101.dev-fr.org
http://erdnal.dev-fr.org
http://evilspoon.dev-fr.org
http://freacks.dev-fr.org
http://frozenjazz.dev-fr.org
http://FuryFunnyTeam.dev-fr.org
http://gedeon34.dev-fr.org
http://geekshadow.dev-fr.org
http://iko.dev-fr.org
http://jeuxvideodylan.dev-fr.org
http://komasami.dev-fr.org
http://kram.dev-fr.org
http://kukulcan.dev-fr.org
http://Maltek.dev-fr.org
http://mastertop101.dev-fr.org
http://Maxime.dev-fr.org
http://mini-jeux.dev-fr.org
http://minishlink.dev-fr.org
http://mollusk.dev-fr.org
http://Montspy.dev-fr.org
http://mony.dev-fr.org
http://mouseonmars.dev-fr.org
http://Nameless.dev-fr.org
http://newcoleco.dev-fr.org
http://noriassaura.dev-fr.org
http://noxneo.dev-fr.org
http://nytrix.dev-fr.org
http://odin.dev-fr.org
http://Orion-Jones.dev-fr.org
http://pitt.dev-fr.org
http://pouer.dev-fr.org
http://Poulpicorp.dev-fr.org
http://PuzzleManiak.dev-fr.org
http://Rainbow.dev-fr.org
http://Refix.dev-fr.org
http://Reppa.dev-fr.org
http://risike.dev-fr.org
http://Samote.dev-fr.org
http://schyzophrenic.dev-fr.org
http://sephirothff7.dev-fr.org
http://skin-prod.dev-fr.org
http://smealum.dev-fr.org
http://space1.dev-fr.org
http://SpixShadow.dev-fr.org
http://starcom.dev-fr.org
http://thag.dev-fr.org
http://trabitboy.dev-fr.org
http://tuxiko.dev-fr.org
http://Unkwar.dev-fr.org
http://virtuapeanuts.dev-fr.org
http://vloz.dev-fr.org
http://xblaster.dev-fr.org
http://xFlasH.dev-fr.org
http://yus.dev-fr.org
http://zbob.dev-fr.org

Thématiques:

Dev
DS
Mendeleiev
Autre
C++
Gfx
WIFI
Chaoui!
CNFDS
php
NightStalker

[+]

Abonnement aux flux
Flux rss
Virtua Peanuts : Blog de Dev

29 mar
2007

Les sprites

Bonsoir,

dans ce billet je vais vous parler un peu des sprites de palib et de ce que j'en ai fait pour me simplifier l'utilisation.

Si vous avez suivi le day 4 du tutoriel sur palib.info www.palib.info/wikifr/doku.php, vous aurez appris qu'on peut afficher 128 sprites par écran, ces sprites étant numérotés de 0 à 127 (donc 256 en tout).
Ce tuto nous parle de palette de 16 couleurs, de 256, etc ... pour finir par nous expliquer que la plupart du temps, on allait utiliser des sprites de 256 couleurs.
Et utiliser un certain nombre de tailles, 8, 16, 32, 64, etc ...

Finalement, on apprend qu'une création de sprite, se fait par :
PA_CreateSprite(0, // Screen
0, // Sprite number
(void*)vaisseau_Sprite, // Sprite name
OBJ_SIZE_32X32, // Sprite size
1, // 256 color mode
0, // Sprite palette number
50, 50); // X and Y position on the screen
On voit donc entre autres qu'il faut un numéro de sprite et un numéro de palette, qu'on aura préalablement chargé avec
PA_LoadSpritePal
Pour essayer de se simplifier tout ca, et surtout pour ne pas avoir à se souvenir des numéros de sprite, j'ai voulu laisser à un objet le soin de s'en charger pour moi. Le but étant d'encapsuler certaines fonctionnalités de sprites de palib dans un objet.

J'ai donc créé une classe Sprite :
on aurait à lui passer l'écran sur lequel on veut afficher le sprite, le numéro de palette (chargé au préalable avec loadpal (on verra plus tard que cette solution ne me plait pas non plus, et on l'encapsulera)), le pointeur vers le tableau qui représente le sprite, et sa taille.
Ce qui fait, qu'on a pas à se soucier du mode de couleur (256 par défaut), des positions X et Y (pour l'instant, elles seront déportées dans une méthode d'affichage) et surtout, du numéro de sprite.

Ainsi, on ne manipulera plus un "numéro", mais bien un objet, sur lequel on pourra appeler des méthodes.

La gestion du numéro est automatique, et pour cela, on utilise un vecteur statique d'entier pour indiquer si un numéro de sprite est déjà pris ou pas, en fonction de son écran.

Ce qui fait que maintenant, je pourrais utiliser mes sprites ainsi :

Sprite *sPion = new Sprite(ECRAN_DU_HAUT, numeroPalette, 
vaisseau_Sprite, OBJ_SIZE_32X32);
sPion->afficheSprite(50, 50); 

Il y a quelques méthodes supplémentaires dans la classe, comme masquerSprite, getWidth, getHeight, setPriority, etc ... c'est très incomplet encore, mais c'est largement étoffable, et ca le sera suivant les besoins que je découvrirai dans nos futurs développements.
Par exemple, pour gérer le déplacement du sprite avec le stylet...

Pour plus de renseignements, vous pouvez aller voir dans le code du puissance 4, les fichiers sprite.cpp et sprite.h

Pour plus d'explications sur le code de la classe, laissez un commentaire...

(ps : n'oubliez pas bien sur la destruction de l'objet avec delete, je n'ai pas encore regardé si on pouvait utiliser des pointeurs intelligents avec palib, mais pour l'instant, on le fait à l'ancienne)

Voila pour cette fois

Dans le prochain billet, je vous parlerai de la classe de gestion des palettes, car un numéro encore et toujours, est suceptible d'engendrer des erreurs, et puis ... je ne suis pas un numéro !!!!

Bonne prog,

Nico

27 mar
2007

Puissance 4 Bidon

Notre premier homebrew DS terminé ! ... enfin, presque ;)
Il ne manque que le réseau et une IA décente...
Code visible chez PA Lib ... Chez PA LIB !
    

<< | 0 | 1 | 2 | 3 | 4 | 5 | 6 | >>
lache tes com dev fr scrutator irc bot
based on LT version 0.3.2 - dev-fr.org 0.4 install