:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Tutoriels

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 20/08/2008, 16h05   #1
Cortes48
Modérateur
 
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
Par défaut Développer sur Wii avec la libwiisprite [Day 3] : Les sprites

Développer sur Wii avec la libwiisprite [Day 3]Les sprites



Ce que vous allez lire lÃ* sera le dernier tuto sur la libwiisprite que je ferai.Mais il y aura bien d'autre tuto sur d'autre lib



1 - Un sprite ?

Code:
-Mais Jamie ,pourquoi le sprite est gazeux ?
-Figure-toi Fred ...
Non mais on parle pas du même sprite .
Un sprite est une entité qui Ã* une image,un position,et qui peut s' agrandire , s' étiré,et se déplacé librement sur l'écran.

Pour créer un sprite sur wii avec la libwiisprite il vous faut:
  • Une image
  • Un sprite
  • Un Layer Manager

L'image sera l'image qui sera collé sur le sprite.
Le layer manager sera un manager de couche qui va géré les sprites.
Par exemple vous créez un layermanager qui contient 2 couche,il pourra alors affiché 2 sprites.



2 - Le dernier chapitre

Voici l'exemple de la libwiisprite :

Code PHP:
#include <stdlib.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <fat.h>

#include <wiisprite.h> // The main libwiisprite header.
using namespace wsp// To not make us type this again and again

#include "libwiisprite.h" // This is the header file we got from the devkitPPC tool "raw2c"

GameWindow gwd// Initializes and renders our scene.

Sprite sprite// Notre sprite
Image image//L'image de notre sprite


int main(int argcchar **argv) {

    
// Initialisation de la video
    
gwd.InitVideo();
    
    
// On initialise notre layermanager avec 1 sprite
    
LayerManager manager(1);

    
// On va chargé notre image
    
if(image.LoadImage(libwiisprite) != IMG_LOAD_ERROR_NONE)exit(0);

    
// On assigne notre image Ã* notre sprite
    
sprite.SetImage(&image);
    
    
//Nous allons positionné notre sprite au centre de l'écran
    
sprite.SetRefPixelPositioning(REFPIXEL_POS_PIXEL);//Nous devons utilisé un systeme de coordonné correspondant Ã* la wii
    
sprite.SetPosition(320240); //On place notre sprite au centre del'écran

    
    
manager.Append(&sprite); //On ajoute notre sprite au manager
    


    // Initialisation des wiimotes
    
WPAD_Init();
    
    
WPAD_SetDataFormat(WPAD_CHAN_0WPAD_FMT_BTNS_ACC_IR);

        while(
1) {
        
        
WPAD_ScanPads();

        
        
u32 pressed WPAD_ButtonsHeld(WPAD_CHAN_0);

        
        
// Si on appui sur le bouton + ou - notre sprite se zoom ou se dézoom
        
if(pressed WPAD_BUTTON_MINUS)
            
sprite.SetZoom(sprite.GetZoom()-0.1f);
        if(
pressed WPAD_BUTTON_PLUS)
            
sprite.SetZoom(sprite.GetZoom()+0.1f);
        
        
        
// Si on appuis sur A ou B notre sprite change de transparence
        
if(pressed WPAD_BUTTON_A && sprite.GetTransparency() < 0xff-4)
            
sprite.SetTransparency(sprite.GetTransparency()+5);
        if(
pressed WPAD_BUTTON_B && sprite.GetTransparency() > 4){
            
sprite.SetTransparency(sprite.GetTransparency()-5);
        }

        
//Avec le Pad on peut Ã©tiré notre sprite
        
if(pressed WPAD_BUTTON_UP)
            
sprite.SetStretchHeight(sprite.GetStretchHeight()+0.1f);
        if(
pressed WPAD_BUTTON_DOWN)
            
sprite.SetStretchHeight(sprite.GetStretchHeight()-0.1f);
        if(
pressed WPAD_BUTTON_RIGHT)
            
sprite.SetStretchWidth(sprite.GetStretchWidth()+0.1f);
        if(
pressed WPAD_BUTTON_LEFT)
            
sprite.SetStretchWidth(sprite.GetStretchWidth()-0.1f);

        
// On va pouvoir bougé notre sprite avec le caprteur infra-rouge de la wiimote
        
ir_t ir// La sturcture de l'infra-rouge
        
WPAD_IR(WPAD_CHAN_0, &ir); // On obtient nos donné
        // On va donné Ã* notre sprite la position et l'angle de la wiimote
        
sprite.SetPosition(ir.sx-WSP_POINTER_CORRECTION_Xir.sy-WSP_POINTER_CORRECTION_Y); //On utilise ces constante pour rectifié la position du sprite
        
sprite.SetRotation(ir.angle/2); // On met angle/2 pour que l'angle soit correct (la libwiisprite utilise des angle en degrés divisé par 2) 
        
        // On dessine notre sprite dans notre manager
        
manager.Draw(00); 

        
// On attend la synchro de la TV
        
gwd.Flush();
    }

    
    
// And we return to our loader!
    
return 0;

Rien de bien compliqué.

Si vous ne comprenez pas quelques chose demandé le moi sois par ce topic ou par Message Perso.

Bonne chance
Cortes48 est déconnecté   Réponse avec citation

Publicité

Vieux 09/12/2008, 20h24   #2
mrfrizz
 
Messages: n/a
Par défaut

Salut !
J'ai une petite question : comment faire pour changer l'image ? J'ai remplacé 'libwiisprite' par le nom de mon image (ligne 26), je l'ai mis Ã* côté du boot.dol sur la carte sd, mais l'image ne se charge pas, le programme quitte diréctement.
Merci d'avance !
  Réponse avec citation
Vieux 09/12/2008, 20h36   #3
Cobain
Membre confirmé
 
Date d'inscription: 24/05/2007
Localisation: devant mon pc
Messages: 2 027
Par défaut

c'est un fichier externe et non un fichier Ã* inclure lors de la compilation?
Cobain est déconnecté   Réponse avec citation
Vieux 10/12/2008, 15h21   #4
Cortes48
Modérateur
 
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
Par défaut

Tu dois convertir ton image avec Raw2C et ensuite inclure le header (.h)
Cortes48 est déconnecté   Réponse avec citation
Vieux 10/12/2008, 16h31   #5
mrfrizz
 
Messages: n/a
Par défaut

Ok merci ;-)
  Réponse avec citation
Vieux 25/02/2009, 11h49   #6
Poison
Membre
 
Date d'inscription: 23/03/2007
Messages: 30
Par défaut

Merci pour les 3 tutos, j'ai enfin réussi a mettre en place un environnement de dev pour wii sous ubuntu . Par contre j'ai une question , est il possible de selectionner un morceaux d'image et de l'afficher ?

En fait ce que je voudrai faire c'est charger un png dans lequel se trouve tout mes gfx, sauf qui si j'affiche l'image entiere sa vas tout m'afficher alors que je voudrai que sa n'affiche que par exemple les pixel allant de x = 0 Ã* x =30 et y = 0 Ã* y =70.

J'espere que c'est pas trop confus .
Poison est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
NDS Installation et fonctions du EZ Flash V & l'Expansion Pack 3in1 heaveN. Articles et Tutos 74 12/07/2010 22h37
Wii Dévelloper sur Wii avec la libwiisprite [Day 1] Cortes48 Tutoriels 26 24/07/2009 01h54
Wii La faq périphériques Wii connectés sur PC dolarcles Articles 16 10/02/2009 15h41
Wii Questions sur la Wii les Homebrews et heu... Lord Deimos Software 15 15/01/2009 21h07
Lire les DVD sur Wii? Mcortex Les News 19 09/11/2007 12h17


Fuseau horaire GMT +2. Il est actuellement 10h14.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince