AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Instance Random

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Daerrius
Pas mal


Messages : 32

MessageSujet: Instance Random   Sam 25 Oct 2014 - 8:20

Bonjour, je voudrais créer un spawn d'arbres aléatoire sur la map, donc j'utilise ça : instance_create(random(room_width),random(room_height), obj_arbre);
mais le problème c'est que parfois, certains arbres se spawn sur eux même, comment faire pour les spawns a une distance minimum l'un de l'autre ? Smile
et aussi, j'ai copier tellement de fois cette ligne pour pouvoir en spawn beaucoup que quand je modifie le texte ça ram, c'est possible de dire qu'il m'en spawn 100 en une ligne ? merci Smile
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 9:00

Tu fais en sorte que si un arbre entre en collision avec un autre à sa création, il change de place ou il est supprimé (plus facile).

Pour l'autre question, utilise une boucle repeat, un tuto est disponible ici : http://cbna.forumactif.com/t10923-apprendre-le-gml-4-les-boucles

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
Daerrius
Pas mal


Messages : 32

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 9:19

Merci beaucoup, c'est exactement ce que je cherchais Very Happy
Revenir en haut Aller en bas
Daerrius
Pas mal


Messages : 32

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 9:27

ah mince, du coup si je pose 10 000 arbres et que je fais supprimer ou déplacer en collision ça rame a mort ^^, il faudrait un système dans le code pour dire une distance minimum :/
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 11:06

Si ça rame à mort, peut-être que tu l'as pas mis dans le Create...
Sinon pour les distances : if distance_to_object(obj_arbre) < distance Smile

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
Mobi
Utilisateur confirmé: Rang ****
avatar

Messages : 1256
Localisation : Dijon

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 11:25

10 000 arbres c'est beaucoup trop pour ce pauvre GM

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

Messages : 1432

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 11:47

Je te conseille d'optimiser tout ça (en désactivant les instances en dehors de la vue par exemple).
Mais ça rame seulement au démarrage ou tout le temps ?

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 12:46

Nan mais 10 000 objets ca peut que ramer en permanence... Déjà faire un for qui fait des draw_sprite() dans un seul objet me paraitrai plus optimisé que d'utiliser 10 000 objets, mais dans tous les cas c'est juste pas possible Yum!
Fais des maps plus petites ou alors utilise une structure en chunk, mais ca me parait compliqué pour débuter...

_________________
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: Instance Random   Sam 25 Oct 2014 - 13:20

10k objets, si tu les désactives en dehors de la view ça devrait passer, c'est pas non plus la mort même sous GM.
Après, faut bien faire gaffe a pas faire d'update de depth dedans ou trucs gourmands du genre.

_________________
                 
Revenir en haut Aller en bas
Daerrius
Pas mal


Messages : 32

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 19:12

tout ça en réponses ! Smile oui 10000 ma map fait 30 000 x 30 000, c'est un jeu de survie sur une très grand map, alors je vais tester tout ce que vous me dites, soit désactivé en dehors de la map ou en faire un qui spawn des sprites, mais je sais pas si ça fonctionnerait vu que l'arbre est pas mal scripter tout ça, merci beaucoup, je test et je reviendrais vous dire si tout ce passe bien Smile
Revenir en haut Aller en bas
Daerrius
Pas mal


Messages : 32

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 19:14

Merci pour les distances, et oui je l'ai bien mis dans un create, ça ram soit énormément soit carrément un "out of memory"
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 19:35

Et si tu essayais de faire ça en plusieurs steps ? (pour n steps de chargement, chaque step serait n fois moins lourds que le step fatal)
puis attention au double-post Wink

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
Daerrius
Pas mal


Messages : 32

MessageSujet: Re: Instance Random   Sam 25 Oct 2014 - 21:04

(désolé pour le double post Wink ), je viens de tester, j'ai fais créer 10 arbres a chaque step, et au bout d'un certain nombre, le couper, mais c'est tellement long à charger Sad, surtout que j'ai exactement 8000 arbres, mais il va y avoir des buissons, des bâtiments tout ça, ça va être horriblement long.
Déjà j'ai gagné énormément d'fps en désactivant les instances hors de la view.
En fait tout va bien maintenant, sauf que, le système d'espace entre chaque objets ne marche pas finalement, donc j'ai voulu faire que s'il entre en collision ils se suppriment, mais je pensais que ça fonctionnerait seulement dans la view, mais non, les collisions fonctionnent même hors de la view donc ca ram a mort.
Il faudrait un système d'activer les collisions seulement dans la view, mais je crois que j'en demande trop ^^
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Instance Random   Dim 26 Oct 2014 - 8:10

Les arbres ne bougent pas, tu pourrais tester les collisions seulement dans le chargement, en rajoutant cette étape à la fin, non ?
(je pensais pas à 1000 steps de chargement, genre 20 ou 30 par exemple Smile )

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
glcraft
Utilisateur confirmé: Rang *****
avatar

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

MessageSujet: Re: Instance Random   Dim 26 Oct 2014 - 12:02

mais dans le jeu, tu crées des arbres constamment ou que lors du chargement du jeu ?
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Instance Random   Dim 26 Oct 2014 - 12:54

Ca reste que mon avis, mais si t'as des problèmes avec des arbres, qu'est ce que ca va être quand tu va devoir faire une IA :/
Ca sert à rien de faire une map aussi grande pour commencer, fait un truc standard, ia déjà pas mal de trucs chauds à faire pour un jeu de ce type sans qu'en plus tu doive te faire ***** avec ca... Une fois que t'aura compris comment marche GM, que t'aura un truc jouable, là tu pourra essayer d'agrandir ta map et d'optimiser tout ca.

Et de ce que je sais, il vérifie pas les collisions pour les objets désactivés.

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


Messages : 32

MessageSujet: Re: Instance Random   Dim 26 Oct 2014 - 18:00

Le jeu crée des arbres seulement au lancement, mais ne lag plus du tout, c'est juste quand je veux supprimer ceux qui se touche, mais bon vous avez raison, la map est surement vraiment trop grande, je pense en faire plusieurs petites, après savoir si c'est possible de pouvoir changé de map quand on arrive au bout et arrivé au même endroit de l'autre coté quoi, on verra bien Smile
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: Re: Instance Random   Dim 26 Oct 2014 - 18:45

Daerrius a écrit:
tout ça en réponses ! Smile oui 10000 ma map fait 30 000 x 30 000, c'est un jeu de survie sur une très grand map, alors je vais tester tout ce que vous me dites, soit désactivé en dehors de la map ou en faire un qui spawn des sprites, mais je sais pas si ça fonctionnerait vu que l'arbre est pas mal scripter tout ça, merci beaucoup, je test et je reviendrais vous dire si tout ce passe bien Smile
Fais un système de chunk comme minecraft (même si c'est un peu chaud au début, mais les résultats se font sentir)

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Instance Random   

Revenir en haut Aller en bas
 
Instance Random
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» kabila-deploie-ses-oreilles-electroniques-en-rdc-par-le-dispositif-random-desc

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: