AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez
 

 Script déplacement : jeu platforme style mario

Aller en bas 
AuteurMessage
loucheman
Très bonne participation
loucheman

Messages : 115

Script déplacement : jeu platforme style mario Empty
MessageSujet: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyDim 20 Mai 2007 - 18:39

Bonjour à tous, voici quelques scripts qui pourront vous être utiles pour vos futurs jeux de platforme genre Mario...

Voici un .gm6 mettant en vedette les scripts:
scriptplatforme.gm6 - 0.02MB

J'ai mis les scripts à la suite de ce message au cas où le lien tomberait mort...

j'espère que cela vous sera utile !

note : le script DeplacementCheckCollision sert à éviter que le personnage ne soit absorbé par un mur et VerifTouchesPesees est facultatif, c'est en fait ce qui remplsce tous les événements de touches appuyées dans mon jeu...

Loucheman





Liste des scripts à créer:
Script déplacement : jeu platforme style mario Script10


CheckCollision: Détection d'une collision dans une direction particulière (haut,bas,gauche,droite).
Code:

//Script : CheckCollision
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Verifie s'il y a collision avec un objet dans une direction précise

//argument0 : Position X à vérifier : normalement X de l'objet mais peut être différent si pour vérifier un futur mouvement par exemple
//argument1 : Position Y à vérifier
//argument2 : direction à vérifier
//            1 = droite
//            2 = haut
//            3 = gauche
//            4 = bas
//argument3 : objet à vérifier si collision
//argument4 : precice
//            true = vérification précise de la collision
//            false = vérification non précise de la collision

var ObjectCollision,X,Y;

X = argument0
Y = argument1

switch (argument2)
    {
    case 1://droite
        {
        x1 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index)  + 1
        y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index)   
        x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index)  + 1
        y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index)
        return collision_line(x1,y1,x2,y2,argument3,argument4,true)
        break
        }
    case 2://haut
        {
        x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) 
        y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index)    - 1
        x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) 
        y2 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index)    - 1
        return collision_line(x1,y1,x2,y2,argument3,argument4,true)
        break
        }
    case 3://gauche
        {
        x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index)  - 1
        y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index)   
        x2 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index)  - 1
        y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index)
        return collision_line(x1,y1,x2,y2,argument3,argument4,true)
        break
        }
    case 4://bas
        {
        x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) 
        y1 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) + 1
        x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) 
        y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) + 1
        return collision_line(x1,y1,x2,y2,argument3,argument4,true)
        break
        }
    default :
        {
        show_message("Mauvaise utilisation de la fonction CheckCollision!!!")
        }
    }

DeplacementVertiPerso

GravityInit: Initialisation du moteur de gravité pour l'objet, certaines valeurs peuvent être modifiées par l'utilisateur des scripts...
Code:
//Script GravityInit
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Initialise la gravité
//*** À mettre dans le create de l'objet... ***

//*** Constantes de base pouvant être modifiées par l'utilisateur des scripts ***
VGravite    = .8  //Gravité : plus ce chiffre est grand plus la gravité se fera sentir
VHauteur    = 96 //Hauteur du saut en pixel (valeur approx...)(jouer avec cette valeur pour obtenir le résultat désiré...)
VPeutSauterSiImpossible = false//Le perso va tenter de sauter même s'il y a un objet
                              //au dessus de lui...


//Initialisation du moteur : Ne pas toucher !!!
GravityDown() //Gravité vers le bas lors de l'initialisation

Code:
//Script GravityDown
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Met la gravité vers le bas


gravity=VGravite
gravity_direction=270


Code:
//Script GravityNone
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Supprime la gravité sur l'objet
//Exemple : quand le perso est sur le plancher...

gravity=0

Code:
//Script GravityJump
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Met la gravité vers le bas et fait sauter le perso
//(s'il n'y a pas d'objets en haut du perso : au moins
//1 bounding box doit être libre au dessus du perso pour
//qu'il puisse sauter...)

if VPeutSauterSiImpossible or not CheckCollision(x,y-32,2,Mur,false)then
    {
    gravity=VGravite
    gravity_direction=270
    vspeed = -CalculVitesseInitialeJump(VGravite,VHauteur)
    }

Code:
//Script CalculVitesseInitialeJump
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Calcul de la vitesse initiale de projection d'un corps pour qu'il
//aille à une hauteur donnee en tenant compte de la gravité
//La formule simplifiée est (calcul toujours selon angle de 90 degré...):
//    VitesseInitiale = sqrt(2 * VGratité * Hauteur)
//+sqrt(VHauteur*11.25) a été ajouté pour que le perso saute un
//peu plus haut...
 
return sqrt(argument0 * (argument1+sqrt(VHauteur*11.25)) * 2)


DeplacementHorizPerso


DeplacementInit: Initialisation du moteur de déplacement pour l'objet, certaines valeurs peuvent être modifiées par l'utilisateur des scripts...

Code:
//Script DeplacementInit
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Initialisation des variables pour les scripts de déplacement
//*** À mettre dans le create de l'objet... ***

//*** Constantes de base pouvant être modifiées par l'utilisateur des scripts ***
VPlancher              = Mur //Objet représentant le sol et/ou les murs (normalement un objet parent du mur et du sol...)()
VVitesseDeplacementMax = 5  //Vitesse horizontale maximum du perso
VitesseIncrementeSol  = .5  //Facteur d'incrémentation de la vitesse horizontale quand le perso est au sol
VitesseIncrementeAir  = .2  //Facteur d'incrémentation de la vitesse horizontale quand le perso est dans les airs (saut...)
VFriction              = .2  //Friction : plus ce chiffre est grand, plus le perso s'arrête vite quand aucune touche de direction n'est appuyée

//Initialisation : ne pas toucher...
VHspeed = 0

Code:
//Script DeplacementDroite
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//A exécuter pour que le perso se déplace vers la droite
//(mettre dans l'événement fleche droite par exemple...)
if CheckCollision(x,y,4,VPlancher,false)
//Si le perso est sur un mur, le déplacement horizontal se fait beaucoup plus vite : .5
//sinon .2
    VHspeed = min(VVitesseDeplacementMax,VHspeed + VitesseIncrementeSol)
else
    VHspeed = min(VVitesseDeplacementMax,VHspeed + VitesseIncrementeAir)
   
CalculHspeed()

Code:
//Script DeplacementGauche
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//A exécuter pour que le perso se déplace vers la droite
//(mettre dans l'événement fleche gauche par exemple...)

if CheckCollision(x,y,4,VPlancher,false)
    //Si le perso est sur un mur, le déplacement horizontal se fait
    //beaucoup plus vite : .5 sinon .2 s'il est dans les airs
    VHspeed = max(-VVitesseDeplacementMax,VHspeed - VitesseIncrementeSol)
else
    VHspeed = max(-VVitesseDeplacementMax,VHspeed - VitesseIncrementeAir)

CalculHspeed()

Code:
//Script DeplacementSaute
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//A exécuter pour que le perso se déplace vers la droite
//(mettre dans l'événement spacebar par exemple...)

GravityJump()

Code:
//Script CalculHspeed
//Par Loucheman, Crédit apprécié si vous utilisez ce script !

//Utilisé par les scripts de déplacement gauche et droite
//Ce script a été créé pour que la vitesse de l'objet puisse
//être recalculee en dehors des scripts
//Par exemple: le perso est sur un mur qui bouge de gauche à droite
//Même si l'utilisateur ne fait pas bouger le perso avec les flèches,
//le perso doit aller à la même vitesse que le mur qui bouge...

//On pourra donc recalculer la vitesse en dehors des scripts de déplacement
//en faisant comme ceci par exemple: hspeed = Mur.hspeed+VHspeed
http://Mur.hspeed est la vitesse du mur, VHspeed est la vitesse contrôlee
//par les flêches...

hspeed = VHspeed


DeplacementCheckCollision

Code:
//Vérification des collisions verticales
if vspeed = 0 and not CheckCollision(x,y+vspeed,4,VPlancher,false) then
    //Si le perso est dans le vide GravityBas et qu'il n'est pas en saut on met la gravité
    //vers le bas
    GravityDown()
else
    if vspeed > 0 and CheckCollision(x,y+vspeed,4,VPlancher,false) then
        //Si le perso est en chute et qu'il va y avoir collision au prochain step avec un Mur
        //On bouge le perso jusqu'au Mur et on stop le déplacement vertical et on met la gravité à 0
        {
        move_contact_solid(270,vspeed)
        move_outside_solid(90,2)
        vspeed=0
        GravityNone()
        }
    else
        if vspeed < 0 and CheckCollision(x,y+vspeed,2,VPlancher,false) then
            //Si le perso est en saut et qu'il va y avoir collision au prochain step avec un Mur
            //On bouge le perso jusqu'au Mur et on stop le déplacement vertical et on met la
            //gravité vers le bas
            {
            move_contact_solid(90,vspeed)
            vspeed=0
            GravityDown()
        }

//Vérification des collisions horizontales     
if hspeed > 0 and CheckCollision(x+hspeed,y,1,VPlancher,false) then
    //Si le perso est en déplacement vers la droite et qu'il va y avoir collision au prochain
    //step avec un Mur, On bouge le perso jusqu'au Mur et on stop le déplacement horizontal
    {
    move_contact_solid(0,hspeed)
    hspeed = 0
    VHspeed=0
    }
else
    if hspeed < 0 and CheckCollision(x+hspeed,y,3,VPlancher,false) then
        //Si le perso est en déplacement vers la gauche et qu'il va y avoir collision au prochain
        //step avec un Mur, On bouge le perso jusqu'au Mur et on stop le déplacement horizontal
        {
        move_contact_solid(180,hspeed)
        hspeed=0
        VHspeed=0
        }

if CheckCollision(x,y+1,4,VPlancher,false) and CheckCollision(x,y-1,4,VPlancher,false) then
    move_outside_solid(90,32)

VerifTouchesPesees

Code:
if keyboard_check_direct(vk_left) then
    {
    Dir = 1//Utilisé pour l'affichage du sprite dans Draw
    DeplacementGauche()
    }
   
if keyboard_check_direct(vk_right) then
    {
    Dir = 0 //Utilisé pour l'affichage du sprite dans Draw
    DeplacementDroite()
    }
           
if keyboard_check_direct(vk_up) and CheckCollision(x,y+1,4,VPlancher,false) then
//Si la touche flèche haut est pesée et que le perso est sur un mur JUMP!
    {   
    DeplacementSaute() 
    }

//Application de la friction si le perso est sur un mur...
ObjectMur = CheckCollision(x,y,4,Mur,false)
if ObjectMur then
    {
    hspeed = VHspeed + ObjectMur.hspeed
    if abs(hspeed - ObjectMur.hspeed) <= VFriction then
        VHspeed = 0
    else
        if hspeed > ObjectMur.hspeed then
            VHspeed -= VFriction
        else
            VHspeed += VFriction
    }
Revenir en haut Aller en bas
Gab666
Modérateur 'Zut'
Gab666

Messages : 5339
Localisation : **I move away from the mic to breathe in

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyLun 21 Mai 2007 - 18:42

Vraiment très bien super

_________________
PIS MANIAC PREND DES BAINS !
Revenir en haut Aller en bas
http://www.dermanium-online.webou.net/
Topaze22
*Excellent utilisateur*
Topaze22

Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyLun 21 Mai 2007 - 19:25

coeur

_________________
Topique pour le Projet Hello Mario en préparation.
Sorti du topique lorsque la première démo sera disponible.
Script déplacement : jeu platforme style mario Projet13
Revenir en haut Aller en bas
-X2km-
Nouveau
-X2km-

Messages : 6

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 23 Mai 2007 - 14:12

----------


Dernière édition par -X2km- le Sam 16 Nov 2013 - 10:25, édité 1 fois
Revenir en haut Aller en bas
Ragdoll
*Excellent utilisateur*
Ragdoll

Messages : 5494
Localisation : Angers, maine et loire
Projet Actuel : Rien je suis mort a l'intérieur.

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 23 Mai 2007 - 14:34

tout ce code pour un chti moteur physique oO

_________________
Dr Jango
Script déplacement : jeu platforme style mario 318
Revenir en haut Aller en bas
https://www.youtube.com/user/Inextasie
Topaze22
*Excellent utilisateur*
Topaze22

Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 23 Mai 2007 - 20:23

Pas du tout si petit, crois moi ma propre expérience Hat Le CBNA

_________________
Topique pour le Projet Hello Mario en préparation.
Sorti du topique lorsque la première démo sera disponible.
Script déplacement : jeu platforme style mario Projet13
Revenir en haut Aller en bas
loucheman
Très bonne participation
loucheman

Messages : 115

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyJeu 24 Mai 2007 - 11:44

Jango_Fett a écrit:
tout ce code pour un chti moteur physique oO

Ça paraît gros, mais j'ai beaucoup documenté... Si quelqu'un veut modifier, ce sera plus facile...

_________________
Loucheman
Revenir en haut Aller en bas
raysoft
Très bonne participation
raysoft

Messages : 116
Projet Actuel : Galac X

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 25 Juil 2007 - 18:56

T'as a mis du texte! Bravo!

_________________
Script déplacement : jeu platforme style mario 153213081009012108
http://raysoft.blog4ever.com
Revenir en haut Aller en bas
http://raysoft.blog4ever.com
Scooby Doo
Utilisateur confirmé: Rang *
Scooby Doo

Messages : 265
Localisation : Québec !

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 25 Juil 2007 - 20:45

Voila quelqu'un qui reflechis, tu sais ce qu'est une date ? 24 mai c'est presque hier ? :gniah: La prochaine fois ton commentaire sans but tu peu te le garder. ta maman ne serait pas fier...
Revenir en haut Aller en bas
http://Google.com
Invité
Invité



Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyMer 25 Juil 2007 - 21:10

lol? Que je sache c'est pas un sacrilège que de déterrer un topic, et le commentaire n'est pas sans but, puisqu'il veut le féliciter d'avoir mis des explications dans les scripts.
Revenir en haut Aller en bas
xenamart
Utilisateur confirmé: Rang ***
xenamart

Messages : 554
Localisation : sur la toile, entre google et le cbna
Projet Actuel : Rufal

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyJeu 26 Juil 2007 - 16:02

1) Depuis quand le détérage d'un sujet et mal pris sur un forum pour en plus complimenter l'auteur du topic ?

2) Trés bon boulot loucheman sa sera surement trés utile gnii

3) Juste une petite idée : Se serai pas mal de faire une lib pour les jeu de plateformes

_________________
mon seul projet en cour :
Script déplacement : jeu platforme style mario 0711251022051684689
Revenir en haut Aller en bas
http://rufal.free.fr
Wargamer
*Excellent utilisateur*
Wargamer

Messages : 6936
Projet Actuel : Bataille de cake au fruits

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyVen 27 Juil 2007 - 2:48

ca serait pas mal de le mettre en spoiler surtout et mettre un avertissement: o.OFaite gaffe au mal de têteo.O

_________________
Script déplacement : jeu platforme style mario Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Super-Mouton
*Excellent utilisateur*
Super-Mouton

Messages : 4913
Localisation : Québec

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyVen 27 Juil 2007 - 5:09

Scooby Doo a écrit:
Voila quelqu'un qui reflechis, tu sais ce qu'est une date ? 24 mai c'est presque hier ? :gniah: La prochaine fois ton commentaire sans but tu peu te le garder. ta maman ne serait pas fier...
Ouin ben tu peux aussi garder ton commentaire debord.. super ça date seulement de deux mois et son commentaire était pas inutile c'était pour dire bravo à l'auteur, j'aime bien le monde qui chialent pour rien.

_________________
Hey là tabarnak lâche ma sig sacha >=|
Script déplacement : jeu platforme style mario Balrogko6
Script déplacement : jeu platforme style mario Supermouton
Revenir en haut Aller en bas
krocko2233
Utilisateur confirmé: Rang *
krocko2233

Messages : 228
Localisation : In my dreams...

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyVen 27 Juil 2007 - 12:02

Bon j'ai jamais été fort avec les scripts mais si j'ai ien compris sa sert juste à faire les déplacements ?
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer

Messages : 6936
Projet Actuel : Bataille de cake au fruits

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyVen 27 Juil 2007 - 14:16

j'aime pas les script a loucheman moi beh
ils sont hyper utille mais ils sont hyper long kill
par contre il a été hyper simpa quand il ma donné des script sur le temps Smile (script que je comprend pas gnii )

_________________
Script déplacement : jeu platforme style mario Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
jo
*Excellent utilisateur*
jo

Messages : 4879
Localisation : CENSURE T_T
Projet Actuel : FAC

Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario EmptyVen 27 Juil 2007 - 15:28

mes scripts de deplacement : 10 lignes dans step

rire


c'est d'ailleurs pour ca que ,mon perso se plante dans le plafond, mon perso se coince dans les mur, mon perso se coince dans le sol :fete:

_________________
http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer.
Revenir en haut Aller en bas
http://psyckho.skyrock.com/
Contenu sponsorisé




Script déplacement : jeu platforme style mario Empty
MessageSujet: Re: Script déplacement : jeu platforme style mario   Script déplacement : jeu platforme style mario Empty

Revenir en haut Aller en bas
 
Script déplacement : jeu platforme style mario
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Changer le style vestimentaire de mes filles..
» bébé de 8 mois en déplacement
» [Style] Kotekote kei
» Indemnités de déplacement et rétrocession?
» [Style] Gyaru (photos)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: