[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Tutoriels - #13 Programmer la mégadrive , Les datas


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

141 connectés actuellement

10310046 visiteurs
depuis l'ouverture

92 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

Akademiya RPG Maker

Guelnika & E-magination

RitoJS Blog

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




#13 Programmer la mégadrive , Les datas
Ecrit par Monos

Chapitre 12 : Data
Nous savons faire pas mal de chose sur la mégadrive. Nous savons (de Marseille) utiliser un joystick, afficher un sprite à la position que nous voulons à l'écran, poser un Tiles, faire des boucles, des conditions, un peu utiliser les tableaux, nous allons entrer dans les DATA.

Les Data c'est le bien en basic ! C'est une suite de valeur (ou de chaîne) mise en mémoire et qui peut être appelé par le programme. Sur la mégadrive c'est tout simple des donnés qui sont codés dans la ROM. (La cartouche heins).
Nous avons déjà vu ça avec les Datalong pour mémoriser les graphismes,et les Dataint pour mémoriser une palette de couleur, mais il existe aussi les data simple.

Première approche des Data avec Data


Premièrement pour n'importe qu'elle suite de data, il faut une étiquette pour l'identifier.
L'étiquette se compose d'un nom suivie des deux points. Notons que j'ai l'habite de débuter mes noms d'étiquettes par un E_

Portion de code : Tout sélectionner

1
E_data:



Maintenant nous allons placer notre suite de data l'un après l'autre.
Nous allons débuter avec une chaîne de caractère

Portion de code : Tout sélectionner

1
2
3
 
Data "Chat","Chien","Ours"
Data "Oiseau","Humain","Panda"



J'ai placé 6 animaux dans cette liste sur deux lignes de Data (oué nous sommes au point de vu biologique des animaux !) Chaque éléments est séparé par une virgule et comme c'est une chaîne (des lettres quoi), je place l'élément entre deux guillemets droit. "Elements". A la fin de la ligne je ne place pas de virgule ! C'est important.

Maintenant nous allons afficher à l'écran de la mégradrive les 6 noms d’animaux ! Pour cela il faut :
=> Une commande pour se brancher que l'étiquette.
=> Une commande pour lire la donnée Data
=> Une commande pour afficher à l'écran la donnée Data.

Pour se brancher sur une étiquette 'Data' c'est la commande Restore nom de l'étiquette.
Donc dans notre exemple :

Portion de code : Tout sélectionner

1
Restore E_Data


Maintenant pour lire une donnée data c'est la commande Read variable.
Dans dans notre exemple

Portion de code : Tout sélectionner

1
Read N$


je place un $ aprés la variable car c'est une variable qui va mémoriser une chaîne de caractère. (Des lettres quoi)
Maintenant nous n'avons plus à afficher à l'écran la variable N$ avec print

Ce qui fait :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
Restore E_Data
Read N$
Print N$
 
E_data:
Data "Chat","Chien","Ours"
Data "Oiseau","Humain","Panda"




Normalement si tous se passe bien, vous devez avoir =>Chat à l'écran.
Dupliquont le Read N$ et Print N$.


Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
Restore E_Data
Read N$
Print N$
Read N$
Print N$
 
E_data:
Data "Chat","Chien","Ours"
Data "Oiseau","Humain","Panda"



Chat et Chien s'affiche bien.
En fait autre que le nom de l'étiquette, il y a aussi in compteur invisible. (Index), et à chaque fois que Read est utilisé, le compteur est modifié de 1 prêt à lire la prochaine donné, et avec un Restore on re initie le compteur à 0 sur l'étiquette voulu !

Bon faire à chaque fois Read machin c'est lourd, nous allons pour l'exemple utiliser une Boucle ! nous savons qu'il y a 6 données, nous allons donc utiliser pour cette exemple une boucle For !

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
Restore E_Data
 
For X=0 to 5
 Read N$
 Print N$
Next
 
E_data:
Data "Chat","Chien","Ours"
Data "Oiseau","Humain","Panda"



Et voila le travaille. (Notons que pour cette exemple je n'ai pas initié les variables, Le second basic ne le demande pas nativement, mais je vous conseille de la faire quand vous entrez en mode production de jeu véritablement.
Attention ou vous placez votre boucle ! C'est après le restore sinon vous allez à chaque boucle revenir au début de l'étiquette avec un index à 0. (Piège à con)

Data permet aussi de mémoriser des valeur numérique. Exemple :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
Restore E_Data
 
For X=0 to 5
 Read N
 Print N
Next
 
E_data:
Data 52,45,6000
Data 84564,412451,754125



Cette fois si, N ne porte pas le $ car ce n'est pas une chaine.

Attention si c'est des valeurs/variable codé sur 32 bits (des longs), il faut bien utiliser le sigle & à la fin de la variable.
n&

Datalong et Dataint
Si vous voulez (et ça sera souvent le cas) des donnée de type int ou long vous pouvez utiliser les Dataint et Datalong, cela marche pareil que les data simples. Pour lire ce type de data c'est tous simplement Readint et Readlong. Exemple avec notre suite numérique.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
Restore E_Data
 
For X=0 to 5
 Readint N
 Print N
Next
 
E_data:
Dataint 52,45,6000
Dataint 84564,412451,754125



Note : A la place de Restore vous pouvez aussi utiliser Reload. Cela fait la même chose

C'est avec les Data que vous allez mémoriser dans la rom de votre cartouche les donnés brutes de votre jeu, comme l'agencement d'un niveau. Regardez un peu ce petit morceau de data pour illustrer l'exemple :


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
77
78
79
80
81
82
83
84
85
86
 
E_Map:
 
Data 1,1,1,1,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,1,0,0,1
Data 1,0,0,0,1,0,2,0,1,0,0,1
Data 1,0,0,0,1,0,0,0,0,0,0,1
Data 1,1,1,0,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,1,1,1,1,1,1,1,1,1,1,1
 
[/code
 
 
Des 0, des 1 et des 2 sur des lignes data. Chaque valeur numérique c'est un tile. Chaque ligne est une ligne horizontale.
Une zone de 12 tiles sur 11.
Je décide (arbitrairement pour l'exemple) que 0 c'est le sol, 1 le mur et 2 un coffre. Et j'a ma map !
Je dois maintenant aller chercher les données de la map pour la foutre en mémoire, et poser mes tiles en fonction de valeur tous simplement. Je vais juste vous montrer un morceau de code pour placer ça en mémoire !
 
 
 
[code]
 
Rem ******************************************************
Rem * Déclaration des variables et du tableau de mémoire *
Rem ******************************************************
 
Dim T_Ram_MAP(12,11) As Integer
Local ID_MAP As Integer,X As Integer, Y As Integer
 
 
Rem *************************
Rem * Se brancher sur E_MAP *
Rem *************************
Restore E_Map
 
Rem *******************************************************************************
Rem * Deux boucle pour lecteur et mémorisation dans le tableau de la valeur voulu *
Rem *******************************************************************************
 
For Y=0 To 10
For X=0 To 11
        Read ID_MAP
        T_Ram_Map(X,Y)=ID_MAP
 
Next
Next
 
Rem ************************
Rem * Lecteur de T_Ram_map *
Rem ************************
 
For Y=0 To 10
For X=0 To 11
        Locate Y,X
        Print T_Ram_Map(X,Y)
 
Next
Next
 
 
 
 
Rem *************************
Rem * Les données de la rom *
Rem *************************
 
E_Map:
Data 1,1,1,1,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,1,0,0,1
Data 1,0,0,0,1,0,2,0,1,0,0,1
Data 1,0,0,0,1,0,0,0,0,0,0,1
Data 1,1,1,0,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,1
Data 1,1,1,1,1,1,1,1,1,1,1,1
 
 
 



image

Voila, nous en avons fini avec les datas pour cette fois si. Vous savez quoi ? Avec tous ça vous êtes capable de débuter la création de petit jeu ou de moteur de jeu ! Le prochaine article sera un déplacement case par case d'un sprite avec collision contre les murs, Et vous savez quoi ? A l'heure actuel vous avez tout en main pour faire ça !

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