Pages: 1 2 [3] 4 5 6   Bas de page
Imprimer
Auteur Fil de discussion: [NDS] Skinz Sudoku !  (Lu 17224 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #30 : 29 Avril 2007, 17:30:54 »

Bon allez, je vais rajouter la petite description sur le splash screen...

L'effet de transition de base est tout simple, c'est l'effet PA_BgTrans en diagonale avec comme type TRANS_CROSS ^^ Rien de particulier donc, n'oubliez pas que ce vous bouffre un fond quand même...

Pour la spirale du logo 'Mollusk', de l'écran du haut, j'ai hésité sur plusieurs façon de faire ^^. En fait, j'avais fait l'écran du bas en premier, donc je voulais absolument faire partir le logo, une fois affiché, par scrolling horizontal... Et on doit avoir derrière un fond 8bit qui affiche le titre du jeu, donc ca réserve déjà le fond 8bit et ainsi une partie de la mémoire ^^. Donc, si je résume, je voulais avoir un fond tout simple (EasyBg pour les PAistes) avec le logo "Mollusk Games" pour le faire scroller...
En fait, je me suis dit que ce serait du gachi de ne pas me servir du fond 8bit de dessous. Donc, au lancement de la rom, je charge sur le fond 8bit l'image du logo SANS la spirale (juste le carré bleu), et je le mets devant le fond avec le logo plein... Puis, une fois le premier effet de transition passé, il est temps de faire dessiner la spirale. Je suis un flemmard, je ne supporte donc pas de devoir rentrer les points à changer 'à la main', il me fallait donc une méthode automatique ^^.
Et bien c'est simple ! Je me suis inspiré d'une routine que j'ai faite pour une app de dessin, afin de remplir une zone d'une même couleur... Sauf que là, j'allais changer les pixels non pas de la même couleur que celle du départ, mais dont la couleur est différente entre le fond 8bit (Mollusk sans spirale) et le fond normal (Mollusk avec spirale). J'ai donc un tableau qui répertorie les pixels à changer, vide au démarrage. On part du centre de l'écran (qui est le centre de la spirale en fait), et on ajoute ce pixel au tableau... Pour chaque pixel ajouté, on le passe à la bonne couleur (PA_EasyBgGetPixel, pour lire la couleur du fond plein :)   ), et on regarde les 4 pixels autour (haut/bas/gauche/droite). Pour chacun de ces pixels, s'il n'a pas la même couleur sur le fond 8bit et sur le fond normal, on l'ajoute à la liste, etc... Et on fout ca en boucle ! Et là, oh magie, la spirale commence au centre, et le changement des pixels se fait de proche en proche :p Voilà qui permet d'avoir un code d'à peine quelques lignes pour faire apparaitre la spirale :p A noter que cela marcherait donc pour d'autres formes, du moment qu'il y a une forme continue... (genre une courbe, une écriture avec lettres attachées, etc...)
Ensuite (ralala), une fois que le fond 8bit correspond enfin au fond normal, on fait quoi ? Et bien il parait évident que l'un des 2 est devenu superflu... On peut donc repasser le fond 8bit derrière l'autre fond, et afficher dessus (en furtif/caché pour l'instant, donc), l'écran de titre du jeu ! C'est très rapide à charger (à partir d'un gif par exemple), l'utilisateur ne voit rien :p

Ensuite, pour faire scroller hors de l'écran j'ai choisi de faire lire les tiles et de les recopier 1 cran plus loin, plutôt que d'utiliser un vrai scroll, ca me permet de rester avec un fond de 256 pixels de large et c'était plus pratique pour l'écran du bas...


Place à l'écran du bas, c'est plus simple, ne vous en faites pas ^^
L'astuce pour ce dernier réside dans le fait que l'image que l'on voit une fois le premier effet de transition terminé n'est pas une seule image, mais un fond tout simple avec le logo SpriteAttack qui est en fait un sprite... Et un sprite, on eut en faire plein de choses, comme le zoomer et le rendre plus ou moins transparent ^^ En combinant les 2, on a le sprite qui devient gros et disparait, tout simplement.
Pour faire virer cet écran, c'est ensuite le même principe qu'en haut. Le fond étant en tiles, je peux avoir derrière un fond 8bit sur lequel je charge l'écran titre/menu de mon jeu pendant qu'il est caché... Ensuite, pour faire scroller, j'ai choisi, comme dit avant, d'utiliser les tiles... Je fais bouger les tiles du bas vers la gauche, celle du haut vers la droite, et le tour est joué ! Ca découvre le fond du dessous, et on peut alors partir dans le code du jeu pour continuer :)

Bon, ce code je l'avais fait pour Weeds, j'ai voulu le réutiliser pour Skinz Sudoku mais j'ai eu un petit soucis : mes fonds étaient en 16bit, et les boutons du menu en 3DSprites... Hors, je n'ai pas la place en mémoire pour le 16bit pendant mon flash (et il faut charger les images pendant que le splash tourne...), donc j'ai du migrer mes fonds en 8bit... De plus, comme j'utilise la transparence et que ça marchait bien pour l'écran du bas, j'ai eu la flemme et je n'ai pas voulu changer ce bout de code, donc je ne pouvais pas avoir les 3DSprites au moment de l'affichage du menu :s Donc je les ai viré, ca fait le splash sans les boutons, et apres les boutons scrollent vers le centre comme si c'était fait exprès, alors que c'était pour m'arranger ^^
(en fait je pourrais refaire le code du bas pour n'utiliser que le GPU 3D, ca serait mieux mais ça marche et j'ai la flemme ^^)

Voilà, merci de votre attention, je rajoute tout ça dans mon post précédent :p
Journalisée

dark_vador Hors ligne
Full Member
***
Messages: 143


Voir le profil WWW
« Réponse #31 : 29 Avril 2007, 17:37:19 »

Exellent ! Et la je suis en train de jouer a ta derniere version , et elle dechire !! :D
Journalisée

Que la force soit avec vous !!
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #32 : 01 Mai 2007, 14:14:38 »

Et voici une nouvelle release ! Visuellement, peu de changements, mais pas mal de trucs en interne, et les skins sont légèrement modifiées. Je me permets donc enfin d'estampiller cette version comme 'beta' :)

(le lien est dispo dans le premier post, désolé de ne pas le recoller ^^)

Alors, en ce qui concerne les changements :
[+] Correction du splash sur DS
[+] Ajout d'un menu/titre dynamique, je vous laisse voir ^^
[+] Transitions plus agréables entre les différentes parties
[+] Mise à jour de la reconnaissance des chiffres. J'ai pu jouer 2 sudokus de suite sans aucun soucis, alors je suis content :)
[+] Ajout de flèches pour passer d'une case à une autre sans avoir à dézommer/rezoomer... On peut aussi utiliser le pad
[+] Ajout d'un bouton de retour au menu
[+] Ajout d'un effet de zoom pour l'affichage d'un nouveau chiffre
[+] Correction d'un bug sur DS (affichage d'un petit quatre) quand on clique sur une case
[+] Correction d'un bug dans la vérification de fin de sudoku, ça pouvait se planter et effacer un chiffre à chaque fois ^^
[+] Affichage d'une petite animation (manque juste le son) quand on gagne, vous me direz si vous aimez ou pas ^^
[+] Affichage d'un message d'erreur si la grille est pleine mais fausse
[+] Ajout du backtracking sur le solveur, mais il n'est pas dispo depuis le menu, donc tout le monde s'en fout ^^ Mais pour moi c'était important, permet de résoudre les sudokus plus que hardcores ;)
[+] Surement d'autres choses que j'ai oubliées parce que j'avais la flemme de noter au moment où je les ai faites...

Merci ^^
Journalisée

MasterDje Hors ligne
Diet Coke Addict
Global Moderator
*****
Messages: 3242


Voir le profil WWW
« Réponse #33 : 01 Mai 2007, 14:43:53 »

Tu pourrais au moins changer la mention "alpha inside", c'est plus le cas !  ;)
Journalisée

Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #34 : 01 Mai 2007, 14:47:40 »

Ouep, merci ^^
Journalisée

dark_vador Hors ligne
Full Member
***
Messages: 143


Voir le profil WWW
« Réponse #35 : 01 Mai 2007, 16:13:25 »

Cool ! Merci pour cette new version ! Ta fais du bon boulot ! Wink Cheesy
Journalisée

Que la force soit avec vous !!
Gedeon34 Hors ligne
Newbie
*
Messages: 40


Voir le profil
« Réponse #36 : 02 Mai 2007, 15:24:29 »

Afin de savoir si on a dessiné un petit ou un grand chiffre, je me base sur les infos gardées en mémoire par le système de reconnaissance, en l'occurrence la taille :
Code:
if(PA_RecoInfo.maxY-PA_RecoInfo.minY > 48)...

J'ai plein de questions en réserve mais je les poserai au fur et à mesure  Grin

La première concerne la citation ci-dessus et sur PA_RecoInfo.maxY par exemple...(dont j'ignorais l'existence)

Est-ce qu'il y a un endroit où sont listées toutes ces fonctions, j'ai pas trouvé (mais j'ai sûrement mal cherché) ici http://www.palib.info/Doc/PAlibDoc%20Eng/group___reco.html

Par exemple, il y a apparement la possibilité de choisir l'épaisseur et la couleur du trait utilisé lors de la reconnaissance...


Journalisée
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #37 : 02 Mai 2007, 18:03:29 »

Alors, poses toutes tes questions, je suis là pour ça Azn

1. Pour les PA_RecoInfo, elles ne sont probablement pas dans la doc (qui ne concerne en fait que les macros/fonctions), mais on les voit utilisées dans les exemples de reconnaissance de PAlib...
2. Pour l'épaisseur du trait, c'est 100% indépendant du système de reconnaissance. J'utilise juste la fonction PA_16bitDraw pour dessiner (la fonction de base), qui elle permet de choisir l'épaisseur du trait Smiley Le système de reconnaissance stocke en mémoire les entrées du stylet mais ne dessine pas, ce qui permet de reconnaitre sans dessiner Azn Pareil pour la couleur, c'est la fonction PA_16bitDraw (cf les exemples).

Et la suite ? Langue
Journalisée

Pitt Hors ligne
Administrateur
*****
Messages: 575


Voir le profil WWW
« Réponse #38 : 02 Mai 2007, 18:37:50 »

Hmm à moi ! Comment porter un jeu de PS3 et lui ajouter l'usage du stylet, du wifi et du micro, avec PA_Lib, le tout en 2 sec ? Azn
A part ça j'ai perdu ... en insane, j'ai abandonné au bout de 50 min Lips Sealed Quelle buse ... Grin
Journalisée
Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 3948


Voir le profil WWW
Disciple Kukulcanien

« Réponse #39 : 02 Mai 2007, 18:41:54 »

Pour quand le skin tabatha cash ? MDR Kiss
Journalisée

Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #40 : 02 Mai 2007, 18:42:54 »

Files des liens et je fais une serie de skins 'cochonnes' ^^  ;) (ou donne 4 noms)
Journalisée

Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 3948


Voir le profil WWW
Disciple Kukulcanien

« Réponse #41 : 02 Mai 2007, 18:47:13 »

je v reflechir il y en a tellement lol :P
Journalisée

Gedeon34 Hors ligne
Newbie
*
Messages: 40


Voir le profil
« Réponse #42 : 02 Mai 2007, 19:41:40 »

1. Pour les PA_RecoInfo, elles ne sont probablement pas dans la doc (qui ne concerne en fait que les macros/fonctions), mais on les voit utilisées dans les exemples de reconnaissance de PAlib...

Ok, j'étais passé à côté...

2. Pour l'épaisseur du trait, c'est 100% indépendant du système de reconnaissance. J'utilise juste la fonction PA_16bitDraw pour dessiner (la fonction de base), qui elle permet de choisir l'épaisseur du trait :) Le système de reconnaissance stocke en mémoire les entrées du stylet mais ne dessine pas, ce qui permet de reconnaitre sans dessiner ^^ Pareil pour la couleur, c'est la fonction PA_16bitDraw (cf les exemples).

Sur http://www.palib.info/Doc/PAlibDoc%20Eng/group___bitmap.html la fonction PA_16bitDraw ne permet pas de choisir l'épaisseur mais juste l'écran et la couleur... Comment t'as fait, dis ?  ;D


Citation
Et la suite ? :p

Houlà, je crois vraiment qu'il faudra faire point par point... sinon on n'y arrivera pas... en tout cas merci pour tes réponses rapides...

Enfin, si peut être deux petites :

- on est d'accord que pour avoir plus de 128 sprites il faut utiliser les sprites 3D ?

- Est-ce qu'il y a une autre possibilité que d'utiliser des sprites si je veux afficher des boules numérotées de 1 jusqu'à 200 (par exemple) sur un fond chargé ? J'aimerai mieux car je ne me vois pas en train de créer les 200 sprites juste pour afficher/cacher les boules numérotées sur le fond...



Journalisée
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #43 : 02 Mai 2007, 20:53:39 »

Sur http://www.palib.info/Doc/PAlibDoc%20Eng/group___bitmap.html la fonction PA_16bitDraw ne permet pas de choisir l'épaisseur mais juste l'écran et la couleur... Comment t'as fait, dis ?  ;D
Roh, ouvre les yeux un peu ^^
PA_SetDrawSize (pas assez explicite comme nom ?)
Citation
- on est d'accord que pour avoir plus de 128 sprites il faut utiliser les sprites 3D ?
Oui :)

Citation
- Est-ce qu'il y a une autre possibilité que d'utiliser des sprites si je veux afficher des boules numérotées de 1 jusqu'à 200 (par exemple) sur un fond chargé ? J'aimerai mieux car je ne me vois pas en train de créer les 200 sprites juste pour afficher/cacher les boules numérotées sur le fond...
J'ai pas compris là ^^ Ca dépend de pas mal de choses, par exemple comment il faut qu'elles soient affichées, etc...
- Tu peux le faire avec des tiles si callées sur la grille de 8x8
- Tu peux utiliser des sprites 3D avec juste des textures pré-chargées, ca prend peu de mémoire...
- Tu peux utiliser un fond 16couleurs et dessiner dessus, je m'en suis servi dans des démos de shmup, tu peux avoir 400-600 boules sur les 2 écrans comme ca ^^
Journalisée

Gedeon34 Hors ligne
Newbie
*
Messages: 40


Voir le profil
« Réponse #44 : 02 Mai 2007, 22:09:01 »

Roh, ouvre les yeux un peu ^^
PA_SetDrawSize (pas assez explicite comme nom ?)

Bon, ben, j'ai l'air con... ;D

J'ai pas compris là ^^ Ca dépend de pas mal de choses, par exemple comment il faut qu'elles soient affichées, etc...
- Tu peux le faire avec des tiles si callées sur la grille de 8x8

En fait, 8x8 ça risque de faire un peu juste pour afficher un nombre de 3 chiffres...

Citation
- Tu peux utiliser des sprites 3D avec juste des textures pré-chargées, ca prend peu de mémoire...

Justement, comment éviter d'avoir à créer les 200 sprites différents ? Puisque chaque boule devra avoir un chiffre différent...

Ou alors chaque boule sera "l'assemblage" de plusieurs sprites, 1 celui de la boule + 3 autres pour les chiffres...

Citation
- Tu peux utiliser un fond 16couleurs et dessiner dessus, je m'en suis servi dans des démos de shmup, tu peux avoir 400-600 boules sur les 2 écrans comme ca ^^

Mais si je dessine sur le fond l'image d'une boule avec les chiffres du nombre, est-ce que je peux ensuite l'effacer et retrouver le fond derrière ?
Plus généralement, est-ce qu'on peut tracer quelque chose sur un fond et l'effacer pour retrouver le fond tel qu'il l'était avant ?
Journalisée
Pages: 1 2 [3] 4 5 6   Haut de page
Imprimer

Aller à: