AccueilFAQRechercherS'enregistrerConnexion
 

Correction et amélioration de mon 1er script

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Map_Style
Timide
Timide


Sexe:Masculin
Inscrit le : 13 Juil 2008
Messages : 71
Programme utilisé (Gm/RmXp/...) : Tout ce qui est neuf !

MessageSujet: Correction et amélioration de mon 1er script   Lun 21 Juil - 22:56

Salut à tous !

Selon l'avis de certains j'ai aretté le D&D pour commencer le GML...

Comme vous vous en doutez j'ai un problème :

Pas de syntaxe c'est déja sa.

Code:
script 1 : Initialisation des variables

image_speed=0.2
Cours_Droite=Naruto_Move_Droite
Cours_Gauche=Naruto_Move_Gauche
Debout_Droite=Naruto_Stance_Droite
Debout_Gauche=Naruto_Stance_Gauche
Saut_Haut_Droite=Naruto_Saut_Up_Droit
Saut_Haut_Gauche=Naruto_Saut_Up_Gauche
Saut_Bas_Droite=Naruto_Saut_Down_Droit
Saut_Bas_Gauche=Naruto_Saut_Down_Gauche
position=1



Code:
script 2 : Gestion du personnage


if keyboard_check(vk_left)
{
position=0
hspeed=-1
}
if keyboard_check(vk_right)
{
position=1
hspeed=1
}
if hspeed>0
{
image_index=Cours_Droite
}
if hspeed<0
{
image_index=Cours_Gauche
}
if vspeed<0 and hspeed>0 
{
image_index=Saut_Haut_Droite
}
if vspeed<0 and hspeed<0
{
image_index=Saut_Haut_Gauche
}
if vspeed>0 and hspeed>0 
{
image_index=Saut_Bas_Droite
}
if vspeed>0 and hspeed<0
{
image_index=Saut_Bas_Gauche
}
if position=0
{
image_index=Debout_Gauche
}
if position=1
{
image_index=Debout_Droite
}

 


C'est long et extrêmement pas optimisé.
Mais je vois pas d'effet.

Y'a rien sauf que mon perso s'arette pas (je vais utiliser la fonction keyboard_check_release mais dites moi si je me trompe) et y'a pas de changement au niveau de sprites...

Voila merci d'avance à ceux qui ont tout lu :D
Revenir en haut Aller en bas
Xierra54
Admin - .: el traductor :.
Admin - .: el traductor :.


Sexe:Masculin
Age : 49
Inscrit le : 13 Aoû 2005
Messages : 7902
Programme utilisé (Gm/RmXp/...) : GM (6.1 et 7 enregistrées), Purebasic (démo)
Etudes : Supérieures
Loisirs : ordinateur

MessageSujet: Re: Correction et amélioration de mon 1er script   Lun 21 Juil - 23:14

Je n'ai pas testé tes scripts mais 1 premier conseil.
Evite d'écrire ceci :

Code:
if hspeed>0
{
image_index=Cours_Droite
}
if hspeed<0
{
image_index=Cours_Gauche
}
if vspeed<0 and hspeed>0 
{
image_index=Saut_Haut_Droite
...
}


Ecris plutôt quelque chose comme cela (c'est plus clair, en tout cas pour la plupart des programmeurs) :

L'instruction Switch
Dans un certain nombre de situations, vous
souhaiterez effectuer une action en fonction d'une valeur particulière. Vous
pouvez faire cela en utilisant quelques instructions IF mais il est plus
facile d'utiliser l'instruction Switch. Une instruction Switch se
présente sous la forme suivante :
<blockquote>switch ()
{
case : ; ... ; break;
case : ; ... ; break;
...
default: ; ...
}
</blockquote>
Voici comment cela fonctionne. En premier lieu, l'expression est exécutée.
Ensuite, elle est comparée avec les résultats des différentes expressions
situées après les instructions Case. L'exécution se poursuit après la
première instruction Case en cas d'inégalité, jusqu'à ce que
l'instruction Break soit rencontrée. Si aucune instruction Case ne
posséde la bonne valeur, l'exécution continue après l'instruction default
(il n'est pas obligatoire d'avoir une instruction default). Veuillez
noter que plusieurs instructions Case peuvent être placées dans le même
bloc d'instructions. Aussi, l'instruction Break n'est pas nécessaire.
S'il n'existe pas d'instruction Break, l'exécution se poursuivra
simplement à la prochaine instruction Case.
Exemple
Le programme suivant effectue une action selon la touche
pressée au clavier.
<blockquote>switch (keyboard_key)
{
case vk_left:
case vk_numpad4:
x -= 4; break;
case vk_right:
case vk_numpad6:
x += 4; break;
}
</blockquote>
_________________
Revenir en haut Aller en bas
Map_Style
Timide
Timide


Sexe:Masculin
Inscrit le : 13 Juil 2008
Messages : 71
Programme utilisé (Gm/RmXp/...) : Tout ce qui est neuf !

MessageSujet: Re: Correction et amélioration de mon 1er script   Lun 21 Juil - 23:27

Génial !

Des cours de programmations sur mesure...

J'essaye cette manière et j'édite mon script !

Merci pour votre rapidité et votre professionalisme. ^^
Revenir en haut Aller en bas
Xierra54
Admin - .: el traductor :.
Admin - .: el traductor :.


Sexe:Masculin
Age : 49
Inscrit le : 13 Aoû 2005
Messages : 7902
Programme utilisé (Gm/RmXp/...) : GM (6.1 et 7 enregistrées), Purebasic (démo)
Etudes : Supérieures
Loisirs : ordinateur

MessageSujet: Re: Correction et amélioration de mon 1er script   Lun 21 Juil - 23:34

De rien, c'est tout naturel.
_________________
Revenir en haut Aller en bas
Map_Style
Timide
Timide


Sexe:Masculin
Inscrit le : 13 Juil 2008
Messages : 71
Programme utilisé (Gm/RmXp/...) : Tout ce qui est neuf !

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 1:56

Euh... Jveux pas être lourd mais si quelqu'un pourrait réecrire un bout du code plus haut en version "switch" sa serait sympa car j'ai pas parfaitement compris...

^^ Merci


_
Revenir en haut Aller en bas
Fireranger
Maitre absolu adjoint
Maitre absolu adjoint


Sexe:Masculin
Age : 15
Inscrit le : 22 Nov 2007
Messages : 672
Programme utilisé (Gm/RmXp/...) : Game Maker 7 PRO, Visual Basic 9.0, Visual C++ et Code::Blocks

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 3:57

exemple :
Code:
switch(keyboard_key)
{case vk_left:
{position = 0;
hspeed = -1;
sprite_index = spr_gauche;
break;}
case vk_right:
{position = 1;
hspeed = 1;
sprite_index = spr_droite;
break;}
default : {break;}}

_________________
Guten Tag von Deutschland ^^
Revenir en haut Aller en bas
Liang
Maitre absolu adjoint
Maitre absolu adjoint


Sexe:Masculin
Age : 16
Inscrit le : 28 Fév 2007
Messages : 764
Programme utilisé (Gm/RmXp/...) : Game Maker 6.1 register (merci à quelqu'un !!), RPG Maker, Photoshop (un peu).
Etudes : --
Loisirs : Guitare, Game maker, assez fan de DotA en ce moment ^^

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 13:07

Il ne faut pas mettre "image_index" suivi d'un nom de sprite, mais "sprite_index" !
Image_index=x initialise ton sprite à la subimage x !
Revenir en haut Aller en bas
Map_Style
Timide
Timide


Sexe:Masculin
Inscrit le : 13 Juil 2008
Messages : 71
Programme utilisé (Gm/RmXp/...) : Tout ce qui est neuf !

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 13:08

Merci beaucoup !

C'est plus clair maintenant... Mais comment je fais pour "verifier" les vitesses ?

Peut-être :
Code:
 switch (hspeed)
{case hspeed>0:
{sprite_index=spr_droite; break; }
 case hspeed<0:
{sprite_index=spr_gauche; break;}}


Autre questions :
-Comment traduire "si la vitesse H est superieure à 0 et si la vitesse V est supérieure à 0", changer de sprite en sprite "personnage qui tombe vers la droite"

-case vk_left, permet d'identifier si le joueur appuie sur la flèche gauche.
Comment faire pour identifier si il la relâche et donc que le personnage s'arrête.

Merci pour toutes vos reponses :D
Revenir en haut Aller en bas
Fireranger
Maitre absolu adjoint
Maitre absolu adjoint


Sexe:Masculin
Age : 15
Inscrit le : 22 Nov 2007
Messages : 672
Programme utilisé (Gm/RmXp/...) : Game Maker 7 PRO, Visual Basic 9.0, Visual C++ et Code::Blocks

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 18:02

soit tu utilise tout simplement lorsque vk_left = true tu avance, ou tu dis si vk_left est pressé tu lui donne une vitesse et tu l'enleve quand il relache. Personnelement, je préfère juste une fois :
Code:
if keyboard_check(vk_left)
{x-=4}
if keyboard_check(vk_right)
{x+=4}
if xprevious<x && yprevious < y //si il va vers la gauche et il tombe
{...}


Aussi, je ne pense pas que switch accepte ton code (selon une valeur, tu change, mais je ne pense pas que tu peux mettre des équations...)
_________________
Guten Tag von Deutschland ^^
Revenir en haut Aller en bas
Map_Style
Timide
Timide


Sexe:Masculin
Inscrit le : 13 Juil 2008
Messages : 71
Programme utilisé (Gm/RmXp/...) : Tout ce qui est neuf !

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 19:49

Vous avez l'air de bien connaître le GML...

Fireranger a écrit:

if xprevious<x && yprevious < y


Tu peux m'expliquer chaque element s'il te plaît ?
Revenir en haut Aller en bas
Fireranger
Maitre absolu adjoint
Maitre absolu adjoint


Sexe:Masculin
Age : 15
Inscrit le : 22 Nov 2007
Messages : 672
Programme utilisé (Gm/RmXp/...) : Game Maker 7 PRO, Visual Basic 9.0, Visual C++ et Code::Blocks

MessageSujet: Re: Correction et amélioration de mon 1er script   Mar 22 Juil - 23:27

x = position sur l'abcisse;
y = position sur l'ordonnée;
xprevious -> previous x = dernier x;
yprevious -> previous y = dernier y;
symbole && c'est l'équivalent de "and" ou "et" en francais
_________________
Guten Tag von Deutschland ^^
Revenir en haut Aller en bas

Correction et amélioration de mon 1er script

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Game Maker Zone :: Zone : Game Maker :: Game Maker - Problèmes :: GM - Problèmes : Niveau moyen-