un petit essai sous QB64

Voir le sujet précédent Voir le sujet suivant Aller en bas

un petit essai sous QB64

Message par grostonton le Jeu 2 Jan 2014 - 18:28

Salut à tous !

Et bonne année à tous le monde, bien sûr !

Voilà, en suivant (je les remercie par ailleurs) les conseils de Vetea, F.L, et merci aussi indirectement à kevryu (dont le code source de son jeu tribute m'a pas mal aidé), je me suis lancé aujourd'hui dans l'aventure qb64 !
Bon pour l'instant, il n'y a rien de transcendant, mais j'espère continuer à avancer et à progresser dans les jours(mois, années) qui viennent. 
Prochainement, j'aimerais arriver à afficher les différents états du bonhomme (image du bonhomme vers la gauche quand on appuie sur la flèche gauche etc...), pourquoi pas réussir à les animer. Bon j'ai aussi pas mal galérer sur le saut (qui ne fonctionne pas), pour l'instant on peut juste dire que l'on peut faire voler le bonhomme (je n'ai pas réussi à le faire redescendre)... Mais bon c'est un début.
Je vous fait partager le fichier (enfin normalement, c'est la première fois que j'utilise dropbox), ainsi que le code source, si vous voyez des choses à améliorer, n'hésitez pas  Wink 

https://www.dropbox.com/s/nby95jq0lrivqoz/test_sprite.zip
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par Vetea le Jeu 2 Jan 2014 - 20:33

Salut et bravo pour ce premier jet !!!!!

C'est déjà très bien comme résultat et tu as déjà le soucis du détail avec choix menu, détection limite tableau, etc ... Sans compter les commentaires du code !!
Bravo !!

Quelques petits conseils :

Dans ton SUB Niveau1 :
Code:
SUB niveau1
DO
    CLS 'pas indispensable !
    _LIMIT 60 'on limite l'affichage … 60 im/s

    chargement_ressource_graphique 'on charge nos ressources graphiques
    affichage_niveau1
    limitejeu

    _DISPLAY 'on raffraichit l'ecran

    '********** deplacement vers la droite ****
    IF _KEYDOWN(19712) THEN ' fleche droite enfonc‚e
        coordpersoX = coordpersoX + 4
    END IF

    '********* deplacement vers la gauche ****
    IF _KEYDOWN(19200) THEN ' fleche gauche enfonc‚e
        coordpersoX = coordpersoX - 4
    END IF

    '********* saut ****
    IF _KEYDOWN(32) THEN
        coordpersoY = coordpersoY - 4
    END IF

    IF _KEYDOWN(27) THEN SYSTEM


LOOP

1/ Le "CLS" dans ta boucle principale d'affichage n'est pas nécessaire ! En plus cela coute un peu en ressources machine ...
2/ Ne charge pas tes ressources dans la boucle !!! Car le programme va sans cesse charger tes sprites en mémoire 60 fois par seconde !! Cout en ressources machine, en mémoire et pas vraiment logique !! Wink
Charge les au préalable avant ta boucle principale ... Elles seront toujours en mémoire tant que le programme est en cours d'exécution ! :)
3/ le CALL n'est pas vraiment nécessaire. Pour appeler un sous programme il suffit de le nommer dans ton programme : CALL niveau1 <=> niveau1 !

Après, je te laisse chercher pour ton histoire de saut descendant... Tu vas trouver tout seul comme un grand !! Tu es prêt de trouver la solution, puisque 3/4 du travail est fait ...
En ce qui concerne un saut en cours de déplacement, pense à une trajectoire parabolique !
Il y a diverses méthode pour aborder ce grand classique dans la conception de jeu d'arcade ... A toi de trouver la solution qui te convient et surtout, trouver par toi même en essayant des méthodes 100% Grostonton !!
Sors des sentiers classiques des règles classiques et déjà toute faire ... si c'est pour les copier sans rien comprendre, ça sert à rien !
Essais par toi même ! Cela prend plus de temps, mais la satisfaction au final en sera supérieure à tout point de vue ! Wink

Je suis content pour ta nouvelle aventure vidéo ludique !! Tel Walter Smitty tu vas vivre tes rêves au travers d'un univers dont les seuls limites seront ton imagination et ta technique ...

A bientôt ami du sud ! :)
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4116
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Jeu 2 Jan 2014 - 23:31

Salut Vetea et encore merci pour tes conseils avisés !

@Vetea a écrit:2/ Ne charge pas tes ressources dans la boucle !!! Car le programme va sans cesse charger tes sprites en mémoire 60 fois par seconde !! Cout en ressources machine, en mémoire et pas vraiment logique !!
Charge les au préalable avant ta boucle principale ... Elles seront toujours en mémoire tant que le programme est en cours d'exécution ! :)

Ha oui effectivement, je ne le savais pas. C'est très bon à savoir ça !

Pour le saut descendant, je pensais partir sur une boucle de type do...loop
Mais ça ne le fait pas, le programme plante ( se bloque ?)
En fait je fais avec mes maigres connaissances, et en essayant de raisonner "verbalement" du style : "fais monter le sprite de tant de pixels, jusqu'à ce que le sprite atteigne cette hauteur."  et ensuite :"fais descendre le sprite de tant de pixels jusqu'à ce que le sprite atteigne telle hauteur
Ca fait quelques heures que je bloque dessus, mais bon je ne me décourage pas, il doit y avoir quelquechose que je ne fais pas comme il faut lol.

Sors des sentiers classiques des règles classiques et déjà toute faire ... si c'est pour les copier sans rien comprendre, ça sert à rien !
Essais par toi même ! Cela prend plus de temps, mais la satisfaction au final en sera supérieure à tout point de vue !

Je suis bien d'accord avec toi, mais il a bien fallu que je regarde certains code sources, histoire de voir comment vous utilisiez les SUB etc...
En cherchant un peu pour des algorithmes de saut, je suis tombé sur des formules mathématiques insaisissables pour moi à l'heure actuelle, donc je ne les ai pas suivis, parce que comme tu dis, j'aimerais arriver à faire ce saut en comprenant ce que je fais. Mais c'est pas gagné lol
A bientôt
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par J.Fauche le Jeu 2 Jan 2014 - 23:36

Bonjour je compte me mettre à ce langage.
Maitrisant parfaitement le php/jv depuis plusieurs années ,  aurais je du mal à comprendre celui ci ?
avatar
J.Fauche
Patient en incubation

Masculin Nombre de messages : 28
Age : 42
Localisation : Paris
Date d'inscription : 01/01/2014

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Ven 3 Jan 2014 - 13:05

Salut J.Fauche, si tu maîtrises le php depuis plusieurs années, tu dois avoir acquis une bonne logique de programmation, alors à part le fait de t'habituer à une autre syntaxe (celle de QB64), je ne pense pas que tu rencontres beaucoup de soucis !
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Sam 4 Jan 2014 - 16:06

Une petite mise à jour

l'état du bonhomme change en fonction de sa direction, et enfin, ENFIN il peut sauter, j'ai vraiment beaucoup insister tout seul pour y arriver, mais j'ai quand même du prendre exemple sur un code en purebasic pour y arriver.
Prochaine étape, toujours si j'y arrive, essayer d'animer le perso, lui donner 2 ou 3 étapes d'animations en fonction des directions, j'ai un peu regardé vite fait comment je pourrais faire,  mais je n'ai pas (pas encore) réussi à trouver comment afficher (avec _putimage) plusieurs images à la suite quand une touche est appuyée.

https://www.dropbox.com/s/83movbuits1p9sm/test04_01_14.zip
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par Vetea le Sam 4 Jan 2014 - 16:33

Excellent travail cette mise à jour !!!
Les sauts sont très bien réalisés et le changement de direction du sprite correct !
Il ne te manque plus qu'à comprendre comment gérer les frames d'animation maintenant ... Wink

Allez courage !! Tu es sur la bonne voie !!!  cheers
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4116
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Sam 4 Jan 2014 - 16:50

Merci pour ton soutien Vetea, ça fait vraiment plaisir !

Il ne te manque plus qu'à comprendre comment gérer les frames d'animation maintenant ...


Oui, c'est vrai que ça n'a pas l'air compliqué dis comme ça lol. Mais pour quelqu'un comme moi dont c'est la véritable première approche de programmation graphique, c'est vraiment pas de la tarte lol.
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par Vetea le Sam 4 Jan 2014 - 17:05

Je t'en pris, ça me fait plaisir de participer à la découverte de la programmation !!
C'est une super expérience et on se s'ennuie jamais !! Ca vaut tous les Sudoku du monde, ça fait travailler les méninges comme pas possible en plus de stimuler l'imagination ...

Pour l'animation, j'utilise des compteurs ... C'est à dire une variable qui va aider à gérer les frames d'animation.
Il faut au préalable donner le nombre de frame maxi par mouvement. Moi je me suis cantonné à 3 frame.
Quand la frame maxi est atteinte, on décrémente les frames d'animation, une fois la frame minimale atteinte, on l'incrémente à nouveau ...

1 -- > 2 --> 3 --> 2 --> 1 --> 2 --> 3 ... Etc ...

Voici un exemple d'une de mes routines d'animation :
Code:
        IF SpriteTableau(ID).TempoAnimation >= 5 THEN
            SpriteTableau(ID).Frame = SpriteTableau(ID).Frame + 1 * SpriteTableau(ID).SensAnimation 'Routine principale de l'animation

            IF SpriteTableau(ID).Frame > SpriteTableau(ID).FrameMax THEN
                SpriteTableau(ID).Frame = SpriteTableau(ID).FrameMax
                SpriteTableau(ID).SensAnimation = -1 'Si l'on arrive … la fin des frame maxi alors on d‚cr‚mente le sens de l'animation
            END IF


            IF SpriteTableau(ID).Frame < 1 THEN 'Quand on arrive … la frame 1 on change … nouveau le sens de l'animation
                SpriteTableau(ID).Frame = 1
                SpriteTableau(ID).SensAnimation = 1
            END IF
            SpriteTableau(ID).TempoAnimation = 0
        END IF

( La variable Spritetableau(ID).Tempoanimation donne le tempo et la vitesse de l'animation générale du sprite. )

Maintenant il faut réussir à créer un "objet" sprite avec ses caractéristiques ... Les variables de TYPE .... END TYPE sont excellentes en ce sens ... Elles permettent, par la suite, à créer des variables génériques qui hériteront de leurs attributs :
TYPE Sprite
CoordX as INTEGER
CoordY as INTEGER
FORCE as INTEGER
TILE as LONG
TILEDroite as LONG
etc ...
END TYPE

DIM SPRITETABLEAU(100) as Sprite 'La variable SPRITETABLEAU est un tableau de 100 unités qui héritent des attributs de Sprite
DIM Projectile(50) as Sprite 'La variable Projectile est un tableau de 50 unités qui héritent aussi des attributs de Sprite
etc ...

Bon courage l'ami !! Wink
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4116
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par Vetea le Mar 21 Jan 2014 - 22:51

Alors ça avance un peu ??? Wink
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4116
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par drfloyd le Mar 21 Jan 2014 - 23:03

pour les anim il y a un truc simple :

dans ta boucle 60img/sec  tu crées un compteur qui tourne en boucle

anim=anim+1:if anim=60 then anim=1

et si ton sprite a trois frames par seconde tu divises anim par 20 (car 60/3=20)

_putimage x,y,dessinsprite(int(anim/20))+1)

C'est tout :) En 2 lignes c'est reglé. On emballe, on passe à autre chose Wink

(il faut bien sur avant tout creer dessinsprite(1 à 3)


Dernière édition par drfloyd le Mer 22 Jan 2014 - 7:30, édité 1 fois

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 122307
Age : 47
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Mer 22 Jan 2014 - 6:32

@Vetea a écrit:Alors ça avance un peu ???

Hélas pas des masses, je ne vais pas raconter ma vie, mais c'est un peu dur de trouver du vrai temps libre pour moi en ce moment, surtout que Touko et moi on doit finir Chuck...

Merci le Doc pour ton astuce, je n'ai pas trop le temps de m'y pencher de suite, là il faut que j'aille bosser, mais dès que j'ai un peu de temps, je regarderais ça de plus près.
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par TOUKO le Sam 25 Jan 2014 - 21:11

Ahahaha merde dire que j'ai raté ça  Sad 

félicitations pour ton premier essai en prog  Wink
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 11767
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Dim 26 Jan 2014 - 8:52

@TOUKO a écrit:félicitations pour ton premier essai en prog  

Merci Touko, mais bon ne sois pas triste, tu n'as pas loupé grand chose non plus lol. Et comme dit plus haut, pour l'instant c'est en pause...
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par kevryu le Lun 27 Jan 2014 - 18:07

cool un noob comme moi Wink

je suis très honoré que tu ais utilisé un de mes codes sources pour ton inspiration !! Mais je fais comme vetea a dit, j'essaie de trouver par moi-même en m'aidant de codes sources deja établis (d'ailleurs Vetea j'ai toujours rien compris à tes tableaux de frame ! ni à leur création ni à leur déclaration... pour mémoire quand j'ai laissé ma GRANDE pause commencé je planchais dessus, il faut que je m'y remette)

En tout cas bravo grostonton pour tes débuts et persévère (quitte à laisser du temps passer avant de trouver le temps de programmer)
avatar
kevryu
Patient en incubation

Masculin Nombre de messages : 81
Age : 35
Localisation : valenciennes
Date d'inscription : 18/09/2011

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par grostonton le Lun 27 Jan 2014 - 18:57

@kevryu a écrit:cool un noob comme moi

Ha oui ça je peux dire que je suis un grand débutant lol.

Ben écoute, ton code source était assez court, et il traitait exactement de ce que j'avais envie de faire, déplacement de sprite etc... donc c'est moi qui te remercie de l'avoir partagé avec nous !

Je fais au mieux pour trouver par moi même, mais au bout d'un moment, quand ça ne veut pas marcher, ça me gonfle sévère, donc je zieute un peu partout et j'essaie d'adapter.

En tout cas bravo grostonton pour tes débuts et persévère (quitte à laisser du temps passer avant de trouver le temps de programmer)

Merci, ben contrairement au doc ou à d'autres, pour moi programmer ce n'est pas une seconde nature, je suis plus à l'aise dans tous ce qui est dessin. Donc c'est pour ça que je ne peux pas me faire des sessions de 20/30 minutes de prog, c'est juste le temps qu'il me faut pour me remémorer où j'en étais du code lol
avatar
grostonton
Patient contaminé

Masculin Nombre de messages : 640
Age : 35
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://www.facebook.com/Grostonton-1804098633236995/

Revenir en haut Aller en bas

Re: un petit essai sous QB64

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum