AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal
-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

 

 Zelda room transition (ou tout comme...)

Aller en bas 
5 participants
AuteurMessage
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 19:10

Bonsoir à tous !

Toujours sur mon rogue-like, je m'attaque maintenant à mes changements de rooms.
Seulement je suis un peu bloqué... d'où ma présence ici :p

En gros, le jeu se passe comme dans un zelda premier du nom.
Une salle rectangulaire, quatre portes aux points cardinaux, et quand le joueur passe une porte après avoir tué tous les monstres de la room, il est envoyé vers une nouvelle room qui se trouve à côté. La disposition des rooms est aléatoire et faite en début de partie.

Aux dernières nouvelles, dans GMS, toutes les animations de transition ont été purement et simplement dégagées... une décision que j'ai du mal à comprendre, mais qui doit sûrement être explicable... par quelqu'un...
Bref, je suis de bonne volonté, mais je vais devoir prendre mes petites papates pour recoder des transitions à la main!
Sauf que quoi qui dont où comment??

La première question que je me pose est la suivante:
est-il préférable de créer une GRANDE room contenant toutes mes petites rooms disposées de façon aléatoire, et de faire bouger la "caméra" lors d'une transition, ou bien dois-je plutôt faire toutes mes rooms et réellement coder la transition entre une room et une autre?

Dans le premier cas, est-il possible de faire mes room de la dimension normal de celles-ci (genre 1920x1080) puis d'avoir une "room géante" (genre 19200x10800 pour 10 salles) dans laquelle seront disposées aléatoirement dix rooms d'après celles que j'ai crée ?

Et dans le second cas, comment faire ça, car je ne vois vraiment pas de moyen de faire une transition type "slide" entre deux rooms du jeu?

La moindre petite piste serait vraiment apprécié car j'avoue que je pédale vraiment dans la semoule à ce niveau :/

Merci beaucoup de vos retours! Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
Cristalnoir14
Pas mal
Cristalnoir14


Messages : 30

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 19:17

Je sais qu'une grosse room, ca fait ramer game maker. A part si tu déactive celle ci lorsque tu en a pas besoin. Je conseille donc plusieurs rooms selon ta façon de faire.
PS: Je suis interressé par le code des transitions, please happy1
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 19:20

Je suis également intéressé par ce fameux code, ou des pistes sur comment manipuler les rooms :p

Sinon c'est en effet logique. Les mobs étant persistants, une room géante mettrait "en scène" beaucoup de choses pour rien. Après c'est sûr que ça aurait été bien plus simple à faire je pense... :/
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
Cristalnoir14
Pas mal
Cristalnoir14


Messages : 30

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 19:30

Le code pour changer de room a la zelda, j'en ai un qui est bien adapté. Mais je voudrais avec l'effet de transition.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 19:52

J'ai ça qui traîne si ça peut aider:
http://host-a.net/u/onilink_/ZeldaOOSview.7z

_________________
Zelda room transition (ou tout comme...) Runningpotato1Zelda room transition (ou tout comme...) TvF6GED Zelda room transition (ou tout comme...) MdetltS
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:10

onilink_, je me permets de te le dire entre mecs et de façon parfaitement viril, je t'aime ! coeur

C'est exactement ce que je cherche à faire ! Smile

Bon, il s'agit bien de la version room géante avec petites rooms à l'intérieur, mais je vais voir comment je peux adapter le code pour qu'il convienne à ce que je veux faire.
Peut-être désactiver les instances dans une zone suppérieur à deux "rooms" autour du personnage et les réactiver à son approche pour éviter de surcharger la mémoire...
Je vais voir ça.
Mais c'est top d'avoir un exemple sur lequel s'appuyer.
Merci beaucoup !

Je laisse ouvert pour tenir au courant des avancées et si jamais je bute sur un nouvel élément dans cette voie Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
onilink_
Modérateur
onilink_


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

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:15

Bah franchement, pour surcharger la mémoire ou les perfs, si tu désactives les instances hors view, faut y aller vraiment très fort.
Puis un donjon zelda like ça fait pas la taille d'une worldmap Pokemonquoi...

A la limite, une technique que j'avais utilisé pour faire justement une worldmap Pokemon, c'est de détruire tous les murs et recréer uniquement ceux dans le 'chunk' ou t'es (donc toi la sale courante).
Et à ce niveau, une technique sympa d'automatisation consiste a utiliser les tiles pour savoir ou créer les murs.
Par exemple tu fais un tile layer pour les sols, un tile layer pour les solides, et a partir de ça tu crées juste un script qui parcours les tiles et crées des murs la ou y a besoin.
Y aussi une version a base d'array pour rendre constant la création des murs, mais je doute que t'ai besoin d'aller jusque la... (puis les array GM ça pue un peu).

_________________
Zelda room transition (ou tout comme...) Runningpotato1Zelda room transition (ou tout comme...) TvF6GED Zelda room transition (ou tout comme...) MdetltS
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:20

En effet, je ne devrai pas avoir besoin d'aller jusque là.
Et c'est vrai qu'en désactivant les mobs hors view, je ne devrai avoir aucun soucis.
En réalité, chaque étage fait 5x5 chunks... donc ça va pas chercher bien loin non plus :/

Le seul truc qui m'arrangerai beaucoup beaucoup, c'est de faire mes rooms à part, puis de les disposer aléatoirement selon des coordonnées dans la "grande room" comme des chunks. Si je trouve le moyen de faire ça, ce serait du caviar...
Il n'y a pas un moyen de copier le contenu d'une room aux coordonnée d'une autre room de façon automatique par hasard? :p
Je vais me pencher là dessus, ce serait juste parfait !
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
onilink_
Modérateur
onilink_


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

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:23

Y a moyen, mais c'est un peu du bricolage.
Puis il faut faire ce qu'on appelle du baking (c-a-d des précalculs ou tu génères des fichiers externes, afin que l'utilisateur n'ai pas besoin d'avoir les calculs qui se refont a chaque lancement de partie).

Dans l'idée, tu fais un script qui save une salle dans un format facile a exploiter. Tu saves toutes tes rooms.
Ensuite, tu load tout ça et tu construit ta grande map a partir des données chargées.

_________________
Zelda room transition (ou tout comme...) Runningpotato1Zelda room transition (ou tout comme...) TvF6GED Zelda room transition (ou tout comme...) MdetltS
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:27

Oh, oui en effet, ça pourrait être jouable. Après en effet ça a l'air d'être un peu bricolo-bricolette^^
Je vais me pencher sur la question pour voir comment je fonctionne à ce niveau.

En tout cas merci encore, me reposer sur un existant va me permettre d'avancer bien plus sereinement, car jusque là, j'étais dans le flou total Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
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.

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyLun 9 Fév 2015 - 20:36

Salut, j'ai un engine Zelda 1 opérationnel si tu veux.

-Il gère les changements de salles avec désactivations/réactivations des portes et mobs.
-Il y a aussi des portes à conditions (tuer tout les mobs, bombes, toujours fermé dans un sens (les clefs sont pas implantées) )
-La gestion de la manette est prise en compte et configurable avec un fichier .INI
-Le mob "chauve souris" est implanté avec l'IA adéquat et la possibilité de le tuer.
-La création des murs est automatisées et les portes conditionnées aussi.
-La pause (menu) est implantée aussi avec désactivation des mobs et sons FMOD
-Niveau items implantés il y a "épée", "Boomerang", "Arc"
-Les bombes tues les ennemies et ouvres les murs conditionnés (mur haut et mur gauche de la première salle)

Le projet date un peut donc il est possible qu'il y ai d'autres trucs dont je me souvienne plus.
Et normalement tout est commenté en français.

Edit:http://host-a.net/u/Caly/Zelda1Engine.zip
Avec le lien c'est mieux.

Re-edit: les touches sont les flèches, A Z et ENTER
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é
||--------

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMar 10 Fév 2015 - 0:16

une methode est de prendre en screen la room courante (soit avec les surfaces ou par une autre facon Razz) puis de faire une transition avec celle ci et la room courante, sachant que le screen est desormais la room precedente
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 13:01

Merci Caly pour les ressources! Smile
Je garde ça sans le coude pour le moment car je ne voudrai pas copier/coller du code non plus.
Le but de ce jeu est d'avoir quelque chose de fini, mais qui soit surtout un excellent exercice d'apprentissage.
Mais c'est chouette car plus j'ai de ressources, et plus j'ai d'exemples sur lesquels m'appuyer! Smile

glcraft > merci pour cette méthode. J'avoue n'y avoir pas pensé. Ceci-dit, pour le moment je suis parti sur la création de l'étage entier et de jouer avec la caméra pour les transitions. Bien que je ne m'en sorte pas complètement ^^

Justement, j'ai quelques soucis, et je n'arrive pas du tout à comprendre pourquoi...
Je suis en train de m'arracher les cheveux depuis des heures maintenant et un coup de main ne serait pas de trop :p

Je vais tenter de m'exprimer au mieux, de mettre mon code proprement, et des screens pour illustrer mes propos.
Le post risque d'être long, mais je n'ai pas trop le choix n'arrivant pas à localiser avec précision le soucis.

Voici une pièce de mon étage telle qu'elle apparaît normalement :

http://puu.sh/fLS4P/6184363b65.jpg

J'ai des flambeaux au mur qui éclairent la pièce, et une "aura" autour de mon personnage qui éclaire autour de lui.
De base, voici le code pour les lumières :

OBJET LIGHT ENGINE
Create
Code:

globalvar light;
light = surface_create(view_wview,view_hview);

Step
Code:

surface_set_target(light);
draw_set_color(c_ltgray);
draw_rectangle(0,0,view_wview,view_hview,false);

surface_reset_target();

Draw
Code:

draw_set_blend_mode(bm_subtract);
draw_surface(light,view_xview,view_yview);
draw_set_blend_mode(bm_normal);

OBJET PERSONNAGE
End Step
Code:

size = 576;
draw_set_blend_mode(bm_subtract);
surface_set_target(light);
draw_ellipse_color(x-(size/2)+48,y-(size/2)+48,x+(size/2)+48,y+(size/2)+48,$83bae7,c_black,false);

surface_reset_target();
draw_set_blend_mode(bm_normal);

Donc un système de lumière très basique.
Je ne détaille pas ce qu'il y a dans les flambeaux au mur puisque c'est typiquement la même chose à la seule différente que les lumières sont fixes alors que celle du personne suit ses coordonnée lors des déplacements.

Là où ça commence à se gâter, c'est quand j'inclue les transitions.
De base, ma room fait 8160x5280, et j'utilise bien sûr la view in room calibré à 1632x1056, soit la taille d'une pièce.

Voici le code que j'ai mit d'après tes ressources onilink_ :

OBJET PERSONNAGE
Create
Code:

roomWid = 1632;
roomHei = 1056;
caseX = x div roomWid;
caseY = y div roomHei;
ocaseX = caseX;
ocaseY = caseY;
camMove = false;

Step
Code:

event_user(0);
//room_caption = "(" + string(caseX) + "; " + string(caseY) + ")";

if(ocaseX - caseX < 0)
{
    camMove = true;
    camDir = 0; // right
    camMovePx = 1632;
}

else if(ocaseX - caseX > 0)
{
    camMove = true;
    camDir = 2; // left
    camMovePx = 1632;
}

if(ocaseY - caseY < 0)
{
    camMove = true;
    camDir = 3; // down
    camMovePx = 1056;
}

else if(ocaseY - caseY > 0)
{
    camMove = true;
    camDir = 1; // up
    camMovePx = 1056;
}

if(!camMove)
{
    view_xview = x - 1632/2;
    view_yview = y - 1056/2;

    if(view_xview < caseX * roomWid)
    {
        view_xview = caseX * roomWid;
    }

    if(view_xview + 1632 > (caseX+1) * roomWid)
    {
        view_xview = (caseX+1) * roomWid - 1632;
    }

    if(view_yview < caseY * roomHei)
    {
        view_yview = caseY * roomHei;
    }
   
    if(view_yview + 1056 > (caseY+1) * roomHei)
    {
      view_yview = (caseY+1) * roomHei - 1056;
    }
}

else
{
    if(camMovePx>0)
    {
        if(camDir == 0)
        {
            view_xview += 40;
            camMovePx -= 40;
        }
       
        if(camDir == 2)
        {
            view_xview -= 40;
            camMovePx -= 40;
        }
       
        if(camDir == 3)
        {
            view_yview += 40;
            camMovePx -= 40;
        }
       
        if(camDir == 1)
        {
            view_yview -= 40;
            camMovePx -= 40;
        }
    }
   
    if(camMovePx <= 0)
    {
        camMove = false;
    }
}

User Defined
Code:

ocaseX = caseX;
ocaseY = caseY;

caseX = x div roomWid;
caseY = y div roomHei;

Le soucis étant le suivant :
Lorsque je suis dans la pièce qui se trouve tout en haut à gauche, tout est nikel !
Par contre, chaque fois que je change de pièce, soit vers le bas, soit vers la droite, la lumière autour de mon personnage se décale d'une room de plus que la direction dans laquelle je vais...
Pour montrer clairement ce que ça me fait, voici ce que ça donne si je règle mon view in room sur 8160x5280, soit la taille maximal de mon étage (juste pour illustrer) :

Voici lorsque je suis en haut à gauche, tout est bon :
http://puu.sh/fLTdx/a12bd16757.png
On voit bien que dans la pièce la plus haute et la plus à gauche, ma lumière est bien aux bonnes coordonnées.

Voici maintenant si je me place dans une room une position plus à droite et plus bas :
http://puu.sh/fLTlr/83e3d39796.png
J'obtient un duplicata de mon background pour combler le vide (je suppose que c'est normal), mais aussi un duplicata de mes lumières même sans flambeaux (moins normal à mon avis...).
Mais le plus gênant évidemment, est que la lumière de mon personnage s'est décalé d'une position vers la droite et vers le bas en plus. Et plus je me me déplace en changeant de room, et plus ma lumière se décale...
Et elle revient progressivement à mesure que je reviens vers la salle en haut à gauche.

Bref, je patauge comme un taré, et j'ai beau chercher depuis des heures, impossible de trouver comment remédier à ça...

j'avoue qu'un coup de patte serait vraiment le bienvenue! Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 18:55

ok !
C'est bon, après une journée à chercher, j'ai enfin réussi à comprendre ce qui merdouillait ><

En plus c'était parfaitement débile...
La création de la zone noire pour le light engine partait toujours des coordonnées de la vue, sauf que ces coordonnées évoluaient avec les transitions.
Du coup au lieu de cibler la fenêtre en cours j'ai dessiné la zone noir sur toute la room et problème réglé...
Je suis trop débile ><

[Edit] Bon par contre j'ai un soucis au niveau de la désactivation des instances... :$
Après avoir regardé la doc, j'ai bien compris comment activer/désactiver les instances hors d'une zone ou dans une zone; ou bien comment activer/désactiver les instance d'un objet.
D'ailleurs le code d'exemple est très parlant :

Code:

  instance_activate_all();
  instance_deactivate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],false,true);

Par contre, il n'existe aucune fonction combinant les deux???... Oo
Moi en dehors de ma zone, j'ai mon moteur de lumière, et tout un tas de truc.
Ce que je voudrais, c'est mixer les deux fonctions pour pouvoir uniquement désactiver les instances de type monstre en dehors de la zone, et garder tout le reste.
Sauf que je ne vois pas du tout comment mixer le tout. J'ai l'impression que ce n'est pas possible?
Un petit coup de pouce à ce sujet? Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
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.

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 21:21

Regarde dans le Zelda Engine que j'ai posté, je désactive tout hors vus sauf l'objet Main/Sound/Gui/Player

Edit :
J'ai ouvert le projet pour dire où regarder.
Tout est géré dans le step de Main (c'est assez sale d'ailleurs, j'aurais du faire une fonction).

Voici un passage pour l'ouverture du menu :
Code:

if( ctrl(BT_START, PRESSED) ){
    //Si le menu se ferme :
        if( Main.inventory_is_open == false ){
            instance_deactivate_all(true);
            instance_activate_object(Player);
            instance_activate_object(Gui);
            instance_activate_object(Camera);
            instance_activate_region( map_current_x, map_current_y, VIEW_WIDTH, VIEW_HEIGHT, true );
        
    //Si le menu s'ouvre.
        }else{
            instance_deactivate_all(true);
            instance_activate_object(Player);
            instance_activate_object(Gui);
            instance_activate_object(Camera);
        }        
}
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 21:37

Merci Caly pour ta réponse.
Par contre, c'est peut être moi qui suis complètement à la ramasse, mais le zip posté précédemment, j'ai un exécutable avec des ressources, mais pas de projet GM.
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
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.

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 21:58

Il y a un .EXE et un .GMK normalement.

Edit:

Oups! tu as raison j'ai oublié de le mettre dans le package :
http://host-a.net/u/Caly/Zelda1Engine.zip

Voici le nouveau liens avec le GMK inclus, dsl.
Revenir en haut Aller en bas
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyMer 11 Fév 2015 - 22:59

En effet, il y a bien le .gmk dans celui-ci.
Je me disais aussi p2

Je regarderai bien ça demain matin au calme.
merci beaucoup, je te tiens au jus de mes avancées sur le sujet Smile
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
Black_cat
Bonne participation
Black_cat


Messages : 71
Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyJeu 12 Fév 2015 - 11:02

Bon ok, je vois comment tu as fait ça.
En fait on commence par tout désactiver, et ensuite on active uniquement ce dont on a besoin.

Par contre je n'arrive pas à faire fonctionner ça comme je veux, très sûrement à cause de ma non compréhension de la désactivation des instances :/

Voici un bout de code pour mes portes :

Code:
with (obj_animDoorUp)
{
    if (instance_exists(obj_monstreParent)) // si des monstres existent
    {
        if (image_index == 5)
        {
            image_speed = 0;
        }
    }
    else if (!instance_exists(obj_monstreParent)) // si aucun monstre n'est détecté
    {
        image_speed = 1;
        if (image_index == 10)
        {
            image_speed = 0;
            action_change_object(obj_doorOpenUp_world_01,true); // on charge la porte sans collision
        }
    }
}

Rien de bien foufou. Si des monstres sont détectés dans la room, les portes restent fermées, et si il n'y a plus de monstres, alors on ouvre les portes.

Du coup, voici le bout de code que j'ai mit pour la désactivation des instances hors champs :

Code:
instance_deactivate_object(obj_monstreParent);
instance_activate_region(x-200,y-200,400,400,true);

Là encore rien de dingue...
Je désactive tous les objets monstreParents (donc toutes les instances enfants avec), puis j'active tout ce qui est dans la pièce (enfin là j'ai juste fait une zone autour du joueur pour tester voir pourquoi ça marchait pas comme je le voulais).

Le résultat est bon pour ce qui est de l'activation des monstres. Lorsqu'ils sont hors de ma zone, ils sont désactivés et invisibles, et lorsque je suis suffisamment prés, alors ils apparaissent.
Là où ça pose problème, c'est l'ouverture des portes...
En fait, si je lance la room et qu'un monstre est directement dans ma zone de détection, c'est bien prit en compte et les portes se ferment. Si je m'éloigne et qu'il n'est plus dans ma zone de détection, il est désactivé et les portes s'ouvrent de nouveau.
Sauf que si je reviens et qu'il entre de nouveau dans ma zone de détection, il apparaît, mais les portes restent fermées (???).
Et si je lance la room et que le monstre n'est pas dans ma zone de détection, les portes s'ouvrent direct (normal), mais lorsque je m'approche et qu'il apparaît, les portes ne se referment pas (???).

Bref, je ne comprends pas du tout ce comportement, certainement dû à ma méconnaissance de l'activation/désactivation des instances en GML.
Les portes marchaient parfaitement avant d'ajouter la désactivation des instances hors champs de vision.
Quelqu'un pour m'aiguiller?... Smile

[EDIT] : désolé pour ce post inutile, c'est moi qui suis complètement à la ramasse...
Tout fonctionne parfaitement... à condition que je gère les respawn dans ma view, ce qui n'est pas le cas actuellement.
Il faut juste que j'adapte le code de détection pour les portes rien de plus.
Encore désolé pour ces questions débiles.
A force d'avoir le nez dedans, je fini par ne plus voir les choses :/
Revenir en haut Aller en bas
https://www.youtube.com/user/sundayindiegames
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.

Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) EmptyJeu 12 Fév 2015 - 15:32

Pour la zone/instances à activer/désactiver tu peut utiliser une astuce qui est vraiment cool que j'utilise souvent (pressente dans cet engine également).

Tu créer un objet "Camera" avec un mask opaque de petite taille (16/16 dans ce gmk) et tu procède comme ceci au create :

Code:

//Défini le masque de collision pour savoir si
//les instance sont dans la vue.
    image_xscale = (sprite_width/VIEW_WIDTH)*VIEW_WIDTH;
    image_yscale = (sprite_height/VIEW_HEIGHT)*VIEW_HEIGHT;

Et tu positionne ta vue sur cette instance.
Ce qui te permettra de savoir à tout instant si une instance est dans la vue (en collision avec la Camera), ça simplifie grandement la tache de beaucoup de détails Smile
Revenir en haut Aller en bas
Contenu sponsorisé





Zelda room transition (ou tout comme...) Empty
MessageSujet: Re: Zelda room transition (ou tout comme...)   Zelda room transition (ou tout comme...) Empty

Revenir en haut Aller en bas
 
Zelda room transition (ou tout comme...)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» transition de room, aidez moi
» Dialogue de rpg ( comme zelda ) = pb
» [Résolu] room transition persistent problème
» sytème de room a la zelda
» changement de room a la zelda/metroid

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: