Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: [Tuto/PaLib] Beat them all 2D aka The King Of Dragons - Day 8  (Lu 2369 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Campanile Hors ligne
Elite Member
**
Messages: 925


Voir le profil WWW
sic

« 07 Septembre 2007, 15:53:32 »


Tutorial Beat them all aka The King Of Dragons


Day 8 WIP

Le bouclier, un élément à la fois décoratif et vital.
Sur un principe similaire à l'arme, le boulier pourra évoluer au cours du jeu, c'est pourquoi nous le rajoutons dans la structure player, accompagné du numéro de sprite et de defines pour les différends modèles, et la création somme toute trés classique :
http://ben2303.free.fr/NDS/Misc/tuto/Cleric_Shield1.png
Code
(c):
// SHIELDS
#define SHIELD1 50
#define SHIELD2 51
....
// *************************************************************************************************
// Création du sprite du Héro :
// PlayerType * player : Pointeur sur notre Héro
void createPlayerSprite(PlayerType * player)
// *************************************************************************************************
{
..................
// Création du bouclier
  switch (player->shield)
{
  case SHIELD1:
     PA_CreateSprite(player->screen, player->shield_sprite,(void*)Cleric_Shield1_Sprite, OBJ_SIZE_32X32, 1, CHARACTER_PAL, fix_norm(player->x)+32, fix_norm(player->y));
     break;
}
..................
 
On flippe le bouclier en fonction de la direction du joueur :
Code
(c):
// *************************************************************************************************
// Flip d'un gros sprite :
// PlayerType * player : Pointeur sur notre Héro
void SetPlayerHflip(PlayerType * player)
// *************************************************************************************************
{
  // Héro
  SetBigSpriteHflip(player->screen, player->sprite, player->flip);
  // Bouclier
  PA_SetSpriteHflip(player->screen, player->shield_sprite, player->flip);
}
 
Et on le positionne également en fonction de la direction du joueur (ma formule doit être améliorable, mais les maths et moi vous savez...) :
Code
(c):
// *************************************************************************************************
// Affichage du Héro à l'écran :
// PlayerType * player : Pointeur sur notre Héro
void SetPlayerXY(PlayerType * player)
// *************************************************************************************************
{
  // Héro
  SetBigSpriteXY(player->screen, player->sprite,  fix_norm(player->x),  fix_norm(player->y),  fix_norm(player->x),  fix_norm(player->y)-CLERIC_SPRITE_OFFSET);
  // Ombre
  PA_SetSpriteXY(player->screen, player->shadow_sprite, fix_norm(player->x), fix_norm(player->z)+32);
  // Bouclier
  PA_SetSpriteXY(player->screen, player->shield_sprite, fix_norm(player->x)-5+(42*(!player->flip)), fix_norm(player->y)+10);
}
 

Maintenant gérons notre bouclier lors des attaques, des parades, et de la marche :


Journalisée

L'expérience, c'est ni plus ni moins qu'une petite quantité d'information qui aurait été fort utile quelques secondes avant qu'on l'apprenne...
Reppa Hors ligne
Administrateur
*****
Messages: 378


Voir le profil WWW
« Réponse #1 : 02 Octobre 2007, 11:29:27 »

Je découvre tes tutos campanile, excellent je vais suivre ça de près
Journalisée

Pages: [1]   Haut de page
Imprimer

Aller à: