Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

 

 Module de gestion graphique

Aller en bas 
3 participants
AuteurMessage
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module de gestion graphique Empty
MessageSujet: Module de gestion graphique   Module de gestion graphique EmptyMar 1 Aoû 2006 - 21: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 !


Dernière édition par le Mer 2 Aoû 2006 - 12:48, édité 3 fois
Revenir en haut Aller en bas
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
Shai-la


Nombre de messages : 6018

Age : 45

Localisation : Montpellier

Date d'inscription : 17/04/2006


Module de gestion graphique Empty
MessageSujet: Re: Module de gestion graphique   Module de gestion graphique EmptyMer 2 Aoû 2006 - 6: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
http://marionpoinsot.fr/video
CuberToy
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CuberToy


Nombre de messages : 160

Age : 35

Localisation : Nancy, France

Date d'inscription : 24/04/2006


Module de gestion graphique Empty
MessageSujet: Re: Module de gestion graphique   Module de gestion graphique EmptyJeu 3 Aoû 2006 - 0: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)
Revenir en haut Aller en bas
http://www.amelior-prod.info
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module de gestion graphique Empty
MessageSujet: Re: Module de gestion graphique   Module de gestion graphique EmptyLun 7 Aoû 2006 - 14: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).
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Contenu sponsorisé





Module de gestion graphique Empty
MessageSujet: Re: Module de gestion graphique   Module de gestion graphique Empty

Revenir en haut Aller en bas
 
Module de gestion graphique
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Créer un jeu de gestion ?
» gestion du temps
» Jeux de gestion !
» Jeu des gestion de centre équestre
» Gestion transparance alpha ?

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: