AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Combiner deux instances en une seul

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
MCpPaladian
Débutant


Messages : 29

MessageSujet: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 14:09

Bonjour,

Je faisais des petits tests sur un prototype de jeu de plate-forme, juste pour le fun, et je me suis posé un simple question. Pourrais-je faire en sorte que, si deux instances se touchent, elles se fusionnent en une seule instance.

Exemple, j'ai un objet 'obj_wall' qui fait 32x32 et il touche un autre 'obj_wall', et donc je souhaite qu'ils deviennent une seule est même instance. Le but est très simple: ça optimiserai le jeu.

Et donc je demande votre aide, car j'ai beau chercher mais je n'arrive pas à trouver la méthode pour réalisé ce truc de ouf.

merci d'avance pour votre aide.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 14:32

Si tu veux optimiser tes collisions, dans l'éditeur de sprite vire l'option collision précise et remplace par rectangle.
Tu peux aussi désactiver les objets en dehors de la view avec object_deactive_all (ou un truc du genre).
Si tu tiens vraiment a faire ton truc sans passer par des millions de sprites différents faut que t'utilise une surface que tu définie comme sprite en live, mais ca reste moins bien que les collisions en rectangle à mon avis.
Bref, tout ca pour dire que ton opti servira à pratiquement rien, garde ton énergie pour améliorer d'autres points du jeu Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 15:32

Oh sous GM si cette opti sert plutôt bien, même si j'avoue qu'elle est assez chiante a mettre en place.
Dans un zelda que je faisais a l'époque, sur un vieux pc, je me souviens que ça me permettait d'arriver a 60 fps, alors que sans ça avais bien du mal.

Apres pas besoin de prendre tous les cas de figure possible, juste les 1x2, 2x1, 2x2, 1x3, 3x1 et 3x3 ça permet de gagner pas mal.

Sinon, pour le moyen, le comment faire, bah c'est plutôt simple.
Faut créer un objet par masque, et dans leur create, tu fais un simple check.

Par ex:
#Create bloc1x1
ii = instance_place(x+1, y, bloc1x1)
if(ii != noone)
{
instance_create(x, y, bloc2x1)
with(ii) instance_destroy()
instance_destroy()
}

Et la, si t'as deux blocs 1x1 cote a cote, ça te crée un bloc 2x1.

Sinon, le sujet a été traité plusieurs fois, donc je conseille de chercher un peu sur le forum y a des systèmes déjà tout prêts.

_________________
                 
Revenir en haut Aller en bas
MCpPaladian
Débutant


Messages : 29

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 16:03

Merci pour vos réponses.

onilink a écrit:
Sinon, le sujet a été traité plusieurs fois, donc je conseille de chercher un peu sur le forum y a des systèmes déjà tout prêts.

Oups j'ai complètement oublié de faire une recherche, cependant merci à toi de m'avoir répondu.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 16:21

Vraiment ? Meme sans utiliser du pixel perfect ? C'est étonnant ca parce qu'en soit ca fait juste le temps d'une iteration en plus...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 16:26

Bah, déjà, on parle de GM Very Happy
Et ensuite, non ça fait pas juste une iteration de plus si t'as beaucoup de blocs.
Dans beaucoup de cas tu peux diviser par dix le nombre de blocs utilisé.
Après, tout dépend de la map et des blocs que t'as crée.

Puis bon, y a rarement qu'un seul objet qui fait les tests de collision, du coup sur la globalité, ça économise un nombre non négligeable d’itérations.
Surtout que selon le moteur physique, tu peux itérer plusieurs fois sur un check de collision avec un unique objet...

_________________
                 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Combiner deux instances en une seul   Mar 12 Aoû 2014 - 16:39

Razz
Mais c'est vrai, effectivement à force ca fait beaucoup ^^

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
MCpPaladian
Débutant


Messages : 29

MessageSujet: Re: Combiner deux instances en une seul   Dim 17 Aoû 2014 - 17:08

Up, j'ai trouvé une démo qui démontre ce que je souhaitais faire à la base. Regardez par ici ==> Demo optimise Objets.

Comme vous le voyez, de base, il y a 300 instances, et une fois la touche espace pressée, on passe à 47. C'est juste fou, et je voudrais savoir comment faire un tel système. Car je ne vois pas du tout comment construire ce truc de ouf. Quoique au début j'avais penser à utiliser un ds_grid ou un arrays 2d pour faire une sorte de quadrillage sur toute la room, mais je ne suis pas encore assez balèze pour y arriver.

Peut-être es-ce la bonne piste, mais j'ai besoin de l'aide de pro car là, je suis complètement largué. merci d'avance.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Combiner deux instances en une seul   Dim 17 Aoû 2014 - 17:13

Bah onilink l'a expliqué plus haut, pour chaque bloc tu regarde les autres blocs qui l'entourent et ensuite tu les changes.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
MCpPaladian
Débutant


Messages : 29

MessageSujet: Re: Combiner deux instances en une seul   Dim 17 Aoû 2014 - 18:20

Oui je sais, mais je préfère avoir un changement de taille avec un image_xscale et/ou image_yscale, plutôt que de créer un objet pour chaque taille.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Combiner deux instances en une seul   Dim 17 Aoû 2014 - 19:25

Tu pourra que avoir des trucs linéaires alors.
En gros si tu fais ilage_xscale=2 t'as une image étiré deux fois plus en largeur.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Combiner deux instances en une seul   

Revenir en haut Aller en bas
 
Combiner deux instances en une seul
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Deux larbins, un seul but.
» vivre seul à deux
» Vivre seule à deux
» Un ou deux seins par tétée?
» Léon et Gérard "tout seuls à deux"

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: