Le perso ! le perso ! [Tutorial n°5]

Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Sam 14 Aoû 2010 00:43

Hé hé... la suite ... tout de suite !
Après ce (très) long temps d'attente le dernier (?) tutorial de la série "SOTB", avec cette fois-ci le personnage animé !
L'image utilisée est la même que celle du tutorial précédent (le n°4 pour ceux qui suivent !) puisque celle-ci contenait déjà les sprites et les masques que nous allons utiliser ici.

Voici sans plus attendre le listing:

Code: Tout sélectionner
' ---------------------------------
' Tutorial "SOTB" n°5 -> Le perso
' ---------------------------------
'
OPENW #1,_X / 2 - 320,_Y / 2 - 200,640,400,%001110000
TITLEW #1,"SOTB !"
'
Hscreen1& = CREATEBMP(800,600)
Hscreen2& = CREATEBMP(640,480)
Hsc1& = MEMDC(_DC(1))
Hsc2& = MEMDC(_DC(1))
SETBMP Hsc1&,Hscreen1&
SETBMP Hsc2&,Hscreen2&
'
FrameTime% = 10 ' Default is 100Hz (init Sync)
'
SETDC Hsc1&
IF EXIST("sotb.bmp")
  adr& = LOADBMP("sotb.bmp")
  PUT 0,0,adr&
  FREEBMP adr&
ENDIF
SETDC _DC(1)
REPEAT
  PEEKEVENT
  IF MENU(1) = 21
    @redraw
  ENDIF
  @anim_fond
  @anim_perso
  @Sync
  ' Transfert Logic -> Physic
  BITBLT Hsc2&,0,0,640,480,_DC(1),0,0,SRCCOPY
UNTIL MENU(1) = 4 OR MOUSEK = 2
CLOSEW #1
END
'
PROCEDURE redraw
  BITBLT Hsc1&,0,0,640,400,_DC(1),0,0,SRCCOPY
RETURN
'
PROCEDURE anim_fond
  ' ------------------------------------------------------------
  ' Anime le fond et le transfère dans l'écran logique 2 (Hsc2&)
  ' ------------------------------------------------------------
  ' Nuage 0
  BITBLT Hsc1&,15,0,640,42,Hsc1&,10,0,SRCCOPY
  BITBLT Hsc1&,10,0,640,42,Hsc1&,635,0,SRCCOPY
  ' Nuage 1
  BITBLT Hsc1&,14,42,640,80,Hsc1&,10,42,SRCCOPY
  BITBLT Hsc1&,10,42,640,80,Hsc1&,636,42,SRCCOPY
  ' Nuage 2
  BITBLT Hsc1&,13,122,640,38,Hsc1&,10,122,SRCCOPY
  BITBLT Hsc1&,10,122,640,38,Hsc1&,637,122,SRCCOPY
  ' Nuage 3
  BITBLT Hsc1&,12,160,640,18,Hsc1&,10,160,SRCCOPY
  BITBLT Hsc1&,10,160,640,18,Hsc1&,638,160,SRCCOPY
  ' Montagnes
  BITBLT Hsc1&,11,178,640,146,Hsc1&,10,178,SRCCOPY
  BITBLT Hsc1&,10,178,640,146,Hsc1&,639,178,SRCCOPY
  ' Herbe 0
  BITBLT Hsc1&,12,324,640,4,Hsc1&,10,324,SRCCOPY
  BITBLT Hsc1&,10,324,640,4,Hsc1&,638,324,SRCCOPY
  ' Herbe 1
  BITBLT Hsc1&,13,328,640,6,Hsc1&,10,328,SRCCOPY
  BITBLT Hsc1&,10,328,640,6,Hsc1&,637,328,SRCCOPY
  ' Herbe 2
  BITBLT Hsc1&,14,334,640,14,Hsc1&,10,334,SRCCOPY
  BITBLT Hsc1&,10,334,640,14,Hsc1&,636,334,SRCCOPY
  ' Herbe 3
  BITBLT Hsc1&,15,348,640,22,Hsc1&,10,348,SRCCOPY
  BITBLT Hsc1&,10,348,640,22,Hsc1&,635,348,SRCCOPY
  ' Transfert Fond -> logic 2
  BITBLT Hsc1&,10,0,640,366,Hsc2&,0,0,SRCCOPY
RETURN
'
PROCEDURE anim_perso
  ' Transfert Personnage -> Logic
  BITBLT Hsc1&, p& * 65,370,64,103,Hsc2&,292,250,MERGEPAINT
  BITBLT Hsc1&, p& * 65,477,64,103,Hsc2&,292,250,SRCAND
  INC t&
  IF t& = 8
    INC p&
    IF p& > 5
      p& = 0
    ENDIF
    t& = 0
  ENDIF
RETURN
'
PROCEDURE Sync
  DO
    Time% = TIMER
    Delay% = Time% - OldTime%
    IF Delay% < 0 THEN Delay% = FrameTime%
    PEEKEVENT
    EXIT IF Delay% > FrameTime%
  LOOP
  OldTime% = Time%
RETURN


Ce qui change ? on a juste ajoûté une procédure anim_perso qui va gérer l'animation et l'affichage du personnage.

L'animation est bien entendu effectuée par l'affichage successif de plusieurs images représentant les déplacements successifs du personnage.

Sans entrer dans les détails, on va afficher sur l'écran logique "2" successivement un masque, puis l'image proprement dite du personnage.

Ensuite comme précédement on tranfère cet écran logique "2" dans l'écran physique.
Donc pour résumé:

On anime le fond (logique "1") -> On transfère ce fond animé dans une autre zone mémoire (logique "2") -> On affiche le personnage par dessus en changeant l'image afin de créer l'animation (c'est à celà que sert la variable p& qui varie de 0 à 5 (6 images).

La variable t& sert juste à ralentir l'animation du personnage sinon il la joue à la "Speedy Gonzales".

Voilà c'est la fin (sniff) ...

@+

Fantomas
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede shadow272 » Sam 14 Aoû 2010 14:12

Super bons listings,


Merci Fantomas
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Sam 14 Aoû 2010 21:33

J'ai noté quelques petites erreurs et fautes d'orthographe, mais je n'ai pas trouvé comment modifier mes messages :?:

Fantomas
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede shadow272 » Dim 15 Aoû 2010 06:26

Je vais essayer d'activer le "éditer" .
Ce qui est bizare c'est qu'il est activé dans les paramètres du forum.
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede tomchi » Ven 20 Aoû 2010 23:59

ouais bon ... ça a été dit ya longtemps ailleurs, mais le style à utiliser pour avoir toutes les fonctionalités du forum est le proformell.


Euh sinon, rapport au topic, si j'essaye de sauver le fichier en executable, j'ai un message d'erreur car il manque gfarun10.dll

Ya t'il un manuel qu'on peut telecharger pour avoir les fonctions ?? Parce que du coup tes tutos me donnent envie de tester :p

[EDIT]
Ok, ya qu'à compiler le gfw pour avoir un exe sans dll ^^'
et SHIFT+F1 pour avoir l'aide et la liste des fonctions ... [/EDIT]
Avatar de l’utilisateur
tomchi
Administrateur du site
 
Messages: 342
Inscription: Mer 15 Oct 2008 20:51

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Sam 21 Aoû 2010 12:10

Arf' !

Tomchi, voici le "gfarun10.dll" patché pour windows XP (info: http://sites.google.com/site/gfabasic16/windows31 en bas de page "Generating Exe files for Windows XP")

Pas testé sur Vista, Seven

Sinon tu compile le .gfw ...

Je vais rajoûter ce "gfarun10.dll" au pack d'installation !

PS: le fichier dll doit être placé dans c:\Windows

Fantomas :D
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Sam 21 Aoû 2010 12:18

"Ok, ya qu'à compiler le gfw pour avoir un exe sans dll ^^'
et SHIFT+F1 pour avoir l'aide et la liste des fonctions ..."


F1 ou menu "Help/Contents"
puis "Comnands" et "Basic Commands" pour avoir la liste des instructions du GFW

Et comme je l'avais indiqué dans un post précédent, il y a plein d'exemples, ainsi que le livre "Programming in GFA-BASIC for Windows" à télécharger, sur ce site:

http://sites.google.com/site/gfabasic16/

Fantomas ;)
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede tomchi » Dim 5 Sep 2010 11:55

he fantomas, pas le temps de trop me pencher dessus même si c'est interessant, mais en essayant des sources, et en cherchant un peu dans l'aide je me demande si il y aurait un moyen facile de changer la reso pour avoir pas une fenetre mais un fullscreen.
(à part creer une fentre de 1280*800 ;) )
Avatar de l’utilisateur
tomchi
Administrateur du site
 
Messages: 342
Inscription: Mer 15 Oct 2008 20:51

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Lun 6 Sep 2010 14:18

arf'

Bon de toute façon on doit ouvrir une fenêtre...:

OPENW #n,x,y,w,h,attr

Si on met "attr" à 0, on n'aura pas de barre de titre, ni d'ascenseur... ni rien
on sait également que _X et _Y renvoient la largeur et la hauteur de l'écran en pixels...

et FULLW #n affiche une fenêtre au maximum de sa taille sur l'écran...

Avec ces quelques trucs on devrait pouvoir effectuer un "fullscreen" ;)

Code: Tout sélectionner
OPENW #1,0,0,_X,_Y,0
FULLW #1
PRINT AT(1,1);"Nombre de pixels en largeur: ";_X
PRINT AT(1,2);"Nombre de pixels en hauteur: ";_Y
REPEAT
UNTIL MOUSEK = 2
CLOSEW #1


Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Le perso ! le perso ! [Tutorial n°5]

Messagede Fantomas » Lun 6 Sep 2010 14:26

... pour info, le fullw #1 n'est normalement pas nécessaire, puisque qu'on ouvre déjà la fenêtre aux dimensions maximum de l'écran ... (_X et _Y)

... mais la première fois que j'ai exécuté le programme (non compilé) j'avais bien la fenêtre ouverte sur tout l'écran sauf... la barre des tâches. J'ai donc ajouté le fullw #1 pour plus de sécurité ! Et de toute façon ça ne change rien donc ;)

Voilou :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Suivante

Retourner vers GFA PC

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron