Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Page 1 sur 1 • Partagez
Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Bonjour Bonsoir , peu importe, Voici un petit (euphémisme) tutoriel sur comment créer des objets sur script.
En effet, vous avez été habituer à la programmation orientée objet, à GM, ou alors vous voulez juste savoir comment déplacer un bonhomme, et du coup vous vous demandez surement comment gérer des objets avec script. Nous allons utilisés une première méthode avec les listes (on utiliseras les objets officiels plus tard).
- Savoir comment utiliser les listes (narmol)
- Savoir utiliser les fichiers externe (les .script)
- Savoir comment utiliser SCRIPT (encore plus narmol)
- Avoir de la musique (ouais parce que au bout d'un moment c'est long chiant et répétitif , alors des fois faut passer le temps ...)
ATENTION: N'utiliser cette méthode que si c'est un objet qui est prévus pour être en nombre sur l'écran. Bah ouai parce que si tu fait des liste juste pour stocker une variable... bah autant faire avec des variable et en 1 seul fichier.
Bon, on vas commencer par créer les listes:
Parce que ma méthode est à chier, ça te vas? En effet c'est un des problème de cette méthode, c'est que du coup il faut faire une liste pour chaque "variable" propre à l'objet (et un autre c'est que ça prend vachement de fichiers .script comme on va le voir). Et comme il y en auras plusieurs, bah autant faire une listes pour stocker plein de variable
Morgan m'informe dans l'oreille qu'on peut se démerder à faire des listes de listes, il n'a qu'a allez se faire voir avec son truc hyper complexe, non mais!
BREF, on en était où? Ah oui:
Donc nous avons créer nos listes , chouette ! Maintenant on vas les détruire.
WHAAAT?
Ouais t'as bien entendus, on vas les détruire!
En effet, on a besoin de les détruire, pour libérer l'espace sur la RAM et éviter de se retrouver avec des débordements de mémoire. Et puis, vaut mieux le faire dès le débuts sinon on oublie rapidement de le faire après (c'est l'expérience (hem hem) qui parle).
et donc c'est l'heure du petit code bien sale:
Retournons maintenant dans notre program.script et rajoutons la ligne "function" pour appeler notre nouveau fichier.
Ce qui donne :
Et voilà nous avons un code qui permet de créer les objets! ... mais on peut toujours pas les utiliser ce qui est en soit vachement bête.On vas alors régler ce problème maintenant.
3Le périple: Le déplacement du personnage.
Bien, on peut créer le personnage, mais on ne peut toujours pas l'afficher (c'est triste :'( ). Nous allons remédié à ce petit problème, mais d'abords, c'est l'heure des explications !
Mais pourquoi ?
Parce que Taggle. Je vais vous expliquez pourquoi on as créer plusieurs listes, et comment va fonctionner le code qu'on vas mettre pour les déplacements. On vas y allez par un tableau:
Vous voyez la colonne rouge (ne parler pas derrière votre écran, je sait que vous le voyez) et bien elle correspond à notre objet. En effet, notre objets est bel est bien en plusieurs listes: on stocke la positions X de l'objet dans la liste pour les X et la position Y dans la listes des Y (là c'est le moment de vous dire que je vous prends pour des imbéciles). Mais la chose qu'on en commun les valeurs qu'on vient de placer dans la listes, ce sont les places des valeurs dans celles-ci, comme on l'a vue dans le tableau. .Maintenant le but de cette partie, c'est de vous apprendre à "relier" ces listes afin d'utiliser l'objet, et ça grâce à la magie du for
Morgan me dit encore à l'oreille qu'on peut se débrouiller avec un while, il peut retourner forniquer devant son écran
Bon, retournons coder, et créons un nouveau fichier et appeler comme vous le voulez encore.
Je préfère personnellement appeler les fichiers comme tel: createMachin pour le premier, drawMachin pour le 2ème et destroyMachin pour le 3ème qu'on verras plus tard encore
et donc nous allons nous occuper enfin de notre for. En premier lieu on initialise la variable(normale), on cherche ensuite pour tout les objets existant(c'est moi compliquer que ça n'y parait) et enfin on incrémente:
Voilà, je vous l'avez dit que se serait plus simple. Étant donner que les deux liste qu'on as partagent le même nombre de valeurs dans la listes, autant vérifié pour une seule liste simplement. Quand au
Bien ! Maintenant on vas passer au choses sérieuses: l'affichage.Et pour faire l'affichage (ce seras un carré bien dégueulasse), il faut prendre les valeurs X et Y des listes qu'on a stocker plus tôt.Et pour se faire ,la petite ligne magique ,et vous allez en bouffer de cette fonction avec cette méthode,c'est celle là:
Pourquoi x_temp?
Parce que nous avons besoin de faire une variable temporaire pour stocker provisoirement les variables en cours de traitement. Pour faire simple, cette variable est comme une barrette RAM, le processeur (le programme) demande de traiter une variable(donc la valeur de la liste concernée), il la stocke dans la RAM (x_temp), qui la traite et la renvois au processeur. Bah là c'est pareil.Faisons ensuite en sorte que l'objet soit afficher avec un rectangle bien dégueulasse. donc on récupère la valeur Y et on dessine un carré basique.
Et enfin on déplace ce magnifique carré
Et donc là ça fonctionne, seulement si vous oubliez pas de mettre la fonction qu'on vient de créer dans le code principale.
En effet, vous avez été habituer à la programmation orientée objet, à GM, ou alors vous voulez juste savoir comment déplacer un bonhomme, et du coup vous vous demandez surement comment gérer des objets avec script. Nous allons utilisés une première méthode avec les listes (on utiliseras les objets officiels plus tard).
PRÉREQUIS
- Savoir utiliser le for (c'est presque le plus important)[Lien]- Savoir comment utiliser les listes (narmol)
- Savoir utiliser les fichiers externe (les .script)
- Savoir comment utiliser SCRIPT (encore plus narmol)
- Avoir de la musique (ouais parce que au bout d'un moment c'est long chiant et répétitif , alors des fois faut passer le temps ...)
ATENTION: N'utiliser cette méthode que si c'est un objet qui est prévus pour être en nombre sur l'écran. Bah ouai parce que si tu fait des liste juste pour stocker une variable... bah autant faire avec des variable et en 1 seul fichier.
1- Le Début: la créations des listes
Parce qu'il faut bien un début à notre périple, on vas créer une liste... ouais c'est super évident, mais laisse moi faire. Bon parce que on as besoin d'exemple concret, on veut un petit bonhomme (je ne fournie aucun sprite) qui se déplace sur l'écran. Simple me dirait vous... pas faux.Bon, on vas commencer par créer les listes:
- Code:
if event_start()
{
Personage_x = ds_list_create();
Personage_y = ds_list_create();
}
Parce que ma méthode est à chier, ça te vas? En effet c'est un des problème de cette méthode, c'est que du coup il faut faire une liste pour chaque "variable" propre à l'objet (et un autre c'est que ça prend vachement de fichiers .script comme on va le voir). Et comme il y en auras plusieurs, bah autant faire une listes pour stocker plein de variable
Morgan m'informe dans l'oreille qu'on peut se démerder à faire des listes de listes, il n'a qu'a allez se faire voir avec son truc hyper complexe, non mais!
BREF, on en était où? Ah oui:
- Code:
if event_start()
{
Personage_x = ds_list_create();
Personage_y = ds_list_create();
}
Donc nous avons créer nos listes , chouette ! Maintenant on vas les détruire.
WHAAAT?
Ouais t'as bien entendus, on vas les détruire!
- Code:
if event_end()
{
ds_list_destroy(Personage_x);
ds_list_destroy(Personage_y);
}
En effet, on a besoin de les détruire, pour libérer l'espace sur la RAM et éviter de se retrouver avec des débordements de mémoire. Et puis, vaut mieux le faire dès le débuts sinon on oublie rapidement de le faire après (c'est l'expérience (hem hem) qui parle).
2- La Genèse: la créations du personnage
Bah ouais parce que le pauvre il vas pas se créer tout seul (de mémoire hein), donc faut bien le créer non? Bon c'est pas compliquer de toute façon. En premier lieu, on créé un nouveau fichier .script (vous l'appeler comme vous voulez, je serais pas derrière vous toute ma vie (parce que ça me ferait chier pour être franc)), ensuite on vas faire en sorte de rajouter des valeurs de base, qu'on modifiera plus tard (bah le but c'est pas de le faire avancer?)et donc c'est l'heure du petit code bien sale:
- Code:
// a mettre dans un .script à part
ds_list_add(personnage_x,argument0);
ds_list_add(personnage_y,argument1);
Retournons maintenant dans notre program.script et rajoutons la ligne "function" pour appeler notre nouveau fichier.
Ce qui donne :
- Code:
if event_start()
{
personnage_x = ds_list_create();
personnage_y = ds_list_create();
}
if keyboard_check_pressed(vk_enter)
{
function("nom_de_votre_fichier.script",424,242);
}
if event_end()
{
ds_list_destroy(personnage_x);
ds_list_destroy(personnage_y);
}
Et voilà nous avons un code qui permet de créer les objets! ... mais on peut toujours pas les utiliser ce qui est en soit vachement bête.On vas alors régler ce problème maintenant.
3Le périple: Le déplacement du personnage.
Bien, on peut créer le personnage, mais on ne peut toujours pas l'afficher (c'est triste :'( ). Nous allons remédié à ce petit problème, mais d'abords, c'est l'heure des explications !
Mais pourquoi ?
Parce que Taggle. Je vais vous expliquez pourquoi on as créer plusieurs listes, et comment va fonctionner le code qu'on vas mettre pour les déplacements. On vas y allez par un tableau:
ID des objets (i) | 1 | 2 | 3 | 4 |
personnage_x | 424 | 234 | 567 | 135 |
personnage_y | 242 | 432 | 764 | 246 |
Vous voyez la colonne rouge (ne parler pas derrière votre écran, je sait que vous le voyez) et bien elle correspond à notre objet. En effet, notre objets est bel est bien en plusieurs listes: on stocke la positions X de l'objet dans la liste pour les X et la position Y dans la listes des Y (là c'est le moment de vous dire que je vous prends pour des imbéciles). Mais la chose qu'on en commun les valeurs qu'on vient de placer dans la listes, ce sont les places des valeurs dans celles-ci, comme on l'a vue dans le tableau. .Maintenant le but de cette partie, c'est de vous apprendre à "relier" ces listes afin d'utiliser l'objet, et ça grâce à la magie du for
Morgan me dit encore à l'oreille qu'on peut se débrouiller avec un while, il peut retourner forniquer devant son écran
Bon, retournons coder, et créons un nouveau fichier et appeler comme vous le voulez encore.
Je préfère personnellement appeler les fichiers comme tel: createMachin pour le premier, drawMachin pour le 2ème et destroyMachin pour le 3ème qu'on verras plus tard encore
et donc nous allons nous occuper enfin de notre for. En premier lieu on initialise la variable(normale), on cherche ensuite pour tout les objets existant(c'est moi compliquer que ça n'y parait) et enfin on incrémente:
- Code:
for(i=0;i<ds_list_size(personnage_x);i+=1)
{
// le code du personnage
}
Voilà, je vous l'avez dit que se serait plus simple. Étant donner que les deux liste qu'on as partagent le même nombre de valeurs dans la listes, autant vérifié pour une seule liste simplement. Quand au
- Code:
i<ds_list_size(personnage_x)
Bien ! Maintenant on vas passer au choses sérieuses: l'affichage.Et pour faire l'affichage (ce seras un carré bien dégueulasse), il faut prendre les valeurs X et Y des listes qu'on a stocker plus tôt.Et pour se faire ,la petite ligne magique ,et vous allez en bouffer de cette fonction avec cette méthode,c'est celle là:
- Code:
for(i=0;i<ds_list_size(personnage_x)i+=1)
{
x_temp = ds_list_find_value(personnage_x,i)
}
Pourquoi x_temp?
Parce que nous avons besoin de faire une variable temporaire pour stocker provisoirement les variables en cours de traitement. Pour faire simple, cette variable est comme une barrette RAM, le processeur (le programme) demande de traiter une variable(donc la valeur de la liste concernée), il la stocke dans la RAM (x_temp), qui la traite et la renvois au processeur. Bah là c'est pareil.Faisons ensuite en sorte que l'objet soit afficher avec un rectangle bien dégueulasse. donc on récupère la valeur Y et on dessine un carré basique.
- Code:
for(i=0;i<ds_list_size(personnage_x)i+=1)
{
x_temp = ds_list_find_value(personnage_x,i);
y_temp = ds_list_find_value(personnage_y,i);
draw_rectangle(x_temp-3;y_temp-3,x_temp+3,y_temp+3,0);
}
Et enfin on déplace ce magnifique carré
- Code:
for(i=0;i<ds_list_size(personnage_x);i+=1)
{
x_temp = ds_list_find_value(personnage_x,i);
y_temp = ds_list_find_value(personnage_y,i);
x_temp += 5;
y_temp+= 6;
draw_rectangle(x_temp-3;y_temp-3,x_temp+3,y_temp+3,0);
}
- Code:
for(i=0;i<ds_list_size(personnage_x);i+=1)
{
x_temp = ds_list_find_value(personnage_x,i);
y_temp = ds_list_find_value(personnage_y,i);
x_temp += 5;
y_temp+= 6;
draw_rectangle(x_temp-3;y_temp-3,x_temp+3,y_temp+3,0);
ds_list_replace(personnage_x,i,x_temp);
ds_list_replace(personnage_y,i,y_temp);
}
Et donc là ça fonctionne, seulement si vous oubliez pas de mettre la fonction qu'on vient de créer dans le code principale.
- Code:
if event_start()
{
personnage_x = ds_list_create();
personnage_y = ds_list_create();
}
if keyboard_check_pressed(vk_enter)
{
function("nom_de_votre_fichier.script",424,242);
}
function("nom_de_votre_deuxième_fichier_pour_afficher_l'objet.script");
if event_end()
{
ds_list_destroy(personnage_x);
ds_list_destroy(personnage_y);
}
UltraBill- Expert de Script (2D, IA et DLL)
- Messages : 45
Date d'inscription : 29/06/2013
Age : 26
Localisation : pas loin de Fort Boyard
Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Wow balaise le tuto o_O
En plus je le trouve très bien expliqué !
En plus je le trouve très bien expliqué !
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Merci, et c'est pas fini XD
UltraBill- Expert de Script (2D, IA et DLL)
- Messages : 45
Date d'inscription : 29/06/2013
Age : 26
Localisation : pas loin de Fort Boyard
Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Plus que les interractions avec d'autre objets ^^ !
SiiKOZ- Expert de Script (2D)
- Messages : 22
Date d'inscription : 12/02/2013
Localisation : Entre le clavier et le siege.
Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Yeah super le tuto sa me permets d'avancé dans mes projet !
PierreM46- Expert de Script (3D)
- Messages : 69
Date d'inscription : 16/02/2013
Age : 25
Localisation : Cahors
Projet(s)
Niveau de connaissances dans Script: Confirmé
Spécialité: Programmeur
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Merci . La 2eme partie arrive prochainement avec la destruction et l'interaction inter-objet. ça va être dur lourd
Au passage je le ferait dans un autre topic parce que celui là va être surcharger ,et donc illisible XD
Au passage je le ferait dans un autre topic parce que celui là va être surcharger ,et donc illisible XD
UltraBill- Expert de Script (2D, IA et DLL)
- Messages : 45
Date d'inscription : 29/06/2013
Age : 26
Localisation : pas loin de Fort Boyard
Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur
Re: Objets sur Script: Méthode des listes: Partie-1: La genèse, le Périple et le sandwich à la bite
Morgan9195 a écrit:J'ai hâte
Moi aussi !
Sujets similaires
» Objets sur Script: Méthode des listes: Partie 2: Michael Bay et Interaction sexuelle
» Programmer sur Script (partie 8)
» Programmer sur Script (partie 10)
» Programmer sur Script (partie 11)
» Programmer sur Script (partie 12)
» Programmer sur Script (partie 8)
» Programmer sur Script (partie 10)
» Programmer sur Script (partie 11)
» Programmer sur Script (partie 12)
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum