AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 HELP créer un niveau via une image

Aller en bas 
+3
Asu
Kabcorp
MCpPaladian
7 participants
AuteurMessage
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 11:55

Bonjour à tous,

J'aimerai générer des niveaux dans mon jeu, de façon aléatoire, mais basé sur des images (ou des chunks). En gros, l'idée serais de créer une image d'un certaine taille, qui correspondrais en faite, à un morceau de niveau. J'utilise par exemple un code couleur, pour dire que, tout ce qui est en noir, correspond à un mur, et le vert, du vide, admettons.

Et donc, le soucis, c'est que je ne sais pas comment récupérer ce genre d'information sur une image pour pouvoir ensuite, les mettre dans un grid afin de faire ce que je veux. Conclusion, ne sachant pas trop par ou commencer, je sollicite votre aide.

Merci d'avance gnii
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 16:00

Il faut balayer t'on image avec un retour de couleur.

Code:
//Level_create()
draw_sprite(spr_level,0,0,0)//Affiche l'image
screen_refresh()//Rafraichi l'ecran pour voir l'image
for(Y=0;Y<height;Y+=block_size)//Balaye en vertical
{
  for(X=0;X<width;X+=block_size)//Balaye en horizontal
  {
     col=draw_get_pixel(X,Y)//retourne la couleur de ton pixel
     switch(col)//créer les objets en fonctions de ta couleur de pixel
     {
        case c_black: instance_create(X,Y,o_wall) break
        case c_white: instance_create(X,Y,o_cequetuveu) break
        case c_green: instance_create(X,Y,o_cequetuveu2) break
     }
  }
}

C'est la solution simple mais draw_get_pixel() ext tres lent!

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 16:57

Merci pour ton aide.
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
Asu


Messages : 895

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 19:25

Attention, avec GM, *_get_pixel c'est très lent... A utiliser avec parcimonie, seulement lors des temps de chargement...

_________________
‎<‎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
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 19:32

J'ai déjà utilisé draw_get_pixel et effectivement, y'en a pour plusieurs minutes sur une grande image.
Tu ferais mieux de te baser sur une bitmap.

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 19:52

Mass a écrit:
J'ai déjà utilisé draw_get_pixel et effectivement, y'en a pour plusieurs minutes sur une grande image.
Tu ferais mieux de te baser sur une bitmap.

Effectivement, il y a aussi cette solution pour les grandes images.

Je pense qu'une DLL en C qui retourne la couleur d'un pixel ne devrais pas être compliquée à faire... Il en existe une mais tout les liens sont morts. Même sur le site gamemaker.cc snif

EDIT: http://gmc.yoyogames.com/index.php?showtopic=455787 <= une DLL qui retourne la couleur d'un pixel aussi hors de la fenêtre GM.

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyLun 12 Oct 2015 - 22:24

Pas dit que la DLL soit plus rapide bien au contraire, à tout les coups elle fait un screen de l'image avec BitBlt pour chopper le pixel, ce qui est très long...

EDIT : puis 16 bits par canal c'est quoi le délire ?

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyMar 13 Oct 2015 - 12:12

Bon et bien j'ai réussit à faire ce que je voulais. Je me base sur une image (chunk) de 32x32. Ensuite je créer mon level en me basant sur un grid. La room fait la taille du chunk, multiplier par 32, comme ça, une case de 1px sur mon chunk correspond à une case de 32x32 px dans ma room, qui me permet de positionner mes tiles, aux aussi de 32x32. Ensuite j'ai intégré mon petit système d'autotile, et hop, voila le résultat:

HELP créer un niveau via une image 1444730946-exemple-lvl01

HELP créer un niveau via une image 1444730946-exemple-lvl02

Et juste une instance dans la room.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyMar 13 Oct 2015 - 19:30

Super clinoeuil

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
hyper
Utilisateur confirmé: Rang ****
hyper


Messages : 1457
Localisation : près de Nantes
Projet Actuel : Super Note Aventure

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyMer 14 Oct 2015 - 20:19

Ah ben c'est très bien comme ça ! Ça me rappelle le système qu'a planet centauri pour les donjons happy1

_________________
côt.
Revenir en haut Aller en bas
https://cagibi.itch.io/
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyMer 14 Oct 2015 - 22:32

merci à vous Smile. je dois dire que je suis très enthousiaste depuis que ça marche, car je bosse dessus pour l'améliorer petit à petit, et j'avance bien sur mon petit projet.

Actuellement, j'ai un chunk uniquement conçu pour le spawn du player, et le reste du niveau sur une map de test de 4096 sur 4096 pixels. Le seul problème qu'il faudra que j'arrive à régler si possible, c'est de ralentir le temps de latence lors du chargement de la map. Car plus la map est vaste, et plus le loading est ........... crade !!
Revenir en haut Aller en bas
Mobi
Utilisateur confirmé: Rang ****
Mobi


Messages : 1256
Localisation : Dijon

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyMer 14 Oct 2015 - 22:36

Je dirais même, le système de starbound ...

_________________
HELP créer un niveau via une image Penguin
Revenir en haut Aller en bas
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 0:04

Après, c'est surtout un entrainement pour moi, afin de mieux comprendre comment fonctionne tel ou tel mécanique de jeu. je dois avouer que la génération aléatoire c'est assez difficile à faire correctement.
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 9:37

Charger tous les chunks en mémoire n'est de toute façon pas une solution viable dans un openworld. Ca finit par prendre trop de place si la map est trop grande.

La solution commune est de charger les chunks en live, de façon à ne garder que ceux actifs en mémoire. Le problème dans ton cas, c'est que ton chargement est très long, et GM ne supporte pas les threads.
Ce qui peut être faisable, c'est de charger un chunk "au long cours" : au lieu de faire une boucle qui charge tout d'un coup, tu fais X itérations par step. C'est plus long mais c'est transparent pour le joueur.
Par contre j'ai pas dit que c'était simple gnii

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
onilink_
Modérateur
onilink_


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

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 11:14

Si les chunks sont assez petits même sous GM tu peux les charger en live sans trop de soucis.
Bon par contre le format 'image' est peut être pas le plus adapté.

Il y a bien longtemps j'avais fait un moteur de pokemon et j'utilisais des chaines de caractères (ça au moins GM les gère rapidement).
Et donc j'avais fais un programme qui convertissais mes maps en texte, pour ensuite utiliser ça tranquillement.

_________________
HELP créer un niveau via une image Runningpotato1HELP créer un niveau via une image TvF6GED HELP créer un niveau via une image MdetltS
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 12:01

Mass a écrit:
GM ne supporte pas les threads.
Nativement non mais il y a un taré qui l'a rendu possible =)
http://gmc.yoyogames.com/index.php?showtopic=390517

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
onilink_
Modérateur
onilink_


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

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 12:15

Ahah j'aime comme les gens galèrent a rendre GM un minimum utilisable a coup de gros sparadrap.

_________________
HELP créer un niveau via une image Runningpotato1HELP créer un niveau via une image TvF6GED HELP créer un niveau via une image MdetltS
Revenir en haut Aller en bas
MCpPaladian
Débutant



Messages : 29

HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image EmptyJeu 15 Oct 2015 - 13:12

onilink_ a écrit:
Si les chunks sont assez petits même sous GM tu peux les charger en live sans trop de soucis.
Bon par contre le format 'image' est peut être pas le plus adapté.

Il y a bien longtemps j'avais fait un moteur de pokemon et j'utilisais des chaines de caractères (ça au moins GM les gère rapidement).
Et donc j'avais fais un programme qui convertissais mes maps en texte, pour ensuite utiliser ça tranquillement.

C'est marrant que tu en parle car depuis ce matin justement je me suis dit qu'avec des strings se sera plus sympa, et rapide surtout. Et j'ai vu que dans le source code de speluky, le dev à aussi utilisé la méthode des strings Donc je bosse dessus. Mais j'ai un peu de mal à m'en sortir pour le moment.

Après pour répondre globalement à tous, j'ai d'abord choisit de générer par rapport à une image, pour voir un peu la lenteur du truc et c'est vrai que, dés que je dépasse une map de 8192x8192 le temps de chargement et de plus en plus long.

Chez moi, en 6 secondes j'ai une map de 8192x8192, mais ça passe à 20 ou 30 secondes sur du 16384x16384 donc forcement, dans l'hypothèse ou je voudrais faire un open world, ça serais trop crado.
Revenir en haut Aller en bas
Contenu sponsorisé





HELP créer un niveau via une image Empty
MessageSujet: Re: HELP créer un niveau via une image   HELP créer un niveau via une image Empty

Revenir en haut Aller en bas
 
HELP créer un niveau via une image
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Création de niveau .txt
» coment mètre des son dans un film image par image?
» mettre une image en sphere type image planet en planet ronde
» animation image par image
» Le niveau de la 3D

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