Index du forum • Partenaires • FAQ • M’enregistrer • Connexion 
Tgames Actualité Consoles et Homebrew

Tgames Actualité Consoles et Homebrew

Site officiel français de WiiFlow et ses thèmes

Vers le contenu

  • Imprimer le sujet
Index du forum Index du forum » Section PC/Mobile » Tutoriels PC

[Programmation Wii] Création du premier programme Wii

Tutoriels en tout genre, en rapport avec le PC.
Répondre
12 messages • Page 1 sur 1
[Programmation Wii] Création du premier programme Wii

Messagepar Tgames » Sam 27 Sep 2008 01:58




Image




1. Initialisation de l'homebrew

Tout d'abord ouvrez "Programmer's Notepad", et faites "File" et "New" => "C/C++".

Allez c'est partit on code !

Ajoutez ces lignes, ce sont les libraries que nous allons appeler dans notre programme.

Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>
#include <gccore.h>
#include <ogcsys.h>
#include <unistd.h>
#include <ogc/pad.h> // Librairie pour la Manette Gamecube
#include <wiiuse/wpad.h>  // Librairie pour la Wiimote


Ajouter ensuite ces lignes qui permettent d'initialiser la vidéo, l'affichage du texte, et l'initialisation de la manette Wii

Code: Tout sélectionner
#define gotoXY(x,y) printf("\x1b[%i;%iH", x, y)

static void *xfb = NULL;
static GXRModeObj *rmode = NULL;

//---------------------------------------------------------------------------------
int main(int argc, char **argv)
{
   VIDEO_Init(); //Initialise la vidéo
   WPAD_Init(); // Initialise la wiimote
   rmode = VIDEO_GetPreferredMode(NULL);
   xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
   console_init(xfb,0,0,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
   VIDEO_Configure(rmode);
   VIDEO_SetNextFramebuffer(xfb);
   VIDEO_SetBlack(FALSE);
   VIDEO_Flush();
   VIDEO_WaitVSync();
   if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();


Sans le code des initialisations rien ne se passera dans le programme, rappelez vous de cela c'est très important !




2. Utilisation des manettes.

Utlisons la wiimote, la Manette Gamecube, Manette Classique, Manette Nunchunk ! (et oui sa fait beaucoup !)

Wiimote :

Code: Tout sélectionner
printf("Premier Programme Wii -- https://Tgames.fr.nf"); // Écrit à l'écran ces mots
gotoXY(2, 3); // Emplacement du texte à l'écran
 
u32 pressed;
      struct expansion_t ext;
if (b & WPAD_BUTTON_A)
      wpad_status &= PSX_BUTTON_START;

      
      WPAD_ScanPads();

/* Voici différentes lignes qui sont identiques mais fonctionnent toutes différemment.
Ces lignes servent à synchroniser les boutons à la reconnaissance sur la wii
A l'appui sur un touche un condition se déroule, si elle n'est pas respecté elle est remplacé par une autre  */

// Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY(5, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }       
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY(6, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY(7, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }


Passons maintenant à la reconnaissance des extensions branchés à la wiimote (Nunchunk, Manette Classique...)

Code: Tout sélectionner
// Extension Wiimote
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY(9, 3);
      printf("Extension: ");
      switch (ext.type)
      {
         case WPAD_EXP_NONE:        printf ("Aucun            "); break;
         case WPAD_EXP_NUNCHUK:     printf ("Nunchuk          "); break;
         case WPAD_EXP_CLASSIC:     printf ("Manette classique"); break;
         case WPAD_EXP_GUITARHERO3: printf ("Guitar Hero 3    "); break;
         case WPAD_EXP_UNKNOWN:     printf ("Manette inconnue "); break;
      }


Utilisation du Nunchunk.

Code: Tout sélectionner
// Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY (3, 5);
      printf("Boutons Nunchuk avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
       
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY (3, 6);
      printf("Boutons Nunchuk avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY (3, 7);
      printf("Boutons Nunchuk avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
      
     
      // Joypad du nunchuk
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY (3, 9);
      printf("Joypad Position  X:%3i - Y:%3i      ", ext.nunchuk.js.pos.x,    ext.nunchuk.js.pos.y);
      printf("Joypad Center    X:%3i - Y:%3i      ", ext.nunchuk.js.center.x, ext.nunchuk.js.center.y);
      gotoXY (3, 10);
      printf("Joypad Min       X:%3i - Y:%3i      ", ext.nunchuk.js.min.x,    ext.nunchuk.js.min.y);
      printf("Joypad Max       X:%3i - Y:%3i      ", ext.nunchuk.js.max.x,    ext.nunchuk.js.max.y);
       
      X = ext.nunchuk.js.pos.x - ext.nunchuk.js.center.x;
      Y = - (ext.nunchuk.js.pos.y - ext.nunchuk.js.center.y);
      gotoXY (3, 12);
      printf ("Valeur joypad par calcul  X:%4i - Y:%4i ", X, Y);
      
      X /= 4*2; Y /= 8*2;
      gotoXY (35,   20); 
      printf ("+");
      gotoXY (35+X, 20+Y);
      printf ("*");


Utilisation de la manette classique.

Code: Tout sélectionner
 WPAD_ScanPads();
      gotoXY (20+X1, 22+Y1); printf (".");      
      gotoXY (55+X2, 22+Y2); printf (".");
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY (3, 5);
      printf("Boutons Nunchuk avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }
      
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY (3, 6);
      printf("Boutons Nunchuk avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }   
      
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY (3, 7);
      printf("Boutons Nunchuk avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }
      
     
      // Joypads
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY (3, 9);
      printf("Joypad Pos.      Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.pos.x,    ext.classic.ljs.pos.y,    ext.classic.rjs.pos.x,    ext.classic.rjs.pos.y);
      gotoXY (3, 10);
      printf("Joypad Center    Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.center.x, ext.classic.ljs.center.y, ext.classic.rjs.center.x, ext.classic.rjs.center.y);
      gotoXY (3, 11);
      printf("Joypad Min       Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.min.x,    ext.classic.ljs.min.y,    ext.classic.rjs.min.x,    ext.classic.rjs.min.y);
      gotoXY (3, 12); 
      printf("Joypad Max       Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.max.x,    ext.classic.ljs.max.y,    ext.classic.rjs.max.x,    ext.classic.rjs.max.y);
       
      X1 =   ((ext.classic.ljs.pos.x - ext.classic.ljs.center.x) * 200 / (ext.classic.ljs.max.x - ext.classic.ljs.min.x));
      Y1 = - ((ext.classic.ljs.pos.y - ext.classic.ljs.center.y) * 200 / (ext.classic.ljs.max.y - ext.classic.ljs.min.y));
      X2 =   ((ext.classic.rjs.pos.x - ext.classic.rjs.center.x) * 200 / (ext.classic.rjs.max.x - ext.classic.rjs.min.x));
      Y2 = - ((ext.classic.rjs.pos.y - ext.classic.rjs.center.y) * 200 / (ext.classic.rjs.max.y - ext.classic.rjs.min.y));
      gotoXY (3, 14);
      printf ("Valeur joypad par calcul    Left X:%4i Y:%4i    Right X:%4i Y:%4i ", X1, Y1, X2, Y2);
      
      X1 /= 4*3; Y1 /= 8*3;
      gotoXY (20,    22);    printf ("+");
      gotoXY (20+X1, 22+Y1); printf ("*");
      
      X2 /= 4*3; Y2 /= 8*3;
      gotoXY (55,    22);    printf ("+");
      gotoXY (55+X2, 22+Y2); printf ("*");


Et enfin pour la manette Gamecube !

Code: Tout sélectionner
           u32 pressed;
           PAD_ScanPads();
      gotoXY (20+X1, 22-Y1); printf (".");      
      gotoXY (55+X2, 22-Y2); printf (".");
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsDown
      pressed = PAD_ButtonsDown(PAD_CHAN0);
      gotoXY(3, 5);
      printf("Boutons manette GameCube avec PAD_ButtonsDown: ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsHeld
      pressed = PAD_ButtonsHeld(PAD_CHAN0);
      gotoXY(3, 6);
      printf("Boutons manette GameCube avec PAD_ButtonsHeld: ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsUp
      pressed = PAD_ButtonsUp(PAD_CHAN0);
      gotoXY(3, 7);
      printf("Boutons manette GameCube avec PAD_ButtonsUp:   ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      
      // Etat des joypads de la manette GameCube
      X1 = PAD_StickX(PAD_CHAN0);
      Y1 = PAD_StickY(PAD_CHAN0);   
      X2 = PAD_SubStickX(PAD_CHAN0);
      Y2 = PAD_SubStickY(PAD_CHAN0); 
      
      gotoXY (3, 9);
      printf("PAD_StickX:   %3i - PAD_StickY:   %3i ", X1, Y1);
      gotoXY (3, 10);
      printf("PAD_SubStickX:%3i - PAD_SubStickY:%3i ", X2, Y2);
      gotoXY (3, 11);
      printf("PAD_TriggerL: %3i - PAD_TriggerR: %3i ", PAD_TriggerL(PAD_CHAN0), PAD_TriggerR(PAD_CHAN0));
      
      X1 /= 4*2; Y1 /= 8*2;
      gotoXY (20,    22);    printf ("+");
      gotoXY (20+X1, 22-Y1); printf ("*");
      
      X2 /= 4*2; Y2 /= 8*2;
      gotoXY (55,    22);    printf ("+");
      gotoXY (55+X2, 22-Y2); printf ("*");





3.Utilisation des modes de redémarrages de la wii !

Désormais j'ai évoqué tout ce qui concerne l'utilisation des manettes, nous allons parler des modes de redémarrage de la wii, éteindre la wii, retour au loader.

Pour cela ajouter la ligne pour la wiimote :

Pour retour au loader :
Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { exit(0); }


Ou pour retour au menu wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_RETURNTOMENU,0,0); }


Ou pour redémarrer la wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_RESTART,0,0); }


Ou pour éteindre la wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_POWEROFF,0,0); }



A ajouter après les autres if (pressed & WPAD_BUTTON_xx )....

Pour la manette classique il sufit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & WPAD_CLASSIC_BUTTON_HOME

Cela marchera toujours.

Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_BUTTON_START

Voilà nous avons fini pour le tutoriel sur les fonctions Manettes, initialisation vidéo/manettes et sur les modes de redémarrage de la wii !!

Si vous voulez créer un bon jeu 2D, commencer à lire la section 2 du site de Zéro, SDL est aussi présent sur wii, il vous permettra de réaliser des programmes complexe. ;)
Youtube Officiel du forum Tgames : ICI
Tgames Hors ligne

Avatar de l’utilisateur
 
Messages: 3645
Inscription: Dim 21 Sep 2008 11:15
Localisation: France
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 4.1E
cIOS Wii: Cios57 Rev19
Type de DS: 3DS
Linker DS: M3i Zero
Firmware PS3: 4.00
CFW PS3: 3.55 PS3MFW
Dongle PS3: PS3Key
Type de PSP: Slim
Firmware PSP: 5.00-M33 CFW
  • Site Internet
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar kyno » Sam 18 Oct 2008 12:46

J'ai pas trouver sur le site du zéro o_O , tu peux m'aider stp ? :lol:
Image
Kyno.org
kyno Hors ligne

Avatar de l’utilisateur
Gamer
Gamer
 
Messages: 1096
Inscription: Sam 18 Oct 2008 12:32
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 3.4E
cIOS Wii: CIOS57Rev19+hermesv5
Firmware PS3: 4.00
Dongle PS3: Aucun
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar Tgames » Sam 18 Oct 2008 12:54

C'est ici: ;)

https://www.siteduzero.com/tutoriel-3-14 ... -en-c.html
Youtube Officiel du forum Tgames : ICI
Tgames Hors ligne

Avatar de l’utilisateur
 
Messages: 3645
Inscription: Dim 21 Sep 2008 11:15
Localisation: France
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 4.1E
cIOS Wii: Cios57 Rev19
Type de DS: 3DS
Linker DS: M3i Zero
Firmware PS3: 4.00
CFW PS3: 3.55 PS3MFW
Dongle PS3: PS3Key
Type de PSP: Slim
Firmware PSP: 5.00-M33 CFW
  • Site Internet
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar kyno » Sam 18 Oct 2008 14:48

a ok :lol: dsl je croyer qu'il y avait une section wii :lol: :lol: (on voit tout de suite mon intelligence ^^)

Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_BUTTON_START

et si on veux appuyer sur le bouton z par exemple , on mais Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_TRIGGER_Z ??
Image
Kyno.org
kyno Hors ligne

Avatar de l’utilisateur
Gamer
Gamer
 
Messages: 1096
Inscription: Sam 18 Oct 2008 12:32
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 3.4E
cIOS Wii: CIOS57Rev19+hermesv5
Firmware PS3: 4.00
Dongle PS3: Aucun
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar CashMan » Lun 20 Oct 2008 12:05

GRRLIB 3.0.1 est plus sur pour la programmation 2D sur Wii que la SDL ;)
CashMan's Productions - Retrouvez tous mes homebrews sur le site officiel de CashMan's Productions - https://www.CashMan-Productions.fr.nf/
CashMan Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 34
Inscription: Dim 21 Sep 2008 14:07
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 3.3J
cIOS Wii: IOS38 rev14
  • Site Internet
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar floriolink » Dim 7 Déc 2008 14:32

comment on fait pour compiler en .dol ou .elf?
floriolink Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 88
Inscription: Sam 18 Oct 2008 13:25
Sexe: Geek ?
Wi-Fi: Oui
Firmware Wii: 3.2U
cIOS Wii: Cios 36rev6
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar floriolink » Dim 7 Déc 2008 18:07

Je trouve vraiment pas meme avec devkit pro.Quand je fais make il me met que le fichier spécifié est introuvable.
aidez moi svp
floriolink Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 88
Inscription: Sam 18 Oct 2008 13:25
Sexe: Geek ?
Wi-Fi: Oui
Firmware Wii: 3.2U
cIOS Wii: Cios 36rev6
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar Tgames » Dim 7 Déc 2008 18:08

faut être dans le dossier où se trouve le fichier make (sans extension)
Youtube Officiel du forum Tgames : ICI
Tgames Hors ligne

Avatar de l’utilisateur
 
Messages: 3645
Inscription: Dim 21 Sep 2008 11:15
Localisation: France
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 4.1E
cIOS Wii: Cios57 Rev19
Type de DS: 3DS
Linker DS: M3i Zero
Firmware PS3: 4.00
CFW PS3: 3.55 PS3MFW
Dongle PS3: PS3Key
Type de PSP: Slim
Firmware PSP: 5.00-M33 CFW
  • Site Internet
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar floriolink » Dim 7 Déc 2008 18:12

ça marche toujours pas,tu peux essayer d'etre plus précis stp?!
floriolink Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 88
Inscription: Sam 18 Oct 2008 13:25
Sexe: Geek ?
Wi-Fi: Oui
Firmware Wii: 3.2U
cIOS Wii: Cios 36rev6
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar Tgames » Dim 7 Déc 2008 18:31

A l'aide d'un invité de commande (CMD), tu tape les cd pour arriver dans le dossier qui comporte les sources et qui as aussi un fichier makefile ou wiimakefile ou make (sans aucune extension).

Exemple: je veux compiler un programme ce trouvant dans le répertoire C:\DevKitPro\Exemple\Wii\MonHB

tu fait : cd... plusieurs fois pour arriver sur c:/

Puis tu fais cd DevkitPro, ensuite cd Exemple, etc...

Ensuite tu tape make

Voilà c'est tout.
Youtube Officiel du forum Tgames : ICI
Tgames Hors ligne

Avatar de l’utilisateur
 
Messages: 3645
Inscription: Dim 21 Sep 2008 11:15
Localisation: France
Sexe: Masculin
Wi-Fi: Oui
Firmware Wii: 4.1E
cIOS Wii: Cios57 Rev19
Type de DS: 3DS
Linker DS: M3i Zero
Firmware PS3: 4.00
CFW PS3: 3.55 PS3MFW
Dongle PS3: PS3Key
Type de PSP: Slim
Firmware PSP: 5.00-M33 CFW
  • Site Internet
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar floriolink » Mar 9 Déc 2008 19:49

Merci tgames pour ton aide mais ça ne marche malheuresement pas et je voudrais montrer l'étendu du problème:
Déja mon projet se nomme:my programme wii.dol et est placer là:C:\DevKitPro\Exemple\Wii\Mon application\my programme wii.dol
L'erreur lors de l'action make est:
> "make"
> Failed to create process: Le fichier spécifié est introuvable.
> Process Exit Code: 0
> Time Taken: 00:00
J'ai fait tout le code puis je lance le fichier:template.PNPROJ,là je clique sur make et ça me met l'erreur,aidez moi svp :cry:
J'ajoute que lorsque je lance le fichier main.c qui était déja dans l'archive télécharg avec devkit pro et que je fais make ça marche pas
floriolink Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 88
Inscription: Sam 18 Oct 2008 13:25
Sexe: Geek ?
Wi-Fi: Oui
Firmware Wii: 3.2U
cIOS Wii: Cios 36rev6
Haut


Re: [Programmation Wii] Création du premier programme Wii

Messagepar floriolink » Mer 10 Déc 2008 13:28

auriez vous une idée svp
floriolink Hors ligne

Avatar de l’utilisateur
Novice
Novice
 
Messages: 88
Inscription: Sam 18 Oct 2008 13:25
Sexe: Geek ?
Wi-Fi: Oui
Firmware Wii: 3.2U
cIOS Wii: Cios 36rev6
Haut



Répondre
12 messages • Page 1 sur 1

Retourner vers Tutoriels PC



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun membre et 4 invités


Basculer vers le mode mobile
  • Index du forum
  • L’équipe du forum • Supprimer les cookies du forum • Zone horaire: Europe/Paris [ Heure d’été ]
  • Flux RSS Flux RSS
  • Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
phpBB SEO