Une approche par « surface » Lécran ainsi que les images chargées sont considérées comme des surfaces. SDL_Surface: type contenant toutes les informations.

Slides:



Advertisements
Présentations similaires
Comment utiliser PowerPoint
Advertisements

MANUEL D’UTILISATION DU LOGICIEL DE MISE A JOUR (GPS Navirad V4)
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Bases de linformatique : Premiers pas Niveau : Débutant.
SI28 FLASH MX Partie 1 Jérémy Dufetre - Ludovic Pilache.
1 : Léditeur 2 : Le traitement dimages. 3 : La visionneuse dimage. FRONTPAGE PAINT SHOP PRO ACD SEE.
Les différents types d’images
Lexique des manœuvres de base pour utiliser à PowerPoint
Premiers pas avec PowerPoint
Chap. 1 Structures séquentielles : listes linéaires
La photo numérique S. Laurent – Actic Hautil – 2004 /2005.
12 novembre 2012 Grégory Petit
Créer un diaporama avec OpenOffice Impress
Commission scolaire des Laurentides
LOGOS_w Imagerie La palette des icônes. Le groupe dicônes situé au dessus des images du patient permet dintervenir sur limage affichée et active.
INF-1019 Programmation en temps réel
Atelier DP #15 Lutilisation de loutil dessin et linsertion dimages dans le KF Présenté et animé par: Vincent Gagnon Christian Perreault Versions du KF.
Créer une animation simple Gif avec ImageReady.
La souris.
Python Interfaces graphiques
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Création d'un diaporama Création d'un diaporama
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
TUTO POWER POINT Parole d’école décembre 2010
FICHIERS : Définition : Algorithme général:
Manipulation de formulaires en Javascript
Comment réaliser une mise en page ?. Tracer une zone de texte.
Salon Interactif Université dAvignon Projet M2 MUNOZ Nicolas Année 2007/2008.
Texture 2D en PGC++.
Création et présentation d’un tableau avec Word 2007
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
RÉALISER UNE COMPOSITION THÉMATIQUE © 2010 Frederic DAVID.
Gestion des fichiers et dossiers
The Crystal Path PROJET ISN 2014 : DORIAN MOULINIÉ JIM SZYMANSKI.
Les images numériques IEN Cluses – 19 mars Plan Les pistes pédagogiques Expériences de pratiques personnelles dans sa classe Aspects techniques.
Windows 7 et son explorateur
MONTAGE VIDEO Avril 2008 Avec Windows Movie Maker sous Vista.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
Diagramme de Gantt. Groupe Core Module de vecteur de ℝ ² utilisé pour représenter toutes les coordonnées et leur appliquer des transformations. Ré-implémentation.
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
S’initier à Google Sketch Up avec la création d’une maison Commencez par ouvrir le logiciel, nous allons afficher tous les outils dont nous aurons besoin.
Guillaume Collombet Ulysse Mensa Sylvain Chambe
Visualisation des flots optiques en 3D
Projet LIF Eduardo San Martin Morote Yoann Maret-Verdant
Redimensionner une image avec Paint Shop Pro 4.14 (PSP 4.14) Pré requis : !!! Pour PC UNIQUEMENT !!! Paint Shop Pro 4.14 doit être installé sur l’ordinateur.
Faire déplacer le personnage à l’aide des flèches du clavier Il y a plusieurs façon de procéder selon nos attentes, mais en voici une qui est très simple:
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Image Ready SI28 _ P09 MACHIN Alexandre BRUTEL Aline.
DreamWeaver Séance 2 HMIDA Ahmed A2008. Plan 1.Calques 2.CSS 3.Modèles 4.Formulaires 5.Comportements 6.Mise en ligne.
FLASH MX : séance 1 Vivien FILIPPINI Jeanne VERRE Exposé SI28.
Exposé DREAMWEAVER 2 Guillaume DUBREUIL Adrien HADOUX.
Réalisation d'un jeu de tir aux Canards Florian GAUCHER Alexandre LEVY SI 28 Exposé Flash 3.
Pluvinage Raphaël – Si28. Pour quoi faire? / / Logiciel de graphisme orienté vers le web, dérivé de Photoshop (Même Interface) / Utilisation : Optimisation.
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Dreamweaver le retour Avec Les Formulaires Les Calques
Flash MX er Séance LIU Xinlei GI02.
Les formulaires Les calques Les comportements Les scénarios Les modèles Les feuilles de styles (CSS) La mise en ligne Les formulaires permettent à l’utilisateur.
Télécharger :
OSSIA Open Scenario Systems for Interactive Application Contrôle de paramètres spatiaux Jean-Michel Couturier, Blue Yeti, mai 2014.
EXPOSE FLASH 2 SI 28 24/10/2006 Delphine GODREAU Hélène PERRIER.
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
Formation.
SI 28 - Présentation Image Ready Aurélie Letenoux GSU 4.
Elise Pierrot, GSU04 ImageReady, traitement d’image pour le WEB Présentation SI28.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
Les calques Les Template (modèles) Les Comportements Les scénarios Les formulaires Les CSS Le serveur Web de l’UTC Présentation.
PRESENTATION FLASH 2 MAURIN Marion BERETTI Vincent.
Introduction à PowerPoint, logiciel de présentation Session hiver 2007 Commission scolaire Lac-St-Jean par Stéphanie Boivin.
Cours 5 : Premiers pas avec PowerPoint  L’insertion de diapositives  Appliquer un modèle de conception  Les zones de texte  L’insertion d’images 
Transcription de la présentation:

Une approche par « surface » Lécran ainsi que les images chargées sont considérées comme des surfaces. SDL_Surface: type contenant toutes les informations sur une surface

Une approche par « surface » Initialisation dune surface: SDL_SetVideoMode(largeur,hauteur,BitsParPixel,type) BitsParPixel permet de spécifier la précision des couleurs (16->65536 couleurs) Type peut prendre les valeurs : SDL_HWSURFACE : Surface stockée dans la mémoire de la carte vidéo ->contraire : SDL_ SWSURFACE SDL_DOUBLEBUF : Active le double buffering (évite les scintillements) SDL_FULLSCREEN : Fenêtre en plein écran SDL_OPENGL : Permet de faire un lien avec OpenGL SDL_RESIZABLE : Un évènement SDL_VIDEORESIZE est envoyé si la taille change

Une approche par « surface » Initialisation dune surface: SDL_CreateRGBSurface (type,largeur,hauteur,BitsParPixel,R,V,B,A) Type peut ici prendre les valeurs : SDL_HWSURFACE : Surface stockée dans la mémoire de la carte vidéo ->contraire : SDL_ SWSURFACE SDL_SRCCOLORKEY : permet de rendre une couleur transparente SDL_SRCALPHA : permet dutiliser le canal alpha (permet des effets de transparence) RVBA est le masque de couleur du fond (alpha étant la transparence : 0 opaque, FF invisible)

Une approche par « surface » Initialisation dune surface à partir dune image : SDL_LoadBMP(chemin) chemin est une chaîne de caractères indiquant le fichier à charger. Il est cependant plus simple dutiliser une librairie annexe : SDL_Image Cette librairie permet de charger des fichiers BMP, PNM, XPM, LBM, PCX, GIF, JPEG, PNG et TGA grâce à la fonction : IMG_Load(chemin) chemin est une chaîne de caractères indiquant le fichier à charger. SDL_Image se charge de trouver le type du fichier

Manipulation des surfaces Copie entre deux surfaces : SDL_BlitSurface(Surf1,rect1,Surf2,rect2) Surf1 est la surface dorigine. Rect1 est le rectangle de sélection, de type SDL_Rect&: x et y représentent les coordonnées en haut à gauche du rectangle x et y représentent les coordonnées en haut à gauche du rectangle h et w représentent la hauteur et la largeur du rectangle à sélectionner h et w représentent la hauteur et la largeur du rectangle à sélectionner Surf2 est la surface de destination. Rect2 est le rectangle de destination. Seul x et y sont pris en compte : la largeur sera celle spécifié avec Rect1. Si Rect1 est à NULL, toute limage est copiée Si Rect2 est à NULL, limage copiée se place en haut à gauche

Gestion des entrées sorties Récupérer les évènements claviers SDL_PollEvent(&evenement) Evenement est de type SDL_Event. SDL_Event est une structure rassemblant les évènements : 1. Clavier : SDL_GetKeyState permet de récupérer un tableau de 256 cases booléenne Cest une photo du clavier : si une touche est pressée, la case correspondante est à vrai constantes : SDLK_ESCAPE, SDLK_F1, SDLK_w … Il est par ailleurs possible dutiliser UNICODE grâce à : SDL_EnableUNICODE(int enable);

Gestion des entrées sorties Récupérer les évènements claviers SDL_PollEvent(&evenement) Evenement est de type SDL_Event. SDL_Event est une structure rassemblant les évènements : 1.Clavier. 2. Souris : SDL_GetMouseState(x,y) permet davoir la position de la souris SDL_BUTTON(x) permet de savoir si le bouton x est appuyé. 3. Joystick : SDL_JoystickOpen(0) permet dinitialiser le joystick 0. SDL_JoystickClose(0) libère le joystick 0.

Gestion du son SDL permet de gérer le son, mais de manière peu évolué. Après quelques recherches sur Internet, la librairie FMOD mest apparu comme très performante. Elle permet dutiliser des effets DirectX, du son 3D, denregistrer en FULL-DUPLEX… De plus, elle permet de lire des fichiers de type : Midi, wav, mp3, ogg, raw, cd …

Gestion du son : FMOD Initialisation de FMOD : FSOUND_Init(freq,nbcanaux,flags) Freq représente la fréquence déchantillonnage (44100 par ex) Nbcanaux représente le nombres de canaux (ie le nombre de sons Max pouvant être joué simultanément) Flags représente les différents paramètres dinitialisation…

Gestion du son : FMOD Chargement dune musique : FSOUND_Stream_Open(chemin,flags,début,longueur) chemin est une chaîne de caractères indiquant le fichier à charger. flags a en général pour valeur FSOUND_LOOP début est facultatif, indique loffset de debut du fichier longueur est facultatif, indique la longueur du fichier

Gestion du son : FMOD Chargement dun son : FSOUND_Sample_Load(index,chemin,flags,début,longueur) Index défini le canal a utiliser ( FSOUND_FREE permet de laisser FMOD sen charger). chemin est une chaîne de caractères indiquant le fichier à charger. flags a en général pour valeur FSOUND_NORMAL début est facultatif, indique loffset de début du fichier longueur est facultatif, indique la longueur du fichier

Gestion du son : FMOD Jouer un son : FSOUND_PlaySound(index,identifiant) Index défini le canal a utiliser ( FSOUND_FREE permet de laisser FMOD sen charger). Identifiant est lid du son précédemment chargé avec FSOUND_Sample_Load

Initialisation de tous les composants. SDL : SDL_Init( SDL_INIT_VIDEO|SDL_INIT_TIMER ) Pour démarrer SDL. Le timer permettra de régler la vitesse daffichage, comme nous verrons par la suite. atexit(SDL_Quit) Permet de dire à SDL de quitter proprement. SDL_EnableUNICODE(1) parle de lui même. SDL_ShowCursor(false) rend la souris invisible. SDL_SetVideoMode(800,600,32, SDL_HWSURFACE| SDL_DOUBLEBUF|SDL_FULLSCREEN) Crée une fenêtre plein écran de 800*600*32, en mémoire vidéo, double buffer.

Initialisation de tous les composants. FMOD : FSOUND_Init(44100,4,0) Pour initialiser la fréquence déchantillonnage à échantillons/sec, avec 4 canaux indépendants et sans gestion particulière (3D, directX…)

Initialisation de tous les composants. Objets du jeu : Par exemple bombe (mais valable pour tous les autres objets : mur, joueurs, feu…) Pour des raisons doptimisation, il est préférable de charger les textures (ou image) une fois pour toute. Donc, les textures sont des membres static des classes.

Initialisation de tous les composants. BOMBE : Bombe::init() Charge les animations de la bombe : SDL_SetColorKey(bombe[0],SDL_SRCCOLORKEY|SDL_RLEACCEL,noir) Permet de spécifier une couleur transparente. SDL_RLEACCEL permet daccélérer le rendu des image transparentes noir est obtenu grâce a la fonction SDL_MapRGB(attend[0]->format,0,0,0) qui renvoie la couleur associé aux trois derniers paramètres.

Initialisation de tous les composants. Le plateau : Il est composé dun tableau à 2 dimensions : Ce sont des pointeurs sur des objets : VideVideVide FeuMurVide 1,11,21,3 2,12,22,3

Initialisation de tous les composants. Le plateau : Par ailleurs, un autre tableau recense toutes les modifications du plateau (une bombe de posée, un mur qui explose…) A départ, toutes les cases sont misent à 1 (modification), pour que tout le plateau soit affiché.

Boucle daffichage 1. On efface les joueurs. En effet, lorsquun joueur se déplace, il faut leffacer en réaffichant le décor qui se trouve sous le joueur.Sinon, une traînée apparaît:

Boucle daffichage 2. On affiche les explosions : 1. On parcours le tableau des modifications, et si une cases est à 2 alors cest quelle explose. 2. On interroge lobjet pour savoir où et comment les flammes partent. 3. Teste les collisions avec les objets du plateau et ainsi détermine quels objets sont détruits par lexplosion. 4. Affiche les flammes de lexplosion.

Boucle daffichage 3. On affiche les objets du plateau qui ont étés modifiés : 1. Parcours le tableau de modifs Lobjet na pas été modifié, on ne laffiche pas.Lobjet na pas été modifié, on ne laffiche pas. Lobjet explose, on affiche son explosion.Lobjet explose, on affiche son explosion. Lobjet doit être réactualisé, on laffiche.Lobjet doit être réactualisé, on laffiche. 2. Gestion de la pseudo-3D :

Boucle daffichage 4. On affiche les joueurs : Le joueur est contrôlé pour un humain : Le joueur est contrôlé pour un humain : Calcul de la direction demandé Calcul de la direction demandé Collision : Collision : Modification de la direction en calculant le point de contact sur le carré de collision de lobjet et et en modifiant en conséquence le vecteur déplacement. affichage du joueur : affichage du joueur : Calcul de limage à afficher en fonction de la direction du vecteur déplacement ainsi que de son module (et de limage précédente) :

Boucle daffichage 4. On affiche les joueurs : Le joueur est contrôlé par lordinateur : Le joueur est contrôlé par lordinateur : Calcul du but (par ordre de priorités) Calcul du but (par ordre de priorités) Y a til un danger? Y a til un danger? Y a til un joueur relativement proche? Y a til un joueur relativement proche? Y a til un bonus relativement proche? Y a til un bonus relativement proche? Calcul du chemin (par ordre de calcul) Calcul du chemin (par ordre de calcul) Il y a un danger Il y a un danger Calcul du chemin le plus cour vers une case sure, sans se soucier de passer par des cases dangereuses Calcul du chemin le plus cour vers une case sure, sans se soucier de passer par des cases dangereuses Ne fait pas les autres calculs! Recherche le chemin le mois dangereux (sans passer a coté des bombes) Recherche le chemin le mois dangereux (sans passer a coté des bombes) Recherche du plus cour chemin. Recherche du plus cour chemin. Puis même schéma que précédemment : Puis même schéma que précédemment : Calcul des collisions et gestion de la pseudo 3D Calcul des collisions et gestion de la pseudo 3D

Boucle daffichage 5. Calcul de la vitesse dexécution Si le temps passé a réactualiser la scène est supérieur à 30 ms, on attend le temps restant. Sinon, on redessine une nouvelle scène. Rendu possible grâce à SDL_INIT_TIMER et à la fonction SDL_GetTicks() qui renvoie le nombre de ms passées depuis le lancement de SDL.

La principale limite : lage. En effet, cette bibliothèque développé il y a fort longtemps est en réalité basé sur DirectX5 (pour Windows), ce qui implique quelques limitations. En effet, de nombreuse fonction (comme la transparence) sont gérées en software, sans tenir compte doptimisations matérielles…

La seconde limite : Pas de manipulation avancé. La bibliothèque ninclus pas de primitives évolué, comme zoomer sur une partie dimage, ou faire faire une rotation à une image.

La bibliothèque nautomatise pas lutilisation de plusieurs surfaces sur une même surface. Cest à dire que cest au programmeur denregistrer ce qui se trouve sous la surface pour pouvoir effacer lobjet par la suite : masque

De très bon tutoriaux se trouvent sur le site