| Combiner deux instances en une seul | |
|
|
Auteur | Message |
---|
MCpPaladian Débutant
Messages : 29
| Sujet: Combiner deux instances en une seul Mar 12 Aoû 2014 - 16: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. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 16: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 _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 17: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. |
|
| |
MCpPaladian Débutant
Messages : 29
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 18: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. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 18: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.
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 18:26 | |
| Bah, déjà, on parle de GM 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... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Combiner deux instances en une seul Mar 12 Aoû 2014 - 18:39 | |
| 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.
|
|
| |
MCpPaladian Débutant
Messages : 29
| Sujet: Re: Combiner deux instances en une seul Dim 17 Aoû 2014 - 19: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. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Combiner deux instances en une seul Dim 17 Aoû 2014 - 19: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.
|
|
| |
MCpPaladian Débutant
Messages : 29
| Sujet: Re: Combiner deux instances en une seul Dim 17 Aoû 2014 - 20: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. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Combiner deux instances en une seul Dim 17 Aoû 2014 - 21: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.
|
|
| |
Contenu sponsorisé
| Sujet: Re: Combiner deux instances en une seul | |
| |
|
| |
| Combiner deux instances en une seul | |
|