AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Rendre un background transparent au passage d'un personnage

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
tchicoheckard
Nouveau


Messages : 5

MessageSujet: Rendre un background transparent au passage d'un personnage   Jeu 25 Fév 2016 - 19:42

Bonjour à tous,

Je découvre GM petit à petit, en bidouillant, depuis quelques temps, mais là je bloque. Sur un jeu 2d basique vue du dessus, je voudrais que lorsque le joueur passe sous un décor (par exemple un pont ou un balcon), un cercle transparent se forme sur ce décor, laissant apparaître le personnage et son environnement proche. Je me disais peut-être qu'en utilisant les views, il pourrait y avoir une solution (vu que le cercle transparent doit suivre les déplacements du joueur).
Mais ce n'est pas tout. En bidouillant les layers, j'ai fait une pièce avec un escalier et un balcon. Mon personnage passe sous ce balcon (celui cité plus haut gnii ). Mais je voudrais qu'il passe dessus une fois qu'il a monté les escalier (il se retrouve à l'étage). Un truc genre "si le personnage passe cette ligne, changer la profondeur du layer".

Merci d'avance pour votre aide
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Rendre un background transparent au passage d'un personnage   Ven 26 Fév 2016 - 8:22

Ce que tu veux faire est assez complexe en réalité.

Pour les collisions en fonction du layer/étage, la solution la plus simple reste d'avoir 2 types d'objets solides avec des sprites qui peuvent se chevaucher pour simplifier l'edition de la carte.
T'auras un collider pour le premier plan et un collider pour le second.

Tu crées une fonction placeFreeLayer avec dedans
Code:
var layer;
layer = argument2;
if(layer == 0) {
  return !place_meeting(argument0, argument1, collider_layer0)
}
else {
  return !place_meeting(argument0, argument1, collider_layer1)
}
return false

Dans ton personnage tu crées ainsi une variable current_layer que tu passeras a la fonction ainsi:
if(placeFreeLayer(x+1, y, current_layer)) { // move right ...

Il te faut bien entendu un autre type d'objet, qui changera le current_layer du personnage s'il passe dessus, pour changer de layer si tu passes par ex sous ou sur un pont.


Pour le cercle transparent qui se découpe la ça deviens bien plus compliqué, il faut afficher le layer ou appliquer l'effet dans une surface, puis ensuite a l'aide de blend mode effacer le rond que tu souhaites, puis ensuite afficher la surface dans le bon ordre pour qu'elle soit affichée au dessus de l'autre plan...
Enfin bref sous GM c'est un peu le bordel.

_________________
                 
Revenir en haut Aller en bas
tchicoheckard
Nouveau


Messages : 5

MessageSujet: Re: Rendre un background transparent au passage d'un personnage   Lun 29 Fév 2016 - 15:25

Merci pour ton aide!

En effet, je laisse tomber l'idée du cercle transparent. Par contre, j'ai réussi à faire 2 étages dans ma room, en changeant la depth du perso quand il passe les escaliers, dans un sens et dans l'autre.

Merci encore
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Rendre un background transparent au passage d'un personnage   

Revenir en haut Aller en bas
 
Rendre un background transparent au passage d'un personnage
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Rendre le fond transparent
» cristal de roche plus transparent
» Passage à la tenue d'été à la Flottille 22F
» passage au "lit de grand" ?
» Comment se préparer au passage d'un cyclone, typhon, ouragan.

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: