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

Partagez | 
 

 Module de gestion graphique

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2553

Date d'inscription : 01/08/2006


MessageSujet: Module de gestion graphique   Mar 1 Aoû 2006 - 23:56

Bien, voici la première ressource que je présente, un module, j'espère qu'il vous sera utile, car à moi il l'est.


Lien :

http://admin.no.uchi.free.fr/Module_Graphique.scm

Présentation :

Ce module a pour but de faciliter la gestion des Raws.
AGS permet de modifier le fond d'une Room à l'aide de différentes commandes qui commencent habituellement par ce mot-clé : Raw.
Vous pouvez "dessiner par-dessus" le background avec des traits, des rectangles, etc. et même des sprites !
C'est là que ça devient intéressant. Supposez que vous avez une animation à faire où vous devez déplacer des images en un temps donné, les rendre transparentes ou encore faire des effets de zoom/dézoom.
Si vous ne désirez pas faire appel à un fichier d'animation extérieur, vous devrez utiliser les commandes Raws qui permettent de faire ces effets.
Bien, seulement, pour animer il faut faire image par image !
Mes premiers essais ne furent pas très concluant : après m'être longuement pris la tête pour faire des calculs de déplacements et donc ajouté plein de lignes de codes pour afficher image par image, je me rendais compte que l'instruction Wait(N); "gelait" le jeu.
La solution était donc de faire un moteur, que je mets ici à votre disposition.

Principe :

Ce module fonctionne par système de Calques (en anglais "Layers").
Chaque calque possède une image créée à partir d'une Sprite que vous lui indiquez. Cette image est modelée selon vos souhaits puis affichée à l'écran par dessus le background, sans altérer la sprite orignale.
Les calques sont numérotés et sont affiché dans l'ordre croissant : l'image contenue dans le calque 1 sera affichée sous l'image du calque 2.

ATTENTION : Puisque ces images sont dessinées directement par dessus le background, vos objets et personnages seront affichés par dessus ces images.

Note : Par défaut le nombre de calques est limité à 20, de 0 (pour le premier) à 19 (le dernier donc). Le moteur est ainsi fait que plus le nombre de calques est important, plus le code a à traiter d'information et est donc susceptible de ralentir le jeu.

Utilisation :

Venons-en aux instructions.

- Affimg(SPRITE,CALQUE,X,Y,ZOOM (optionnel),TRANSPARENCE (optionnel)) :
Remplit le calque numéro CALQUE avec la sprite numéro SPRITE puis affiche l'image aux coordonnées x : X ; y : Y à partir du centre de l'image, dans un coefficient de zoom ZOOM% avec une transparence de TRANSPARENCE% .

Exemples :
Code:
Affimg(1,0,160,120);
Remplira le calque 0 avec l'image de la sprite 1 et l'affichera au centre de l'écran (160;120).

Code:
Affimg(2,1,160,120,200,75);
Remplira le calque 1 avec l'image de la sprite 2 dont la taille sera doublée (200 %) avec une transparence de 75 %.

Note : Si le calque était utilisé par une autre image, celle-ci sera écrasée par la nouvelle.

- Depimg(CALQUE,X,Y,CYCLES,ZOOM (optionnel),TRANSPARENCE (optionnel)) :
Déplace l'image du calque numéro CALQUE aux coordonnées X;Y en CYCLES cycles (1 cycle = 25ms) en rendant progressivement l'image à ZOOM% de sa taille (si non spécifié, le zoom d'affichage est gardé) et à une transparence de TRANSPARENCE% (si non spécifiée, la transparence d'affichage est gardée).

Exemples :
Code:
Depimg(0,180,140,40);
Déplacera l'image du calque 0 aux coordonnées 180;140 (à partir du centre de l'image) en 1 seconde (= 40 cycles)

Code:
Depimg(0,180,140,40,200,75);
Fera de même mais cette fois en doublant la taille de l'image et en la rendant tranparente à 75%

Note : Le reste du script continue à être éxécuté durant le déplacement de l'image, si vous souhaitez attendre la fin pour poursuivre votre code, placer un Wait(CYCLES); après l'instruction.

- Supimg(CALQUE); :
Stop l'affichage de l'image du calque à l'écran.

Exemple :

Code:
Supimg(0);
Cessera d'afficher l'image contenue dans le calque 0.
Vous devrez refaire une instruction Affimg() pour réutiliser ce calque, et donc redonner tous les attributs nécessaires.

Commentaires :

  • Vous pouvez cesser l'éxécution du moteur dans votre code en entrant l'instruction ENTERED = false;. Si vous désirez le désactiver dans une Room, il faudra placer cette instruction dans l'événement "Player enters room (before fadein)". Pour réactiver le moteur, il suffit de taper l'instruction ENTERED = true;.
  • ATTENTION :Le moteur utilise la commande RawSaveScreen(); lors de l'entrée dans une room, et s'en sert pour restaurer le fond d'écran original à chaque cycle. Dès lors, l'utilisation de la commande RawSaveScreen(); aura pour effet de "changer" le Background originel. Pour remédier à ce problème, vous pouvez toujours utiliser la variable ENTERED comme décrit juste au-dessus.
  • Vous pouvez permuter l'affichage centré/sur le bord en éditant le script en ajoutant ou supprimant des // devant les instructions indiquée à ces effets.
  • Je n'ai pas mis de commande pour l'angle d'affichage de l'image, si vous en avez besoin je le ferai, prévenez-moi ici, en PM ou par mail en précisant la raison.


Voilà, j'espère que ça vous servira, Ga !

_________________
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 le Mer 2 Aoû 2006 - 14:48, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
avatar

Nombre de messages : 5529

Age : 39

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Module de gestion graphique   Mer 2 Aoû 2006 - 8:17

Waw, voilà qui est poussé ! :geek:

Perso je ne sais pas si je m'en servirai, mais ça sera sûrement utile pour faire des effets intéressants ! :cheers:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://marionpoinsot.fr/video
CuberToy
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 160

Age : 29

Localisation : Nancy, France

Date d'inscription : 24/04/2006


MessageSujet: Re: Module de gestion graphique   Jeu 3 Aoû 2006 - 2:38

C'est vrai que c'est tres tres... tres... interessant. Je ne m'en servirais pas dans l'immediat (je me familiarise avec tout le reste d'abord)

_________________
Le site non officiel de l'emission "J'irai dormir chez vous"... c'est sur :
JDCV.amelior-prod.info
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.amelior-prod.info
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2553

Date d'inscription : 01/08/2006


MessageSujet: Re: Module de gestion graphique   Lun 7 Aoû 2006 - 16:48

Hmm, je viens de me rendre compte d'une chose assez prévisible :
il y a un fort ralentissement si l'on donne des données trop importantes à traiter. J'ai une image 1280*960 que je dézoome peu-à-peu tout en rendant opaque une autre image par dessus.
Il y a saccades au début du mouvement.
Le fait est que la commande RawDrawImageTransparent ralentit considérablement l'exécution (pour plus de renseignements techniques, voir http://www.bigbluecup.com/yabb/index.php?topic=14119.0)

Donc jusqu'à ce que je trouve un moyen d'améliorer cela, il est conseillé de se limiter à des traitements d'images de taille raisonnable (640*480 maximum donc).

_________________
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
Contenu sponsorisé




MessageSujet: Re: Module de gestion graphique   

Revenir en haut Aller en bas
 
Module de gestion graphique
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Logiciel de gestion de tournoi
» Aide: Gestion du traffic
» gadoo(Graphique,Art,Dessin,Oeuvvre,Observation)
» Bug graphique
» [Loi Royale] Gestion Héraldique des Seigneuries

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: