| Avoir un background animé | |
|
|
Auteur | Message |
---|
pluslong C'est quoi la Tasse Bleue ?
Nombre de messages : 20
Age : 42
Localisation : Nantes
Date d'inscription : 20/10/2006
| Sujet: Avoir un background animé Dim 22 Oct 2006 - 22:06 | |
| Bonjour, J'aimerais, pour ameliorer mes decors avoir un decor animé. C'est a dire par exemple avoir de l'eau qui bouge, une chute d'eau, de la fumée, un feu, des oiseaux qui volent enfin ce genre de chose. Est t-il possible d'importer en guise de background une suite d'image? si oui combien d'image maximum? Ou alors doit t-on plutot faire ca avec des objects? combien d'objects peut t-on mettre maximum par room? Ya t-il une taille maximum pour les objets? Merci d'avance pour l'aide que vous pourrez m'apporter;) |
|
| |
MarvinS Adepte de la Grande Tasse Bleue
Nombre de messages : 76
Age : 47
Date d'inscription : 18/09/2006
| Sujet: Re: Avoir un background animé Lun 23 Oct 2006 - 7:29 | |
| Voici les limites d'AGS :
20 objects per room 100 messages per room 500 global messages 299 rooms per game 300 inventory items 15000 imported sprites 240 sprites per folder 600 views 16 loops per view 20 frames in each loop 300 characters 50 GUIs 30 controls on each GUI 500 dialog topics 3000 dialog-script messages 30 options per topic 20 screen overlays at a time 500 script GlobalInts 50 script GlobalStrings 100 interaction editor global variables 5 background frames per room 20 mouse cursors
AGS gère les fonds animés image par image. On peut donc rentrer une suite d'image pour créer une animation, par contre c'est limité à 5 images.
Sinon il faut se servir des objets, mais beaucoup d'objets causeront vite un ralentissement du moteur du jeu. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Avoir un background animé Lun 23 Oct 2006 - 15:36 | |
| Ou encore il y a possiblité de gérer tout ça avec les commandes Raws d'AGS qui permettent de manipuler le fond de la Room. Après il faut savoir le faire de façon à ne pas monopoliser le moteur comme l'a justement fait remarqué MarvinS ^^ _________________ 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 ! |
|
| |
pluslong C'est quoi la Tasse Bleue ?
Nombre de messages : 20
Age : 42
Localisation : Nantes
Date d'inscription : 20/10/2006
| Sujet: Re: Avoir un background animé Lun 23 Oct 2006 - 22:00 | |
| Merci bcp pour toutes ces precisions tres importantes! 5 images pour un background animé ca fait pas lourd ca risque d'etre trop juste pour ce que je veux faire, je vais plutot utiliser des objets. Alors par contre j'imagine que plus les objets sont gros plus ca va ramer. Cela dit je me rend pas trop compte, on a quand meme des PC puissant maintenant enfin plus qu'avant . Est ce qu'un jeu rame rapidement? MarvinS tu dis que ca arrivera vite, ca doit dependre aussi de la resolution et de la profondeur de couleur employé? |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Avoir un background animé Mar 24 Oct 2006 - 6:41 | |
| Oui tout à fait, ton jeu sera plus rapide avec une résolution et une profondeur de couleurs faibles. Mais c'est vrai que sur des PC puissants, il y a peu de chances pour que ça ralentisse de manière conséquente. Sur mon 600 Mhz, je n'ai pas de problème, sauf quand j'ai des décors trop grands... :face: |
|
| |
MarvinS Adepte de la Grande Tasse Bleue
Nombre de messages : 76
Age : 47
Date d'inscription : 18/09/2006
| Sujet: Re: Avoir un background animé Mar 24 Oct 2006 - 7:20 | |
| J'ai un 1,6Ghz et il est vrai que je n'ai jamais réussi à faire ramer un jeu AGS. Mais je n'ai aussi jamais utilisé un nombre énormer d'objets animés en même temps.
Donc il est fort possible que les pc actuels tiennent le route face, ce sont juste les recommandations dans la FAQ de AGS qui dit de ne pas en abuser. |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Mer 22 Oct 2008 - 15:45 | |
| Ah alors j'ai une question, j'ai fait une room, et je souhaiterais un intégrer un élément graphique animé (une alarmé activée en 2 sprites), le problème c'est que je vois qu'il n'ait pas possible de charger l'anim via une VIEW, comment faire ? |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Avoir un background animé Mer 22 Oct 2008 - 17:06 | |
| Euh je ne comprends pas bien ta question ? Tu fais un object, tout simplement... non ? |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Mer 22 Oct 2008 - 22:57 | |
| - Shai-la a écrit:
- Euh je ne comprends pas bien ta question ?
Tu fais un object, tout simplement... non ? LOL, quand tu crées un objet tu dois choisir une image, moi je ne veux pas une image fixe mais animée ... |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Avoir un background animé Jeu 23 Oct 2008 - 6:49 | |
| C'est possible d'animer les objets : - Code:
-
object.SetView(view); object.Animate(loop, vitesse, eRepeat/eOnce, eBlock/eNoBlock, eForwards/eBackwards); |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Jeu 23 Oct 2008 - 13:22 | |
| - Shai-la a écrit:
- C'est possible d'animer les objets :
- Code:
-
object.Animate(loop, vitesse, eRepeat/eOnce, eBlock/eNoBlock, eForwards/eBackwards); Ah ok, j'avais pas mis la fonction "Object.Animate()" ;( Par contre, j'ai un bug mon pointeur reste gelé ... Autre question, j'arrive à appeler correctement une fonction lorsque je survole (MouseOver) un Hotspot ou un objet, mais comment rétablir mes fonctions d'avant quand je sors de ces zones ?? :surprise: En tout cas merci |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Avoir un background animé Ven 24 Oct 2008 - 15:56 | |
| Pas vraiment le temps de détailler ma réponse pour le moment, mais je pense qu'une solution raisonnable est d'utiliser la fonction repeatedly_execute et de faire une vérification de ce que la souris survole. Une façon de faire serait : - Code:
-
function repeatedly_execute() { if (Hotspot.GetAtScreenXY(mouse.x, mouse.y) != hTONHOTSPOT) { // Ici, tu places les commandes pour remettre les choses // en état, comme ce doit être lorsque le joueur ne survole // pas le hotspot. } } en remplaçant bien sûr hTONHOTSPOT par le nom script de ton hotspot. - mikosworld a écrit:
- Par contre, j'ai un bug mon pointeur reste gelé ...
T'as bien mis eNoBlock comme paramètre dans la fonction Animate ? Voilà, bon courage. _________________ 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 ! |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Sam 25 Oct 2008 - 15:13 | |
| - Citation :
- T'as bien mis eNoBlock comme paramètre dans la fonction Animate ?
Ah j'avais oublié d'ajouter ce paramètre, et maintenant mon jeu n'est plus bloqué - Citation :
- function repeatedly_execute() {
if (Hotspot.GetAtScreenXY(mouse.x, mouse.y) != hTONHOTSPOT) { // Ici, tu places les commandes pour remettre les choses // en état, comme ce doit être lorsque le joueur ne survole // pas le hotspot. } } Pour ta fonction OK, mais tu ne connaitrais pas une formule plus générale, c-a-d qui s'applique globalement à tous les objets et hotspots du jeu ? Merci pour ton aide |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Avoir un background animé Sam 25 Oct 2008 - 22:11 | |
| - mikosworld a écrit:
- tu ne connaitrais pas une formule plus générale, c-a-d qui s'applique globalement à tous les objets et hotspots du jeu ?
Là comme ça, je vois guère qu'un truc du style : - Code:
-
function repeatedly_execute() { if ((Hotspot.GetAtScreenXY(mouse.x, mouse.y) == hotspot[0]) && (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) == null) && (Object.GetAtScreenXY(mouse.x, mouse.y) == null) && (Character.GetAtScreenXY(mouse.x, mouse.y) == null) && (GUI.GetAtScreenXY(mouse.x, mouse.y) == null)) { // Ici, tu places les commandes pour remettre les choses // en état, comme ce doit être lorsque le joueur ne survole // rien. } } C'est pas très très propre je trouve mais ça devrait faire ce qu'il faut, et je vois pas mieux là. Bonne continuation. _________________ 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 ! |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Lun 27 Oct 2008 - 15:10 | |
| Super Kitai !!! Par contre, quand je clique mon perso ne peut plus bouger, comme si le "Walkable Area" était désactivé J'ai mis ceci : - Code:
-
function repeatedly_execute() { if ((Hotspot.GetAtScreenXY(mouse.x, mouse.y) == hotspot[0]) && (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) == null) && (Object.GetAtScreenXY(mouse.x, mouse.y) == null) && (Character.GetAtScreenXY(mouse.x, mouse.y) == null) && (GUI.GetAtScreenXY(mouse.x, mouse.y) == null)) { mouse.Mode (eModePointer); label1.text = "ALLER VERS"; } }
Autre petite chose, je souhaiterais maintenant pouvoir exécuter les actions suivantes : "mouse.SelectNextMode;" et "playsound(1);" uniquement quand mon pointeur est sur un objet et un hotspot quelconque ? J'avais commencé à mettre ça dans le GlobalScript , mais ça ne marche pas - Code:
-
... else if (button = eMouseRight || button = eMouseWheel(South){ if ((Hotspot.GetAtScreenXY(mouse.x, mouse.y) != hotspot[0]) && (Object.GetAtScreenXY(mouse.x, mouse.y) != null)) { mouse.SelectNextMode; playsound(1); } } ...
En tout cas merci pour vos coups de main ! |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Avoir un background animé Lun 27 Oct 2008 - 15:50 | |
| - mikosworld a écrit:
- Par contre, quand je clique mon perso ne peut plus bouger
C'est parce que tu as mis la commande mouse.Mode (eModePointer);. Je pense que tu devrais mettre mouse.Mode(eModeWalkto);. Ainsi le curseur sera dans le mode permettant de marcher à l'endroit où tu pointes. Pour "SelecNextMode();" (ne pas oublier les paranthèses) et "PlaySound(1);" (attention aux majuscules), tu veux les exécuter quand tu survoles un hotspot ET un objet ou bien un hotspot OU un objet ? Parce que le script que tu as mis ici correspond à "ET" (et contient quelques fautes). Je vais considérer que tu veux "OU" (ce qui semble le plus logique) : - Code:
-
else if ((button == eMouseRight) || (button == eMouseWheelSouth)) { if ((Hotspot.GetAtScreenXY(mouse.x, mouse.y) != hotspot[0]) || (Object.GetAtScreenXY(mouse.x, mouse.y) != null)) { mouse.SelectNextMode(); PlaySound(1); } } Bien sûr je considère que ce code est dans la fonction on_mouse_click. Voilà, j'espère que ça fonctionnera. _________________ 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 ! |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Lun 27 Oct 2008 - 19:48 | |
| Tu es un Chef, ça marche !! j'y étais presque arrivé Big merci à toi ... EDIT : Je voulais savoir j'ai mis une condition globale, c-a-d quand mon pointeur est sur un objet ou un hotspot, j'aimerais qu'il joue un son, sauf que dans je mets l'action "PlaySound(1);" bein il me le joue indéfiniment, j'arrive pas à trouver dans la doc de AGS , quelque chose pour jouer le son qu'une seule fois quand l'utilisateur fait son mouse-over ... |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Avoir un background animé Mar 28 Oct 2008 - 1:26 | |
| - mikosworld a écrit:
- Big merci à toi ...
Je t'en prie - mikosworld a écrit:
- EDIT : Je voulais savoir j'ai mis une condition globale, c-a-d quand mon pointeur est sur un objet ou un hotspot, j'aimerais qu'il joue un son, sauf que dans je mets l'action "PlaySound(1);" bein il me le joue indéfiniment, j'arrive pas à trouver dans la doc de AGS , quelque chose pour jouer le son qu'une seule fois quand l'utilisateur fait son mouse-over ...
EDIT : En réalité il y a une façon beaucoup plus rapide de faire que j'avais oubliée. J'ai changé le message et le code proposé en conséquence. Cependant on perd la détection GUI et Objet d'Inventaire (ils correspondent à eLocationNothing).Une solution serait d'utiliser une variable globale pour détecter si l'on arrive ou si l'on quitte le survol de quelque chose en particulier. - Code:
-
// en haut du GlobalScript LocationType IsMouseOver = eLocationNothing;
function MouseGetsOn(LocationType over) { // Cette fonction va se déclencher (une seule fois) dès // que le curseur arrive sur un objet, un personnage // ou un hotspot. IsMouseOver = over; if (over == eLocationObject) { // Ici les actions à exécuter quand le curseur survole // un objet. L'objet est retourné par la fonction // Object.GetAtScreenXY(mouse.x, mouse.y) }
if (over == eLocationCharacter) { // Comme pour eMouseOverObject, mais cette fois // pour les personnages.
}
if (over == eLocationHotspot) { }
// Ici les commandes que vous voulez exécuter // quel que soit l'élément survolé.
}
function MouseGetsOff(LocationType over) { // Cette fonction va se déclencher (une seule fois) dès // que le curseur quitte un objet, un personnage // ou un hotspot. IsMouseOver = eLocationNothing; if (over == eLocationObject) { } if (over == eLocationCharacter) { } if (over == eLocationHotspot) { }
} Puis dans le repeatedly_execute : - Code:
-
function repeatedly_execute() {
LocationType over = GetLocationType(mouse.x, mouse.y); if (over == eLocationNothing) { if (IsMouseOver != eLocationNothing) MouseGetsOff(IsMouseOver); } else if (IsMouseOver == eLocationNothing) MouseGetsOn(over); // La suite de repeatedly_execute... Bon stun peu long, mais c'est parce que j'ai voulu faire quelque chose d'universel. Normalement là t'as juste à définir dans MouseGetsOn les actions que tu veux exécuter quand la souris arrive (et seulement quand elle arrive) sur un élément, donc dans ton cas tu mettras PlaySound(1); dans if (over == eLocationObject) et dans if (over == eLocationHotspot). Pour ton cas, MouseGetsOff devrait pas être utile, d'ailleurs globalement je pense qu'elle servirait pas beaucoup. Ce système est bien sûr améliorable, notamment en ajoutant la détection du GUI et de l'Objet d'Inventaire à l'écran (qui pour le moment passent à la trappe vu que GetLocationType retourne eLocationNothing pour ces éléments). Voilà voilà, en tout cas je te souhaite bon courage, j'espère pas t'avoir trop embrouillé avec mes affaires _________________ 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 !
Dernière édition par Kitai le Mar 28 Oct 2008 - 15:42, édité 2 fois |
|
| |
mikosworld Adepte de la Grande Tasse Bleue
Nombre de messages : 130
Age : 44
Localisation : Ain - France
Date d'inscription : 18/06/2006
| Sujet: Re: Avoir un background animé Mar 28 Oct 2008 - 13:03 | |
| Parfais, ton script global fonctionne nickel, le "moteur de jeu" commence à prendre forme |
|
| |
Contenu sponsorisé
| Sujet: Re: Avoir un background animé | |
| |
|
| |
| Avoir un background animé | |
|