AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 [Résolu]Choix de programmation

Aller en bas 
5 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 18:30

Bonjour encore. Je voulais avoir l'avis de personnes habituées concernant mon code :

J'ai un dilemme. j'ai un ennemi dans mon jeu, que j'ai mis beaucoup de temps à faire.
Il marche très bien, mais quand j'ai codé mon personnage héros, j'ai mis beaucoup de conditions du type :
-if instance_nearest(x,y,ENNEMI).vie = 0
{
...
}

Seulement voilà, si l'objet n'est pas dans la room, le code de mon personnage bug puisqu'il ne trouve pas ces valeurs appartenant à l'ennemi absent.


Vaut il mieux que je modifie mon code, et ajouter beaucoup de lignes dedans, (vraiment beaucoup ) et des doublons genre :

if instance_exists(ENNEMI)
{
...(mon ancien code)
}
else
{
...
}
ou au contraire vaut il mieux que je laisse un objet Ennemi (qui contient beaucoup de lignes) inutile dans une room, caché, mais qui m'évite de rajouter une seule ligne.


Je pense qu'il vaut mieux coder, mais est-ce nécessaire ? Peut être que je vais en fait utiliser + de mémoire plutôt que d'avoir un ennemi fantôme dans la room qui assure le fonctionnement du code.


Dernière édition par luuu17 le Lun 14 Nov 2011 - 0:15, édité 1 fois
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 18:48

Bonjour,

Code:
if(instance_exists(ENNEMI)){
    if instance_nearest(x,y,ENNEMI).vie = 0
  {
    ...
    }
}

ou

Code:
if(!instance_exists(ENNEMI))exit;
   
if (instance_nearest(x,y,ENNEMI).vie = 0 ){
    ...
}
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 19:09

euh, je ne comprends pas du tout la réponse ^^''
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 19:20

Citation :
instance_exists(obj) Retourne s'il existe une instance de type obj. obj peut être un objet, un ID d'instance ou le mot-clé all.

En gros tu exécute ton code seulement s'il y a une instance de l’objet ENNEMI présente dans ta salle.

"exit" quitte le code de ton évènement.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 19:34

oui je sais, mais ma question est de savoir si ca vaut le coup de quasiment double le nombre de lignes ou de laisser une instance dans la room qui ne sert pas. c'est en gros vaut il mieux :

if point_distance(x,y,instance_nearest(x,y,ENNEMI).x, instance_nearest(x,y,ENNEMI).y) < 1000
{


je fais ceci


}

else
{
je fais cela ( plus loin que 1000 = meme chose que s'il l'ennemi n'existe pas)
}


dois-je englober tout ca dans un " if instance_exists(ENNEMI) " avec un else semblable ou il vaut mieux que je laisse une instance ENNEMI dans la salle ?
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 19:38

Comme je l'ai dit, tu vérifie s'il y a une instance "ennemi" dans ta salle. S'il y en a pas tu n’exécute pas ton code.
C'est plus optimisé, plus logique, plus simple, etc...

Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 20:01

oui mais je dois quand meme utiliser la partie du code qui est la même que si l'ennemi est présent mais loin.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 21:03

Pour qu'il soit loin faut qu'il soit présent ........ albinoblacksheep
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 21:58

j'ai du mal à expliquer. dans une room, il peut être présent mais loin, dans une autre, absent.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 22:09

Et? Ça ne change en rien ce que je viens de dire.... qu'il soit loin ou prêt il est présent dans les deux cas. Je ne comprend pas où est ton probléme, il y a juste une ligne à rajouter ....

Code:
if( !instance_exists(ennemi) ) exit;

S'il n'y a pas d'instance de l'objet ennemi dans la salle tout le code après cette ligne ne sera pas lut...
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 22:46

oui mais le code contient ce que doit faire le personnage dans tous les cas.

s'il existe un ennemi et que celui ci est proche, il doit faire une action, s'il est loin ou qu'il n'existe pas dans la room, il ne doit faire une autre action.


donc si mon code c'est en simplifiant :


if instance_exists(ENNEMI)
{
------if point_distance(x,y,Ennemi.x,Ennemi.y) < 150 action = 1
-------else action = 0
}

else action = 0






est-ce que je ne ferai pas aussi bien de mettre uniquement

if point_distance(x,y,Ennemi.x,Ennemi.y) < 150 action = 1
else action = 0


et d'avoir un ennemi toujours d'existant dans une room meme si on ne le voit pas ? j'obtiens la meme chose avec moins de ligne.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 22:55

Utilise les user_event.

Code:
if(instance_exists(ennemi)) user_event(0);
else user_event(1);

Ça te feras un beau code bien propre et pas d’instance qui consomme de la mémoire et qui ne sert à rien.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 23:00

user_event ? c'st quoi ça ? je vais me renseigner
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 23:20

C'est des évènements définies par l'utilisateur.

add event -> other -> user defined -> event *number*

Ces évènements ne sont exécutes qui par l'appel de ceux-ci par la fonction "user_event(num)". Ça permet entre autre d'avoir un beau code quant celui-ci est trop long.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMer 9 Nov 2011 - 23:54

jvais voir ça alors, merci en tout cas.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyJeu 10 Nov 2011 - 0:30

En gros c'est comme une fonction (sans parametres) propre a ton objet.
Comparable aux methodes C++ mais en version super limité quoi Razz

_________________
[Résolu]Choix de programmation  Runningpotato1[Résolu]Choix de programmation  TvF6GED [Résolu]Choix de programmation  MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyJeu 10 Nov 2011 - 9:11

Citation :
mais en version super limité quoi
Je dirai même plus, hyper méga super limité. Mis à part pour organiser son code et la profondeur des draw je ne sais pas trop à quoi ça peut servir tellement c'est limité. En plus quant tu appels les user_event d'un autre objet ceux-ci s’exécute sur le depth de l'appelant....
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptySam 12 Nov 2011 - 11:49

merci en tout cas. je vais essayer de voir ce que je peux faire. mais incroyable tous les trucs que je connais pas. je me sert pas des 3/4 de ce qu'on peut faire je m'en rend compte. mais grâce au ciel, ça marche quand même, mais pour combien de temps...
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptySam 12 Nov 2011 - 12:41

le temps que le code soit valide super
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyLun 14 Nov 2011 - 0:15

oui nan mais le truc c'est que je sais pas programmer moi ^^ enfin je me dépatouille avec gamemaker mais je comprend pas la moitié de ce que vous dites souvent. j'ai aucune connaissance à la base, des rudiments de C. mais j'vais essayer. J'ai un autre probleme plus grave que je vais poster car la je suis démuni.
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyLun 14 Nov 2011 - 8:27

tu peux même mettre

Code:

if( instance_exists(tonObj) && instance_nearest(tonObj).vie > 0) {
// ... ton code
}

C'est la différence entre "&" et "&&".
Si tu met seulement "&", il va calculer tous les termes de la condition et ensuite vérifier qu'ils sont tous vrais, si tu met "&&", il part de la première condition et continue jusqu'à la dernière. S'il rencontre un false, il s'arrête et n'exécute pas le code qui suit.

Donc le code ci-dessus est correct, par contre, ce ci provoquerait une erreur:

Code:

if( instance_exists(tonObj) & instance_nearest(tonObj).vie > 0) {
// ... ton code
}

car s'il n'existe pas d'instance tonObj, alors instance_nearest retournera noone et le paramêtre vie n'existera pas.

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyLun 14 Nov 2011 - 13:07

Malheureusement le gml étant mal programmé, ce que tu dit ne fonctionne pas.

Normalement un vrai langage s'arrête (pour le and) dès qu'il rencontre un false. GM lui vérifie tout...
Obligé de faire des if imbriqués >.>

(je suis sous gm6 au moment ou j'écrit ces phrases, mais je me doute que rien a été changé depuis)

_________________
[Résolu]Choix de programmation  Runningpotato1[Résolu]Choix de programmation  TvF6GED [Résolu]Choix de programmation  MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 9:51

Citation :
(je suis sous gm6 au moment ou j'écrit ces phrases, mais je me doute que rien a été changé depuis)

J'ai la 8pro et et c'est valable aussi.
exemple:
Code:
if( variable_local_exists("variable") and variable==true){}
Retourne une erreur si la variable n'existe pas. Mais si on imbrique les deux conditions ça fonctionne.
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 12:00

Ouille il me semblait que ce truc avait été réglé gha oulalalalala

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 13:22

Non mais ça va ils ont ajoutés la fonction point_distance_3d dans GM 8.1, osef du langage Yum! Yum!

_________________
[Résolu]Choix de programmation  Runningpotato1[Résolu]Choix de programmation  TvF6GED [Résolu]Choix de programmation  MdetltS
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 14:16

hahahaaha gnii gnii gnii

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 14:52

donc à quoi sert le "and" ? j'ai des tonnes de and. exemple :

if a = 1 and b = 2 and c =5

si je fais

if a = 1 && b = 2 && c = 3 il va s'arreter de lire des que a != 1 ?


j'ai énormément de lignes avec des and avec des fonctions type instance_nearest ou point_distance...
j'ai tout à y gagner donc à remplacer par des && ?


[Edit] ah donc non, moi j'ai tout imbriqué, je peux donc pas faire mieux ? le && ne change rien sous GM ?
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 15:11

&& = and
|| = or

& != and (et c'est de ça que l'on parle)

Perso moi j'utilise "and" je trouve ça plus lisible que &&.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 15:34

& != and ? le point d'exclamation est involontaire non ? != ca veut dire pas égal pourtant.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  EmptyMar 15 Nov 2011 - 15:45

"!=" veux dire "différent" donc il est volontaire Wink car "&" n'est pas du tout pareille que "&&" et donc pas pareille que "and" pour le coup.
Enfin tout ça dans la plupart des langages mais pas en GML car Yoyo Game se préoccupe peut de ces détails qui pourtant change beaucoup de choses! (ce qu'expliquait Master47)
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu]Choix de programmation  Empty
MessageSujet: Re: [Résolu]Choix de programmation    [Résolu]Choix de programmation  Empty

Revenir en haut Aller en bas
 
[Résolu]Choix de programmation
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [Résolu]Programmation GML
» Programmation
» La programmation "pro"
» Choix des touches
» Personnage Choix

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