Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Sam 21 Fév 2015 - 11:14

Bonjour,

Ca fait un moment que je lis la ''MAGNIFIQUE" aide AGS traduit par le bienfaiteur de l'humanité qu'est Kitai et y'a une rubrique qui me pose un peu question, c'est celle des calques.

Quelqu'un pourrait m'expliquer comment ça fonctionne clairement, comment ça se code et quelles sont les possibilités ?

J'ai plusieurs envie et je ne sais pas si le calque répond à mes besoins.

Je voudrais pouvoir proposer une version, JOUR/ une version NUIT de mes rooms, en fonction de l'heure. Est-il possible alors d'afficher un claque sur le ciel , pour le remplacer par une nuit étoilée par exemple à un certain moment de la journée ? Ou bien, faut-il y mieux proposer un Background différent (d'ailleurs, comment techniquement ça se programmerait ?)

Je voudrais afficher un petit compteur nombres sur les objets que je peux avoir en quantités. L'idée serait afficher un petit chiffre sur l'image de l'objet quand on ouvre le Gui inventaire.
Le calque serait aussi mon ami ? Si oui, comment faire ?


Merci d'avance.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2430

Date d'inscription : 01/08/2006


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Dim 22 Fév 2015 - 16:28

Salut filoulefilou,

Techniquement les calques sont pas très différents des GUI : ce sont des objets qui vont être affichés à l'écran au-dessus de tout le reste (mais pas au-dessus des GUI justement). Seulement l'utilisation est pas la même.

Dans ton cas je pense qu'utiliser un deuxième arrière-plan serait effectivement une meilleure idée. Pour ajouter un second arrière-plan, tu vas simplement choisir "Import a new background" dans la liste déroulante qui affiche "Main background" dans l'éditeur de pièce. Ça aura pour effet immédiat d'animer ton arrière-plan en alternant automatiquement entre les deux images. Je ne sais plus comment tu désactives ça, peut-être qu'il y a une case à décocher, ou bien peut-être qu'il faut passer la valeur 0 à la propriété BackgroundAnimationDelay.
Ensuite tu peux choisir dynamiquement dans les script l'image d'arrière-plan que tu veux utiliser en appelant la commande SetBackgroundFrame.

En ce qui concerne le nombre sur les objets, là encore les calques ne sont pas la solution. Le problème des calques dans AGS c'est qu'on ne peut en utiliser que 10 simultanément. Donc si on utilisait un calque par objet, ça te limiterait à 10 objets. De plus j'imagine que tes objets sont affichés dans un GUI inventaire, et les calques sont affichés sous les GUI.
Ce que tu pourrais faire ici c'est modifier directement l'image de l'objet d'inventaire. Pour le coup ça devient un peu plus technique, faut mettre les mains dans le cambouis. L'idée sera de créer autant d'image dynamiques (DynamicSprite) que tu as d'objets d'inventaire différentes dans ton projet. Ainsi tu t'arrangeras pour que chaque image dynamique corresponde à l'image initiale de l'objet d'inventaire, sur laquelle tu auras ajouté en texte le nombre d'objets de la sorte que possède le joueur.
Je pourrai détailler plus tard et te proposer un code pour t'inspirer si tu veux.

En bref les calques sont très peu utilisés. Je pense que leur utilisation principale consiste notamment à rendre des effets de particules. Créer un calque, c'est un peu créer un objet temporaire qui n'interagira pas avec les éléments dans la pièce.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Dim 22 Fév 2015 - 19:05

Ce topic là, dont ce poste, m'a pas mal aidé. Celui-là aussi. sourire

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
Atavismus
Grand Cliqueur Royal
Grand Cliqueur Royal


Nombre de messages : 1584

Localisation : France

Date d'inscription : 27/01/2014


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Lun 23 Fév 2015 - 13:01

Il y a un moment, maître Kitai m'avait fait un p'tit bout de code pour "draw" sur le background d'un gui.
Si ça t'intéresse et que tu sais te servir des fonctions de type "draw", ça pourrait être une solution concernant les quantités de l'inventaire.
(J'ai réutilisé cette méthode pour pour Dustbowl)

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://store.steampowered.com/app/367110/
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Mer 25 Fév 2015 - 12:56

Ouais, ça m’intéresse GRANDEMENT grand sourire

Sinon, j'ai finalement utilisé les SetBackgroundFrame, pour avoir 4 versions de mes rooms en fonction du moment de la journée (et donc, exit mes rooms animés déjà, j'en suis retourné à placer des objets animés à la place, tant pis)

Alors, pour ceux qui se posent la question, SetBackgroundFrame, si définit à la load d'une Room bloque l'animation du Background.
Exemple
SetBackgroundFrame(1);

Sinon, si SetBackgroundFrame n'est pas définit, ça enchaine nos différentes Frame de Background comme lors d'une animation normal de background.

Aussi, SetBackgroundFrame avec de bonnes conditions, peut être configuré aussi dans un room_RepExec, c'est pratique pour des changements de Background lié au temps qui passent par exemple (avec l'utilisation d'un Timer notamment)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Atavismus
Grand Cliqueur Royal
Grand Cliqueur Royal


Nombre de messages : 1584

Localisation : France

Date d'inscription : 27/01/2014


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Mer 25 Fév 2015 - 21:32

Ok filou, alors voici le code de Kitai (encore merci à lui).
L'idée est de créer/stocker tout ce qu'il faut au début du jeu dans des tableaux.
Soit un sprite dynamique, une surface et le sprite initial pour chaque GUI.

Déclaration des tableaux :
Code:

DynamicSprite *fondGUI[];
DrawingSurface *surfaceGUI[];
int initialGUI[];

Dans la fonction game_start() :
Code:

fondGUI = new DynamicSprite[Game.GUICount];
surfaceGUI = new DrawingSurface[Game.GUICount];
initialGUI = new int[Game.GUICount];
int i=0;
while (i < Game.GUICount){initialGUI[i] = gui[i].BackgroundGraphic; i++;}
//on parcourt tous les GUI et on peuple le tableau initialGUI pour pouvoir restaurer le background initial de chaque GUI

Deux fonctions à déclarer :

Code:

DrawingSurface* GetDrawingSurface(this GUI*)
{
  if (this.BackgroundGraphic == 0)
    fondGUI[this.ID] = DynamicSprite.Create(this.Width, this.Height);
  else
    fondGUI[this.ID] = DynamicSprite.CreateFromExistingSprite(this.BackgroundGraphic);
  this.BackgroundGraphic = fondGUI[this.ID].Graphic;
  surfaceGUI[this.ID] = fondGUI[this.ID].GetDrawingSurface();
  return surfaceGUI[this.ID];
}

function RestoreBackground(this GUI*){this.BackgroundGraphic = initialGUI[this.ID];}

Exemple d'utilisation :

Code:

DrawingSurface* maSurface = gMonGui.GetDrawingSurface();
maSurface.DrawingColor = 14;
maSurface.DrawString(0, 100, Game.NormalFont, "J'écris sur le background de mon gui!");
maSurface.Release();

En fin, pour restaurer le background d'un GUI dans mon état initial :
Code:

gMonGui.RestoreBackground();

De là, tu peux très bien "écrire" sur ton GUI inventaire.
Tu parcours les items contenus dans ton inventaire, tu vérifies la quantité et si elle est supérieure à 1 (ou pas si tu veux afficher 1) tu la "DrawString" sur la surface de ton GUI inventaire.
Le principe est simple.
Le plus compliqué est de calculer les coordonnées x et y pour écrire.
Ca va dépendre :
* de la width et de la height de tes items
* de la width et de la height de ton inventaire (inventory window) ainsi que de sa position (dans le GUI qui le contient)
* du nombre d'items par ligne
Tu vas avoir besoin de InventoryQuantity et de ItemAtIndex.
Si ton inventaire est sur plusieurs lignes, tu vas devoir déterminer selon l'index d'un item sur quelle ligne il se trouve (selon le nombre d'items par ligne)
Tu me suis ?
Je crois que c'est assez de bousin pour un post. grand sourire
Je vais te laisser avancer et expérimenter.
N'hésite pas si besoin.

Après, l'idée de Kitai est peut-être plus simple :
L'idée sera de créer autant d'image dynamiques (DynamicSprite) que tu as d'objets d'inventaire différentes dans ton projet. Ainsi tu t'arrangeras pour que chaque image dynamique corresponde à l'image initiale de l'objet d'inventaire, sur laquelle tu auras ajouté en texte le nombre d'objets de la sorte que possède le joueur.

A+ !

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://store.steampowered.com/app/367110/
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Jeu 26 Fév 2015 - 2:02

InventoryQuantity et de ItemAtIndex, Je crois que j'ai compris le principe.
Ca me paraissait cinglé comme méthode (comment deviner ou programmer l'arrivée des objets dans l'inventaire ?!) mais c'est parce que je n'avais pas connaissance de ItemAtIndex.
Je vais y réfléchir demain et vient au nouvelle demain soir sourire

Merci beaucoup à vous
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?   Aujourd'hui à 19:50

Revenir en haut Aller en bas
 
Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Les calques ? Overlay machin truc ! Quelqu'un pour m'expliquer ?
» Je cherche quelqu'un pour m'amener à la piscine ce soir 12/5
» Quelqu''un pour me faire un logo pour carte de visite ?
» On recherche quelqu'un pour la couverture
» [AIDE] Cherche quelqu'un pour faire des jeux Dreamcast (not released)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: