[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Tutoriels - #10 Programmer la mégadrive , l'utilisation des pads


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace

Apprendre
RPG Maker

Guides
Tutoriels
Astuces
Making-of


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: Inexistence / Tutos: Faire de la neige facilement en (...) / Jeux: ARCH ULTRA / Sorties: ARCH ULTRA / News: Alex d'Or 2019 : Les Vainqueurs ! /

Chat  

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

42 connectés actuellement

10312539 visiteurs
depuis l'ouverture

7 visiteurs
aujourd'hui



Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

BloGecko

ConsoleFun

Eclipso

Au hasard

Le Comptoir du Clickeur

Le bazar à Omega

Eclipso

Les deux derniers

Zarok

Akademiya RPG Maker

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




#10 Programmer la mégadrive , l'utilisation des pads
Ecrit par Monos

Chapitre 9 :Je Commande , tu obéis !
Aller on va prendre en main cette megadrive. Jusque la, cette console exécute le code tous seul comme un grand, mais il va falloir lui donner des ordres en directe.

Pour cela on va utiliser un périphérique branché sur cette console. Une manette de jeu. C'est ce qui permet donc de donner des ordres à cette bestiole.

Une manette standard de mégadrive c'est un pad avec 4 directions.

Haut
Bas
Gauche
Droite

Les diagonales pour information, c'est juste le cumule de deux directions. Le pad possède aussi un bouton Start et trois boutons d'action nous allons dire. (A-B-C)

Il existe aussi des pad à 6 Boutons (Z X Y) et avec un bouton "mode". Vous savez quoi ? Second Basic permet d'utiliser tous ça.

Pour récupérer la touche utilisé, c'est simple il y a une fonction.
La fonction Joypad(id_pad)
id_pad est le port de la machine. (0 ou 1). 0 c'est le player 1 et 1 c'est le player 2.

fait un test !

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 local A as integer
while 1
A=joypad(0)
print A
 
wend
 



Vous pouvez maintenant tester la pad avec l'emulateur ce qui donne pour le pad 0 :

Haut = 1
Bas = 2
Gauche = 4
Droite = 8

A=64
B=16
C=32

Start=128

Si vous avez configuré en 6 boutons.

Z =1024
X = 512
Y = 256

Mode : 2048

Ceci dit c'est pas trop la bonne méthode pour tester si une touche est utilisé. Il faut mieux utiliser les "bits"

voici un exemple concret.




Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 local A as integer
Local A As Integer
While 1
 
  A=JoyPad(0)
  If A.0 Then
    Print "touche Haut"
  ElseIf A.1 Then
    Print "touche Bas"
  ElseIf A.2 Then
    Print "touche Gauche"
  ElseIf A.3 Then
    Print "touche Droite"
  ElseIf A.4 Then
    Print "touche B"
  ElseIf A.5 Then
    Print "touche C"
  ElseIf A.6 Then
    Print "touche A"
  ElseIf A.7 Then
    Print "touche Start"
  ElseIf A.8 Then
    Print "touche  Z"
  ElseIf A.9 Then
    Print "touche  Y"
  ElseIf A.10 Then
    Print "touche  X"
  ElseIf A.11 Then
    Print "touche  Mode"
  Else
    Print "rien"
  EndIf
 
Wend
 



Et voila vous avez un belle exemple et une belle routine pour gérer le pad !
Maintenant nous allons déplacer notre sprite avec le pad ! et bloquer le sprite pour pas qu'il sorte de l'écran.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
 
Local sp1 As Integer,X As Integer,Y As Integer,A As Integer
LoadTiles E_Tiles,4,256
X=128
Y=128 
 
sp1=AddSprite(2,2)
 
PropSprite sp1,256,0
MoveSprite sp1,X,129
While 1
Locate 10,0
Print y
 
A=JoyPad(0)
If a.3 And X<432 Then
X=X+1
ElseIf a.2 And x>128 Then
X=X-1
ElseIf a.0 And Y>128 Then
Y=Y-1
ElseIf a.1  And y<352 Then
Y=Y+1
End If
 
 
 
        MoveSprite sp1,X,Y
     
        Sleep 1,TvBlank 
Wend
 
 
 
E_Tiles:
Rem Tile A
DataLong $11111111
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
 
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $10000000
DataLong $11111111
 
DataLong $11111111
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
 
 
 
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $00000001
DataLong $11111111
 
 



Explication :

Citation:

X=128
Y=128


Nous savons que pour les sprites, il y a un décalage de 128 points en haut et à gauche ! donc on va mémoriser la valeur 128 à X et à Y.

Citation:


While 1
Wend



Je revient sur cette boucle. While 1 veux dire , boucle toujours !
C'est mal en programmation les boucles infinis ! Sauf que la nous sommes sur console. Et une console on quite le programme seulement quand nous plaçons l’interrupteur power sur off de la bête !

Citation:

If a.3 And X<432 Then
X=X+1


Je vais expliquer seulement cette exemple.
le .3 test donc le 3em bit de A (Bon on verra ça un autre jour) en gros c'est si la touche Droite est utilisé.
Que ce passe t'il ? On ajoute tout simplement 1 à X donc on va le faire déplacer à droite ! A la condition que X est inférieure à 432. 432 c'est la limite de l'écran !

X=X-1 fait déplacer le sprite à Gauche.
Y=Y-1 (oui -1) le fait monter en Haut.
Y=Y-1 le fait descendre en bas.

C'est vraiment simple non ?

A oui pour pouvoir faire les diagonal, il ne faut pas faire des ElseIf mais de simple If qui permet de vraiment tester toutes les touches en même temps !

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
If a.3 And X<432 Then
X=X+1
end if
 
If a.2 And x>128 Then
X=X-1
end if
 
ElseIf a.0 And Y>128 Then
Y=Y-1
end if
 
If a.1  And y<352 Then
Y=Y+1
End If
 
 



Citation:

MoveSprite sp1,X,Y


On affiche le Sprite1 à la cordooné X et Y.
X et Y sont des valeurs contenues dans les variables adéquate !

Voila, vous savez poser un sprites, le faire déplacer avec vote pad ! Vous trouvez pas que ça manque un peu de couleur ? Si, ba c'est au programme de la prochaine leçon !

Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site:

Communauté: Accueil | News | Forum | Flash-news | Sorties | Chat | Commentaires | Galerie | Blogs | Articles perso | Screen de la semaine | Palmarès | Livre d'or | Recherche | Interviews | OST | L'Annuaire | Divers
Apprendre: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis