Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Connexion avec identifiant, mot de passe et durée de la session

+-Merci d'utiliser le forum pour les demandes d'aides sur fusion.

15 février 2019 à 19:36:05 Cyberclic dit: C'est top Nico. J'adore ma vieille boite de MMF2 :D
14 février 2019 à 11:16:05 Xenon3K dit: Non je les trouves classes, ce n'était pas la même com qu'aujourd'hui, pour MMF Dev vous mettez en avant "dev d'applications"
14 février 2019 à 03:02:25 Nico dit: Pwouah, avec le recul comme le design des boîtes de MMF2 étaient pourries, j'ai honte :( je m'en excuse
12 février 2019 à 12:54:46 Monos dit: Enorme
11 février 2019 à 22:32:54 Seyjin dit: Youhou, j’ai réussi https://mastodon.xyz/@Seyjin/101575595653139399 (le même sur Tweeter : https://twitter.com/Seyjin_o/status/1095072517419614209) 😁
11 février 2019 à 10:29:04 Xenon3K dit: Ah ok, c'est la version standard, possibilité de créer des objets, pas de pub à la fin et d'autres fonctionnalités
10 février 2019 à 16:23:20 Emmanuel dit: non l autre
10 février 2019 à 13:49:43 Xenon3K dit: La Micro Application ?
09 février 2019 à 15:53:00 Emmanuel dit: tu a une des boite que j ai pas de jamagic la blanche produit pas la clickteam.
09 février 2019 à 13:56:33 graboide dit: Xenom je parlais pas pour toi t inquiet ;), c'est juste que ça tomber un pique comme exemple :P, j ai jamais utilisé jamagic mais j' ai toujours entendu dire qu il avait tout pour réussir c est dommage .
08 février 2019 à 23:16:21 Xenon3K dit: Hey, deux jeux made with Fusion viennent de sortir sur Nintendo Switch: https://www.youtube.com/watch?v=GowQW9SclSw https://www.youtube.com/watch?v=As3eA2K53p0
08 février 2019 à 23:11:20 Xenon3K dit: Of course, je parlais de Jamagic juste parce que j'était étonné qu'il fonctionne. Même à l'époque il n'y avait pas beaucoup d'utilisateurs :/
08 février 2019 à 21:44:57 graboide dit: Ben moi complètement pas d'accord, même si j'avais un vieux téléphone compatible avec le dernier système android je le changerai, Jamagic est compatible avec windows 10 qui l'utilise? ... personnes! fusion 2 prendra le même chemin si il n'y pas de renouveau un jour, pour la pérennité de la société il faut évolué, avancé,innové, il est normale qu'il maintiennent fusion 2 a jour il y a que ce logiciel pratiquement,  mais il ce fais vraiment vieux, l'apparence est vraiment pas terrible, techniquement dépassé, il a des très gros atouts mais il ne feront pas toujours la différences , alors allez la clickteam avancez ;) ! fusion 2.5+ peu encore étonnez ... on verra
08 février 2019 à 12:28:40 Monos dit: Les box mmf2 <3 Je me r'appelle quand j'ai reçu la boite, j'étais tout fou.
08 février 2019 à 11:32:49 Xenon3K dit: https://photos.google.com/share/AF1QipPltiH69iV1HWGqdORzJ25UUrdD2Wpj77VwT73Cm1fJgaQjgtA0SF5tVDzLsugcnA?key=Q09pcUtvWEpzVEpDcnFIZ3czS1JJRG5sZWRIdzVn
08 février 2019 à 11:06:45 Xenon3K dit: Waw j'avais oublié ce site, c'était un ami qui l'avait fait à l'époque
08 février 2019 à 10:43:41 Emmanuel dit: http://web.archive.org/web/20040904195825/http://www.xenon3000.fr.st/
08 février 2019 à 10:28:34 Patrice dit: Ils avaient pensé Unity avant Unity :)
08 février 2019 à 10:27:52 Emmanuel dit: un peu nostalgique Xenon3k
08 février 2019 à 09:51:34 Xenon3K dit: J'ai installé Jamagic sur windows 10, il fonctionne super
08 février 2019 à 09:23:02 Patrice dit: Complètement d'accord.
08 février 2019 à 06:44:48 lazarus dit: Il me semble que le plus important c'est quand même de pouvoir continuer a utiliser MMF2 sans problème de compatibilité avec windows 10 en attendant MMF3,parce que si plus de suivit de la part de clickteam,adieu verte.Donc personnellement ça ne me dérangé pas,du moment que mmf2 fonctionne et qu'il y a un suivit derrière,c'est aussi important que de voir arriver un jour mmf3.
07 février 2019 à 13:52:23 fredetmumu dit: graboide, je me suis dit pareil, et effectivement le profiler est terrible!! je me demande juste si il y a une relation entre ce qui fait ralentir sur PC et sur ANDROID, ça permettrait de bien optimiser ce qui coince sur android
06 février 2019 à 21:26:56 graboide dit: le profiler a l'air vraiment bien ! c'est une belle évolution ! par contre ça sent pas bon pour fusion 3 a mon avis sans vouloir être négatif il y en a encore pour quelques années vue qu'ils veulent lancé un fusion 2.5+ pour patienter ?!
06 février 2019 à 17:57:19 Seyjin dit: Tu en as déjà parlé dans un post, pas besoin de le mettre partout. Tu sais, ce chat ci est suffisant. On ne s’en sert pas beaucoup, pas besoin de plus.
Voir l'historique

UserBox

Welcome, Guest.
Please login or register.
 
 
 
Mot de passe oublié?

Bientôt

Surprise

Liens

Messages non lus

Télécharger

Divers

Twitter

Les extensions pour MMF2

FaceBook ClickTeam France

Discord Clickteam (EN)

 

 

 

 

 

 

Derniers messages

Re : Numéro de case virtuelle. par Seyjin
Aujourd'hui à 21:54:13

Re : Numéro de case virtuelle. par Monos
Aujourd'hui à 21:40:30

Re : Grille virtuelle hexagonale par Seyjin
Aujourd'hui à 21:39:23

Re : Numéro de case virtuelle. par Kloug
Aujourd'hui à 14:08:10

Re : Numéro de case virtuelle. par Emmanuel
Aujourd'hui à 12:19:39

Re : Numéro de case virtuelle. par Seyjin
Aujourd'hui à 10:57:15

Re : Numéro de case virtuelle. par Kloug
Aujourd'hui à 08:51:40

Re : Numéro de case virtuelle. par Monos
Aujourd'hui à 07:13:49

Numéro de case virtuelle. par Kloug
Aujourd'hui à 00:21:46

Re : Screenshots par Kloug
20 février 2019 à 16:32:32

Re : joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 21:27:14

Re : joystick2 cause probelem sur android par Seyjin
19 février 2019 à 18:00:21

Re : joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 17:48:20

joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 17:37:36

Re : Screenshots par Patrice
19 février 2019 à 16:51:52

Re : Screenshots par Kloug
18 février 2019 à 22:09:49

Re : Screenshots par Kloug
18 février 2019 à 16:52:23

Re : Screenshots par Patrice
18 février 2019 à 13:02:06

Re : Screenshots par Kloug
17 février 2019 à 14:49:30

probleme sons sur android par fredetmumu
16 février 2019 à 19:05:29

Nouveau Clickeur

Nathanic89 / Grinchnic89
jpcr
Elogio

Membre en ligne

38 Invités, 0 Utilisateurs

Auteur Sujet: Programmer la Master System. Chapitre 8, La manette de jeu  (Lu 440 fois)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2669
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui

Chapitre 8 : La manette de jeu et le déplacement du sprite


Voici la manette du jeu de la Master System. Elle possède deux boutons, et un pad à 4 boutons soit 6 boutons.

(Haut)(Bas)(Gacue)(Droite)(1 start)(2)

Notons aussi que la Master System possède un bouton Pause programmable et la Master System 1 un bouton Reset qui est aussi programmble au niveau logiciel. (Ce n'est pas du Hard)

La Master System possède deux emplacement pour brancher la manette de jeu. Port A et Port B.

Le SDK permet de tester de 4 manière si la manette de jeu est utilisé.
Si une touche est pressé. Si une touche est relaché, si une touche continue à être enfoncé. Et le statut d'une touche.

Nous allons préparer le sprite à être déplacé complétement en variable. On va déclarer la variable Y, et on remplace tous les "Y" de l'update et affichage du tiles par  Position_Y.

// Déclaration de la variable Position_X
unsigned char Position_Y = 0 ;

SMS_addSprite (Position_X, Position_Y, 256);

SMS_updateSpritePosition (0, Position_X, Position_Y);


Pour continuer un peu l'apprentissage du C avec vous, on va se créer une fonction qui va contenir le code qui va updater le sprite. Vu qu'elle ne renvois rien, ça sera void. Pour modifier le sprite, il faut trois arguement, l'id du sprite, la position X et la position Y : On va déclarer ses trois nouvelle variable directement dans la fonction comme ceci :

void Update_Sprite(unsigned char ID_Sprite,unsigned char Position_X,unsigned char PositionY)
{

}


Ensuite à l'interrieur, nous allons placer le code adéquate et remplacer le 0 de la fonction uptade par ID_Sprite ce qui fait :

void Update_Sprite(unsigned char ID_Sprite,unsigned char Position_X,unsigned char Position_Y)
{
// Retour du balayage écran
SMS_waitForVBlank();

// Modification de la position du sprite 0 en fonction de la variable

SMS_updateSpritePosition (ID_Sprite, Position_X, Position_Y);

// On affiche les sprites à l'écran
SMS_copySpritestoSAT ();
}


On place le morceau de code en dessous  de la fonction main.
Maintenant il faut déclarer la fonction. Pour cela vous placez au début du fichier au dessus de main, le nom de la fonction et les déclarations et vous ajoutez un ; comme ceci.

void Update_Sprite(unsigned char ID_Sprite,unsigned char Position_X,unsigned char Position_Y);
Et maintenant dans la boucle on va appeller la fonction et lui passer les paramètres voulus.

Update_Sprite(0,Position_X, Position_Y);
Cela donne ça :
       while (1)
        {
// Modification de la variable
Position_X = Position_X+1;
Update_Sprite(0,Position_X, Position_Y);

}
Si vous testez, le sprite va toujours bouger c'est normale.
Voila vous avez vu la création d'une petite fonction. Attention, vous ne pouvez pas modifier les variables qui sont déclarés dans le main, dans cette fonction.
Même si Position_X est identique que Position_X du main, ce n'est pas la même variable, ce n'est pas la même case mémoire. Mais ça on y reviendra beaucoup plus tard...

maintenant pour éviter les problèmes de variable, nous allons retravailler dans le main pour la gestion du pad et nous allons voir une partie fondamentale de la programmation... Les conditions. Les conditions permet de réaliser des actions quand la condition est remplis. Exemple dans notre cas.

Si le joueur utilise la touche droite de la manette alors on va ajouter 1 à la variable Position_X.  En C une condition s'écrit comme ça :

if (condition)
{
// code
}


La fonction pour tester en continu le pad de la master system c'est :
SMS_getKeysStatus() et nous allons assossier ça à un mot clef pour test. poiur le pad gauche c'est : 
PORT_A_KEY_RIGHTet on assemble ça avec un &

On assemble tout çe maintenant et on modifie la Position X de 1.

if (SMS_getKeysStatus()& PORT_A_KEY_RIGHT)
{
Position_X = Position_X + 1 ;
}

On fait pareil avec Gauche, Haut et Bas. Attention pour Haut et Bas on touche la variable Position_Y et plus X.

Ce qui nous fait dans la boucle While...


while (1)
        {
// Modification de la variable

if (SMS_getKeysStatus()& PORT_A_KEY_RIGHT)
{
Position_X = Position_X + 1 ;
}

if (SMS_getKeysStatus()& PORT_A_KEY_LEFT)
{
Position_X = Position_X - 1 ;
}

if (SMS_getKeysStatus()& PORT_A_KEY_UP)
{
Position_Y = Position_Y - 1 ;
}

if (SMS_getKeysStatus()& PORT_A_KEY_DOWN)
{
Position_Y = Position_Y + 1 ;
}


Update_Sprite(0,Position_X, Position_Y);

}


Avec cette méthode nous pouvons nous déplacer aussi sur les diagonales. Ceci dit si vous utilisé avant les autres if, le mot clef else, on testera dans la chaine de condition, 1 et 1 seul condition. Une fois la condition testé, on passe à la fin de la chaine de if. Donc plus de diagonale.

if (SMS_getKeysStatus()& PORT_A_KEY_RIGHT)
{
Position_X = Position_X + 1 ;
}

else if (SMS_getKeysStatus()& PORT_A_KEY_LEFT)
{
Position_X = Position_X - 1 ;
}

else if (SMS_getKeysStatus()& PORT_A_KEY_UP)
{
Position_Y = Position_Y - 1 ;
}

else if (SMS_getKeysStatus()& PORT_A_KEY_DOWN)
{
Position_Y = Position_Y + 1 ;
}

Maintenant, notre sprite peut sortir de l'écran. Et si nous évitons tout ça ? C'est simple, nous allons faire une double condition. Débutons sur la droite. Pour que le sprite se déplace à droite, il faut que sa position X soit inférieur à 256- vu que c'est la taille de l'écran. (En partant de 0) et ba on placer ça aussi dans la condition avec un ET de condition. Et cette fois si c'est &&

Ce qui fait :
if ( ( SMS_getKeysStatus()& PORT_A_KEY_RIGHT ) && ( Position_X < 256 ) )
{
Position_X = Position_X + 1 ;
}

Nous pouvons voir que le sprite est quand même mangé. On va rectifié ça en retirant aussi ça taille qui est de 8. Donc un 256-8.
if ( ( SMS_getKeysStatus()& PORT_A_KEY_RIGHT ) && ( Position_X < 256-8 ) )
{
Position_X = Position_X + 1 ;
}


Réalisons la même opération pour les autres directions. Plus grand c'est  le signe >
if ( ( SMS_getKeysStatus()& PORT_A_KEY_RIGHT ) && ( Position_X < 256-8 ) )
{
Position_X = Position_X + 1 ;
}

else if ((SMS_getKeysStatus()& PORT_A_KEY_LEFT) && ( Position_X > 0 ) )
{
Position_X = Position_X - 1 ;
}

else if ((SMS_getKeysStatus()& PORT_A_KEY_UP) && ( Position_Y > 0 ) )
{
Position_Y = Position_Y - 1 ;
}

else if ((SMS_getKeysStatus()& PORT_A_KEY_DOWN) && ( Position_Y < 192-8 ) )
{
Position_Y = Position_Y + 1 ;
}

Faite bien attention au parenthèse.  Toute les conditions sont dans une première parenthèse et prenez le plie de mettre aussi des parenthèse pour chaque sous condition.

Voici les symbole à connaitre pour tester les conditions :

==  est égale. (Attention c'est bien un double égale, piège à con ça, et beaucoup erreur à ce niveau la)
> est supérieur à
< est inférieur à
>= Supérieur ou égale
<=inférieure ou égale
!= différent de.

et pour lier les conditions :
nous avons vu le ET représenté par
&& ET il faut que les conditions soit vrais.
|| Ou, si une des conditions est Vrais alors le code sera joué.

Pour aller plus loin.
SMS_getKeysStatus c'est donc pour connaitre le statut de la touche en gros c'est quand la touche est pressé dans notre exemple et que ça continue.

si vous remplacez par SMS_getKeysPressed, l'action ne sera pas répété car c'est au moment ou la touche est pressé que l'action va se faire.

et SMS_getKeysReleased, l'action va se faire quand la touche sera relâché.

Voila, vous savez utiliser le pad de la master system et déplacer un sprite.
La prochaine étape sera d'importer des graphismes via photoshop par exemple et les intégrer dans la mémoire vidéo. Nous réaliserons un écran titre au début, puis nous importerons des "tiles/sprites" et des palettes dans de future chapitre. Ouf plus besoin d'encoder à la main...

tetsuro

  • Nouveau Clickeur
  • Messages: 2
    • Voir le profil
  • Google Play: Oui
  • Logiciel: Aucun
Re : Programmer la Master System. Chapitre 8, La manette de jeu
« Réponse #1 le: 19 janvier 2018 à 22:50:12 »
Hâte de lire le prochain tuto sur Photoshop ! :)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2669
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer la Master System. Chapitre 8, La manette de jeu
« Réponse #2 le: 20 janvier 2018 à 06:57:06 »
Enfin c'est pas tout à fait photoshopt, c'est importer des ressources, il arrive je le poste la pour toi

 


+-MiniChat

15 février 2019 à 19:36:05 Cyberclic dit: C'est top Nico. J'adore ma vieille boite de MMF2 :D
14 février 2019 à 11:16:05 Xenon3K dit: Non je les trouves classes, ce n'était pas la même com qu'aujourd'hui, pour MMF Dev vous mettez en avant "dev d'applications"
14 février 2019 à 03:02:25 Nico dit: Pwouah, avec le recul comme le design des boîtes de MMF2 étaient pourries, j'ai honte :( je m'en excuse
12 février 2019 à 12:54:46 Monos dit: Enorme
11 février 2019 à 22:32:54 Seyjin dit: Youhou, j’ai réussi https://mastodon.xyz/@Seyjin/101575595653139399 (le même sur Tweeter : https://twitter.com/Seyjin_o/status/1095072517419614209) 😁
11 février 2019 à 10:29:04 Xenon3K dit: Ah ok, c'est la version standard, possibilité de créer des objets, pas de pub à la fin et d'autres fonctionnalités
10 février 2019 à 16:23:20 Emmanuel dit: non l autre
10 février 2019 à 13:49:43 Xenon3K dit: La Micro Application ?
09 février 2019 à 15:53:00 Emmanuel dit: tu a une des boite que j ai pas de jamagic la blanche produit pas la clickteam.
09 février 2019 à 13:56:33 graboide dit: Xenom je parlais pas pour toi t inquiet ;), c'est juste que ça tomber un pique comme exemple :P, j ai jamais utilisé jamagic mais j' ai toujours entendu dire qu il avait tout pour réussir c est dommage .
08 février 2019 à 23:16:21 Xenon3K dit: Hey, deux jeux made with Fusion viennent de sortir sur Nintendo Switch: https://www.youtube.com/watch?v=GowQW9SclSw https://www.youtube.com/watch?v=As3eA2K53p0
08 février 2019 à 23:11:20 Xenon3K dit: Of course, je parlais de Jamagic juste parce que j'était étonné qu'il fonctionne. Même à l'époque il n'y avait pas beaucoup d'utilisateurs :/
08 février 2019 à 21:44:57 graboide dit: Ben moi complètement pas d'accord, même si j'avais un vieux téléphone compatible avec le dernier système android je le changerai, Jamagic est compatible avec windows 10 qui l'utilise? ... personnes! fusion 2 prendra le même chemin si il n'y pas de renouveau un jour, pour la pérennité de la société il faut évolué, avancé,innové, il est normale qu'il maintiennent fusion 2 a jour il y a que ce logiciel pratiquement,  mais il ce fais vraiment vieux, l'apparence est vraiment pas terrible, techniquement dépassé, il a des très gros atouts mais il ne feront pas toujours la différences , alors allez la clickteam avancez ;) ! fusion 2.5+ peu encore étonnez ... on verra
08 février 2019 à 12:28:40 Monos dit: Les box mmf2 <3 Je me r'appelle quand j'ai reçu la boite, j'étais tout fou.
08 février 2019 à 11:32:49 Xenon3K dit: https://photos.google.com/share/AF1QipPltiH69iV1HWGqdORzJ25UUrdD2Wpj77VwT73Cm1fJgaQjgtA0SF5tVDzLsugcnA?key=Q09pcUtvWEpzVEpDcnFIZ3czS1JJRG5sZWRIdzVn
08 février 2019 à 11:06:45 Xenon3K dit: Waw j'avais oublié ce site, c'était un ami qui l'avait fait à l'époque
08 février 2019 à 10:43:41 Emmanuel dit: http://web.archive.org/web/20040904195825/http://www.xenon3000.fr.st/
08 février 2019 à 10:28:34 Patrice dit: Ils avaient pensé Unity avant Unity :)
08 février 2019 à 10:27:52 Emmanuel dit: un peu nostalgique Xenon3k
08 février 2019 à 09:51:34 Xenon3K dit: J'ai installé Jamagic sur windows 10, il fonctionne super
08 février 2019 à 09:23:02 Patrice dit: Complètement d'accord.
08 février 2019 à 06:44:48 lazarus dit: Il me semble que le plus important c'est quand même de pouvoir continuer a utiliser MMF2 sans problème de compatibilité avec windows 10 en attendant MMF3,parce que si plus de suivit de la part de clickteam,adieu verte.Donc personnellement ça ne me dérangé pas,du moment que mmf2 fonctionne et qu'il y a un suivit derrière,c'est aussi important que de voir arriver un jour mmf3.
07 février 2019 à 13:52:23 fredetmumu dit: graboide, je me suis dit pareil, et effectivement le profiler est terrible!! je me demande juste si il y a une relation entre ce qui fait ralentir sur PC et sur ANDROID, ça permettrait de bien optimiser ce qui coince sur android
06 février 2019 à 21:26:56 graboide dit: le profiler a l'air vraiment bien ! c'est une belle évolution ! par contre ça sent pas bon pour fusion 3 a mon avis sans vouloir être négatif il y en a encore pour quelques années vue qu'ils veulent lancé un fusion 2.5+ pour patienter ?!
06 février 2019 à 17:57:19 Seyjin dit: Tu en as déjà parlé dans un post, pas besoin de le mettre partout. Tu sais, ce chat ci est suffisant. On ne s’en sert pas beaucoup, pas besoin de plus.
Voir l'historique
Powered by EzPortal