Forum Liberty Basic France
• Index
Reprise du message précédent
cassiope01
Citation:
J’avoue ne pas très bien comprendre ... si je ne m’intéresse pas a JB pourquoi est ce que je suis entrain de l'utiliser en ce moment même, pourquoi est ce que j'essaye de diversifier mes programme ou pourquoi est ce que je suis sur ce forum ? o_O ???
ce n'est pas parce que je ne code pas pareil que les autres que mon "codage" est forcement faux ...
J'utilise les if certe mais faire une carte avec les if ne me prend que 20 -30 mn max !
De plus je n'est jamais dit que nous ne m'aviez pas aidé, j'ai dit que quelqu'un peut s'aider de mon code et y trouvé des idées qu'elles soient de vous ou de moi... donc je vois pas le rapport ^^.
cassiope01
Citation:
Je te rappel que c'est mon premier vrai projet, je n'est donc aucune expérience en JB ! Mais je vous est déjà appris que l'on pouvais utiliser les sprites a la place du background =P
cassiope01
Citation:
Euh la encore j'ai pas dit que j'allais le vendre j'ai juste précisé que le site était au niveau de sa conception... Mais si un jour je fais une version très bien faite et vendable alors peut être oui je vendrais ça 1 euros symbolique =P
pour les smileys j'en c rien ....
Et ne t'inquiète pas je suis ouvert a toute critiques
!
cassiope01
Citation:
Quelles idées ? Pour l'instant c'est plutôt nous qui essayons de t'aider avec JB... pardonne moi, mais il me semble que ça n'a pas l'air de t'intéresser plus que ça
J’avoue ne pas très bien comprendre ... si je ne m’intéresse pas a JB pourquoi est ce que je suis entrain de l'utiliser en ce moment même, pourquoi est ce que j'essaye de diversifier mes programme ou pourquoi est ce que je suis sur ce forum ? o_O ???
ce n'est pas parce que je ne code pas pareil que les autres que mon "codage" est forcement faux ...
J'utilise les if certe mais faire une carte avec les if ne me prend que 20 -30 mn max !
De plus je n'est jamais dit que nous ne m'aviez pas aidé, j'ai dit que quelqu'un peut s'aider de mon code et y trouvé des idées qu'elles soient de vous ou de moi... donc je vois pas le rapport ^^.
cassiope01
Citation:
Tu échanges très peu sur JB je trouve, ou bien suis-je trop impatient
Je te rappel que c'est mon premier vrai projet, je n'est donc aucune expérience en JB ! Mais je vous est déjà appris que l'on pouvais utiliser les sprites a la place du background =P
cassiope01
Citation:
Parce que ton but est de le vendre ?????
Euh la encore j'ai pas dit que j'allais le vendre j'ai juste précisé que le site était au niveau de sa conception... Mais si un jour je fais une version très bien faite et vendable alors peut être oui je vendrais ça 1 euros symbolique =P
pour les smileys j'en c rien ....
Et ne t'inquiète pas je suis ouvert a toute critiques

Je n'ai jamais dit que tu ne t'intéressais pas à JB, seulement à nos conseils et idées pour t'aider...
Par exemple, on a beau t'expliquer les boucles (essentiel pour te faciliter la vie) et les variables tableaux : pratiquement rien en ce sens dans tes nouvelles versions... vivement la v2.1
De plus, je pense que plus ton prog sera programmé comme tu le fais, plus il deviendra vite très gros, et vraissemblablement moins tu trouveras quelqu'un pour s'y pencher dessus pour t'aider...
Je suis franchement ouvert à toutes les façons de programmer : la mienne est suffisament bizarre
Bien vu pour les Sprites 'sans' background : original et j'ai testé ça tout de suite... mais JB n'ayant pas été conçu pour fonctionner comme ça, on risque d'être surpris par ses limites !
Je ne pense pas être le seul à penser que tu es mal parti...! on t'aide juste pour que tu ne t'écoeures pas de JB, pas pour que tu rentres dans une norme ou quelque chose comme ça
D'ailleur si tu ressent ça de ma part, dis le moi : j'irai tout de suite en hermitage définitif au Tibet ou au Bouthan, histoire de me purifier
J'espère même que tu feras fortune avec ton projet
@+
Edité par cassiope01 Le 17/08/2011 à 09h14
Par exemple, on a beau t'expliquer les boucles (essentiel pour te faciliter la vie) et les variables tableaux : pratiquement rien en ce sens dans tes nouvelles versions... vivement la v2.1

De plus, je pense que plus ton prog sera programmé comme tu le fais, plus il deviendra vite très gros, et vraissemblablement moins tu trouveras quelqu'un pour s'y pencher dessus pour t'aider...

Je suis franchement ouvert à toutes les façons de programmer : la mienne est suffisament bizarre

Bien vu pour les Sprites 'sans' background : original et j'ai testé ça tout de suite... mais JB n'ayant pas été conçu pour fonctionner comme ça, on risque d'être surpris par ses limites !
Je ne pense pas être le seul à penser que tu es mal parti...! on t'aide juste pour que tu ne t'écoeures pas de JB, pas pour que tu rentres dans une norme ou quelque chose comme ça




J'espère même que tu feras fortune avec ton projet


@+
Edité par cassiope01 Le 17/08/2011 à 09h14
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
J'ai une question :
Dans just basic j'ai vus que l'on pouvais utiliser la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q on" pour faire en sorte que plusieurs sprites soient visibles...
Par contre la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q off" ne marche pas ! ce qui me pousse à écrire ceci pour que seul le sprite perso1z soit visible :
#3b,"SpriteVisible perso1s off"
#3b,"SpriteVisible perso1d off"
#3b,"SpriteVisible perso1q off"
vous comprenez que gagner des lignes peut être utile... surtout pour ce genre de commande ^^
* je suis obligé de faire apparaître tous les sprites au début sinon ça ne marche pas (bien)/.
Dans just basic j'ai vus que l'on pouvais utiliser la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q on" pour faire en sorte que plusieurs sprites soient visibles...
Par contre la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q off" ne marche pas ! ce qui me pousse à écrire ceci pour que seul le sprite perso1z soit visible :
#3b,"SpriteVisible perso1s off"
#3b,"SpriteVisible perso1d off"
#3b,"SpriteVisible perso1q off"
vous comprenez que gagner des lignes peut être utile... surtout pour ce genre de commande ^^
* je suis obligé de faire apparaître tous les sprites au début sinon ça ne marche pas (bien)/.
atomose:
Où as-tu lu ça ?
En toute logique, si le paramètre ON d'une commande fonctionne, le paramètre OFF pour cette même commande doit fonctionner pareil non... !?
Au lieu de plein de lignes, tu peux aussi faire une petite boucle FOR...TO...NEXT sur tous les SPRITES qui doivent recevoir le même paramétrage par exemple...
Dans mon post du 15/06/11 à 13h04 et le morceau de programme que j'ai écrit pour toi, il y a plein d'exemples d'utilisations des commandes des SPRITES dans des boucles qui auraient pu t'aider avec les SPRITES. Il y a même exactement ce que tu cherches à faire... car dit moi si je me trompe mais tu cherches actuellement à sélectionner le bon sprite par rapport au sens de son déplacement je suppose...
@+
Edité par cassiope01 Le 18/08/2011 à 14h40
J'ai une question :
Dans just basic j'ai vus que l'on pouvais utiliser la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q on" pour faire en sorte que plusieurs sprites soient visibles...
Dans just basic j'ai vus que l'on pouvais utiliser la commande #3b,"SpriteVisible perso1d perso1s perso1z perso1q on" pour faire en sorte que plusieurs sprites soient visibles...
Où as-tu lu ça ?
En toute logique, si le paramètre ON d'une commande fonctionne, le paramètre OFF pour cette même commande doit fonctionner pareil non... !?
Au lieu de plein de lignes, tu peux aussi faire une petite boucle FOR...TO...NEXT sur tous les SPRITES qui doivent recevoir le même paramétrage par exemple...
Dans mon post du 15/06/11 à 13h04 et le morceau de programme que j'ai écrit pour toi, il y a plein d'exemples d'utilisations des commandes des SPRITES dans des boucles qui auraient pu t'aider avec les SPRITES. Il y a même exactement ce que tu cherches à faire... car dit moi si je me trompe mais tu cherches actuellement à sélectionner le bon sprite par rapport au sens de son déplacement je suppose...
@+
Edité par cassiope01 Le 18/08/2011 à 14h40
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
en effet oui, mais le problème qui ce pose est que lorsque je remplace on par off rien ne marche ... bizarre nan ? ce qui fait que je suis obligé de faire 3 lignes au lieu d'une; et a la longue j'ai déjà une centaine de ligne qui pourrais tenir sur 20 lignes si cette commande marchait ><!
atomose:
Pourquoi tu répètes ton post ? j'avais compris la première fois.
Par contre tu ne sembles pas comprendre le mien...
Je ne sais plus quoi te dire...
Cherche peut-être autour des quelques lignes dont tu penses qu'elles ne "marchent pas"...
@+
Edité par cassiope01 Le 18/08/2011 à 17h33
en effet oui, mais le problème qui ce pose est que lorsque je remplace on par off rien ne marche ... bizarre nan ? ce qui fait que je suis obligé de faire 3 lignes au lieu d'une; et a la longue j'ai déjà une centaine de ligne qui pourrais tenir sur 20 lignes si cette commande marchait ><!
Pourquoi tu répètes ton post ? j'avais compris la première fois.
Par contre tu ne sembles pas comprendre le mien...

Je ne sais plus quoi te dire...

Cherche peut-être autour des quelques lignes dont tu penses qu'elles ne "marchent pas"...
@+
Edité par cassiope01 Le 18/08/2011 à 17h33
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Autre bug en parlant du personnage. Quand tu appuies sur une touche, le personnage bouge sur place, quelque soit la touche du clavier que tu appuies...
j'avais aussi remarquer ^^ ! il n'y a pas de commande pour faire en sorte que seulement quelques touches précise le face bouger et non tout le clavier ?
Ben si, tu dois le programmer ça aussi

Si tu veux, tu peux regarder INKEY$ que tu utilises déjà par exemple...
Tel que tu l'as programmé, à chaque fois que l'appui sur une touche est détecté par #3b,"when characterInput [control_touchec]" , le label [control_touchec] est donc lancé, mais le drawsprites qui s'y trouve n'est soumis à aucune condition, donc il agit sur l'animation des sprites à tous les coups...
D'une façon générale, DRAWSPRITES utilise pas mal de ressources et ne devrait être appelé QUE lorsque tu viens de modifier quelque chose sur un sprite. Il y a pas mal de drawsprites qui ne servent à rien dans ton prog.
@+
Edité par cassiope01 Le 18/08/2011 à 18h30




Si tu veux, tu peux regarder INKEY$ que tu utilises déjà par exemple...
Tel que tu l'as programmé, à chaque fois que l'appui sur une touche est détecté par #3b,"when characterInput [control_touchec]" , le label [control_touchec] est donc lancé, mais le drawsprites qui s'y trouve n'est soumis à aucune condition, donc il agit sur l'animation des sprites à tous les coups...

D'une façon générale, DRAWSPRITES utilise pas mal de ressources et ne devrait être appelé QUE lorsque tu viens de modifier quelque chose sur un sprite. Il y a pas mal de drawsprites qui ne servent à rien dans ton prog.
@+
Edité par cassiope01 Le 18/08/2011 à 18h30
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
merci a toi

Je ne comprends toujours pas pourquoi tu ne veux pas déplacer le personnage à la souris comme on te l'a largement suggéré, y compris sur le forum anglosaxon je crois bien !?
Au moins augmente le 'pas' de déplacement (qui d'ailleurs pourrait prendre la forme d'une variable globale modifiable à volonté histoire d'adapter facilement la vitesse de déplacement du personnage à ta convenance) parce que là... c'est lourd de devoir laisser le doigt sur les touches. Pas cool !
@+
Edité par cassiope01 Le 18/08/2011 à 19h41
Au moins augmente le 'pas' de déplacement (qui d'ailleurs pourrait prendre la forme d'une variable globale modifiable à volonté histoire d'adapter facilement la vitesse de déplacement du personnage à ta convenance) parce que là... c'est lourd de devoir laisser le doigt sur les touches. Pas cool !
@+
Edité par cassiope01 Le 18/08/2011 à 19h41
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
En plus, les jambes du personnage bougent 50 fois trop vite par rapport à la vitesse à laquelle il se déplace réellement.
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
je sais bien et je compte m'occuper de son déplacement ne vous inquiété pas ^^ !
pioupiou je viens de faire une refonte complète du code d'Eternal quest ! j'ai viré une dizaine de variable, simplifié le code et je l'ai structuré !!! maintenant seule les flèches font bouger le personnage, il ne bug plus du tout et on peut passer d'une carte à l'autre sans risquer de crash ! =)
je viens d'y est passer deux heures et mes neurones font grèves maintenant ! ( c'est bien des français ça !!! =P )
y a pas a dire la 2.1 aura changé le jeu ^^ ! ( espérons que ce soit en mieux XD )
Edité par atomose Le 19/08/2011 à 13h49
pioupiou je viens de faire une refonte complète du code d'Eternal quest ! j'ai viré une dizaine de variable, simplifié le code et je l'ai structuré !!! maintenant seule les flèches font bouger le personnage, il ne bug plus du tout et on peut passer d'une carte à l'autre sans risquer de crash ! =)
je viens d'y est passer deux heures et mes neurones font grèves maintenant ! ( c'est bien des français ça !!! =P )
y a pas a dire la 2.1 aura changé le jeu ^^ ! ( espérons que ce soit en mieux XD )
Edité par atomose Le 19/08/2011 à 13h49
Courage alors
Normalement ce sera forcément en mieux Atomose 
Sont pas non plus très malins tes neurônes
dis leur d'attendre la rentrée pour faire grève, ce sera bien plus efficace
Edité par cassiope01 Le 20/08/2011 à 10h25

Sont pas non plus très malins tes neurônes




Edité par cassiope01 Le 20/08/2011 à 10h25
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
hum besoin d'aide pour m"expliquer quelques petites choses....
voila quand mon personnage marche il ne bug plus mais il marche 10 fois trop vite ! j'ai donc mis la fonction "timer pause" mais le problème c'est que lorsque j'appuis sur la touche pour le faire bouger il fait son premier pas parfaitement et paf un message d'erreur me disant "invaled branch label : [control_toucha] " j'en est donc déduit que le fait de rester appuyé sur la touche rendais le timer pause inutilisable car chaque instructions est largement inférieur à 90 millisecondes ... je vous pose donc ma question :
Comment faire en sorte que l'ordinateur prend en compte la touche lorsque j'appuis, puis pendant 90 millisecondes ne prend plus en compte la touche en question, puis après cela reprend en compte la touche ???
merci a vous, c'est le dernier problème ... après je poste la 2.1 promis
voila quand mon personnage marche il ne bug plus mais il marche 10 fois trop vite ! j'ai donc mis la fonction "timer pause" mais le problème c'est que lorsque j'appuis sur la touche pour le faire bouger il fait son premier pas parfaitement et paf un message d'erreur me disant "invaled branch label : [control_toucha] " j'en est donc déduit que le fait de rester appuyé sur la touche rendais le timer pause inutilisable car chaque instructions est largement inférieur à 90 millisecondes ... je vous pose donc ma question :
Comment faire en sorte que l'ordinateur prend en compte la touche lorsque j'appuis, puis pendant 90 millisecondes ne prend plus en compte la touche en question, puis après cela reprend en compte la touche ???
merci a vous, c'est le dernier problème ... après je poste la 2.1 promis

Peut-être qu'il te faut mettre un 'scan' quelque part, mais sans voir le code il est impossible de t'aider.
Pourquoi mettre un timer puisque tu veux que le personnage ne bouge qu'avec le clavier ?
Essaye alors de mettre un 'drawsprites' dès la détection de l'appui sur les flèches... par exemple !
Pourquoi mettre un timer puisque tu veux que le personnage ne bouge qu'avec le clavier ?
Essaye alors de mettre un 'drawsprites' dès la détection de l'appui sur les flèches... par exemple !
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
il n'y a en effet pas besoin de timer si on appuis sur la touche toute les secondes mais si on reste appuyer alors le personnage continue a avancer et ses mouvements sont anormalement rapides. voici le code utilisé:
Code TEXT :
Edité par atomose Le 21/08/2011 à 21h43
Code TEXT :
[st] WindowWidth = 700 WindowHeight = 640 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) BackgroundColor$ = "black" : ForegroundColor$ = "white" nomainwin statictext #3a.texte, "Production 2011-2012", 295, 170, 120, 60 statictext #3a.texte2, "Tous droits réservés*", 295, 260, 400, 50 statictext #3a.texte, "Créé par : Alexandre Lomuto", 205, 500, 400, 50 groupbox #3a, "", 275, 140, 160, 110 open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for window_nf as #3a print #3a, "font Times New Roman 20" print #3a.texte2, "!font Times New Roman 10" timer 4000, [st2] #3a, "trapclose [quit1]" wait [st2] playwave "music\music1.wav", loop close #3a [start] loadbmp "JB", "bmp\donjon.bmp" bmpbutton #3b, "bmp\jouer.bmp", [button1Click], LR, 350,210 bmpbutton #3b, "bmp\charger.bmp", [I2], LR, 150,45 bmpbutton #3b, "bmp\Help.bmp", [aide], LR, 290,45 bmpbutton #3b, "bmp\Exit.bmp", [quit], LR, 10,45 open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for graphics_nsb_nf as #3b timer 100, [refresh] #3b, "trapclose [quit]" #3b, "background JB" #3b, "drawsprites" wait [button1Click] unloadbmp "JB" close #3b goto[button1Clickbis] [retour1] unloadbmp "JB" close #3b goto[button1Clickbis] [retour2] unloadbmp "JB" close #3b goto[button3Clickbis2] [button1Clickbis] WindowWidth = 600 WindowHeight = 600 bmpbutton #3b, "bmp\bouttonhumain1.bmp", [button3Click], LR, 350, 240 bmpbutton #3b, "bmp\bouttonelfe1.bmp", [I2], LR, 220, 240 bmpbutton #3b, "bmp\bouttonnain1.bmp", [I2], LR,90, 240 bmpbutton #3b, "bmp\bouttonogre1.bmp", [I2], LR, 290, 200 bmpbutton #3b, "bmp\bouttonorcs1.bmp", [I2], LR, 150, 200 loadbmp "JB", "bmp\heroes.bmp" open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for graphics_nsb_nf as #3b #3b, "background JB" #3b, "trapclose [quit]" #3b, "drawsprites" wait [button3Click] unloadbmp "JB" close #3b goto[button3Clickbis2] [button3Clickbis1] close #3b goto[button3Clickbis2] [button3Clickbis2] WindowWidth = 630 WindowHeight = 650 bmpbutton #3b, "bmp\retour.bmp", [retour1], LR, 410, -2 bmpbutton #3b, "bmp\util.bmp", [page2], LR, 155, -2 bmpbutton #3b, "bmp\util2.bmp", [page3], LR, 82, -2 bmpbutton #3b, "bmp\util3.bmp", [jeuhumain], LR, 254, 2 bmpbutton #3b, "bmp\util1.bmp", [retour2], LR, 337, -2 loadbmp "JB", "bmp\humain.bmp" open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for graphics_nsb_nf as #3b #3b, "background JB" #3b, "trapclose [quit]" #3b, "drawsprites" wait [page2] unloadbmp "JB" loadbmp "JB", "bmp\humain2.bmp" #3b, "background JB" #3b, "drawsprites" wait [page3] unloadbmp "JB" loadbmp "JB", "bmp\humain3.bmp" #3b, "background JB" #3b, "drawsprites" wait [jeuhumain] playwave "" playwave "music\music12.wav", loop unloadbmp "JB" map1=0 close #3b goto [jeuhumain1] [map1] unloadbmp "JB" close #3b goto[jeuhumain1] wait [jeuhumain1] WindowWidth = 1020:WindowHeight = 590 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) agrandmap=1:sortbook=1:inventaire=1:menugame=1:minimap1x=16:minimap1y=435:hb1x=-10:hb1y=408:curseurx=55:curseury=517 timer 0 loadbmp"JB", "bmp\maphum1.bmp" sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur hb1" for s = 1 to 19 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next bmpbutton #3b, "bmp\menu.bmp", [menu], LR, -15, -15 bmpbutton #3b, "bmp\livresort.bmp", [sort], LR, 123, -20 bmpbutton #3b, "bmp\inventaire.bmp", [inventaire], LR, 123, 35 bmpbutton #3b, "bmp\agrandir.bmp", [map1grand], LR, 768, 73 open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b if map1= 0 then gosub[map1a] if map1= 1 then gosub[map1b] gosub [mapreg1] #3b,"spritexy perso1s ";perso1sx;" ";perso1sy #3b,"SpriteVisible perso1z off" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1d off" perso1zx=perso1sx:perso1zy=perso1sy:perso1qx=perso1sx:perso1qy=perso1sy:perso1dx=perso1sx:perso1dy=perso1sy #3b,"when characterInput [control_touchea]" #3b,"drawsprites" wait [map1a] perso1sx=616:perso1sy=118 return [map1b] perso1sx=180:perso1sy=30 return [control_touchea] if asc(right$(Inkey$,1))= _VK_LEFT then gosub [persoq] if asc(right$(Inkey$,1))= _VK_RIGHT then gosub [persod] if asc(right$(Inkey$,1))= _VK_UP then gosub [persoz] if asc(right$(Inkey$,1))= _VK_DOWN then gosub [persos] if Inkey$ = "I" then [inventaire] if Inkey$ = "L" then [sort] if Inkey$ = "M" then [menu] 'lm if perso1dy <100 and perso1dx=260 then perso1dx=258 if perso1zx >258 and perso1zy=100 then perso1zy=102 if perso1dy <160 and perso1dx=320 then perso1dx=318 if perso1zx >318 and perso1zy=160 then perso1zy=162 if perso1zx >570 and perso1zy=162 then perso1zy=160 if perso1dy <220 and perso1dx=390 then perso1dx=388 if perso1zx >388 and perso1zy=220 then perso1zy=222 if perso1zx >570 and perso1zy=222 then perso1zy=220 if perso1qy <220 and perso1qx=570 then perso1qx=572 if perso1zx >570 and perso1zy=110 then perso1zy=112 if perso1dy <132 and perso1dx=630 then perso1dx=628 if perso1zx >630 and perso1zy=130 then perso1zy=132 if perso1qy <320 and perso1qx=146 then perso1qx=148 if perso1sx <170 and perso1sy=280 then perso1sy=278 if perso1qy >280 and perso1qx=170 then perso1qx=172 if perso1sx <240 and perso1sy=330 then perso1sy=328 if perso1qy >328 and perso1qx=240 then perso1qx=242 if perso1sx <370 and perso1sy=348 then perso1sy=346 if perso1qy >346 and perso1qx=370 then perso1qx=372 if perso1sx <580 and perso1sy=364 then perso1sy=362 if perso1dy >310 and perso1dx=580 then perso1dx=578 if perso1sx >578 and perso1sy=310 then perso1sy=308 if perso1sx >660 and perso1sy=308 then perso1sy=310 if perso1qy >308 and perso1qx=660 then perso1qx=662 if perso1sx >660 and perso1sy=330 then perso1sy=328 if perso1dy >260 and perso1dx=730 then perso1dx=728 if perso1sx >728 and perso1sy=260 then perso1sy=258 if perso1sx >790 and perso1sy=258 then perso1sy=260 if perso1qy >258 and perso1qx=790 then perso1qx=792 if perso1dy >286 and perso1dx=820 then perso1dx=818 if perso1sx >818 and perso1sy=286 then perso1sy=284 if perso1dy >100 and perso1dx=840 then perso1dx=838 if perso1zx >790 and perso1zy=150 then perso1zy=152 if perso1dy <150 and perso1dx=790 then perso1dx=788 'mp2 if perso1zx <290 and perso1zy=20 then goto[map2bis] wait [map2bis] map1=1 map2=0 [map2] sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur hb1" for s = 1 to 19 unloadbmp word$(sprites$,s) next unloadbmp "JB" close #3b goto [jeuhumain2] wait [jeuhumain2] WindowWidth=1020:WindowHeight=590 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) agrandmap=1:sortbook=1:inventaire=1:menugame=1:hb1x=-10:hb1y=408:minimap1x=16:minimap1y=435:curseurx=55:curseury=497 timer 0 loadbmp"JB", "bmp\maphum2.bmp" sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur hb1" for s = 1 to 19 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next bmpbutton #3b, "bmp\menu.bmp", [menu], LR, 15, -10 bmpbutton #3b, "bmp\livresort.bmp", [sort], LR, 123, -20 bmpbutton #3b, "bmp\inventaire.bmp", [inventaire], LR, 123, 35 bmpbutton #3b, "bmp\agrandir.bmp", [map1grand], LR, 768, 73 open "Le Donjon De Sheidra Map N°2" for graphics_nsb_nf as #3b if map2= 0 then gosub[map2a] if map2= 1 then gosub[map2b] gosub[mapreg1] #3b,"spritexy perso1z ";perso1zx;" ";perso1zy #3b,"SpriteVisible perso1s off" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1d off" perso1sx=perso1zx:perso1sy=perso1zy:perso1qx=perso1sx:perso1qy=perso1sy:perso1dx=perso1sx:perso1dy=perso1sy #3b,"when characterInput [control_toucheb]" #3b,"drawsprites" wait [map2a] perso1zx=200:perso1zy=360 return [map2b] perso1sx=800:perso1sy=250 return [control_toucheb] if asc(right$(Inkey$,1))= _VK_LEFT then gosub [persoq] if asc(right$(Inkey$,1))= _VK_RIGHT then gosub [persod] if asc(right$(Inkey$,1))= _VK_UP then gosub [persoz] if asc(right$(Inkey$,1))= _VK_DOWN then gosub [persos] if Inkey$ = "I" then [inventaire] if Inkey$ = "L" then [sort] if Inkey$ = "M" then [menu] 'lm2 if perso1sy>390 then perso1sy=390 if perso1qy <400 and perso1qx=120 then perso1qx=122 if perso1zx <190 and perso1zy=250 then perso1zy=252 if perso1qy <250 and perso1qx=192 then perso1qx=194 if perso1zx <260 and perso1zy=150 then perso1zy=152 if perso1dy <200 and perso1dx=250 then perso1dx=248 if perso1zx >250 and perso1zy=200 then perso1zy=202 if perso1dy <316 and perso1dx=300 then perso1dx=298 if perso1zx >300 and perso1zy=316 then perso1zy=318 if perso1zx >356 and perso1zy=318 then perso1zy=316 if perso1qy <318 and perso1qx=356 then perso1qx=358 if perso1zx >356 and perso1zy=240 then perso1zy=242 if perso1zx >430 and perso1zy=242 then perso1zy=240 if perso1qy <242 and perso1qx=430 then perso1qx=432 if perso1zx >430 and perso1zy=202 then perso1zy=200 if perso1zx >430 and perso1zy=100 then perso1zy=102 if perso1dy <170 and perso1dx=600 then perso1dx=598 if perso1zx >600 and perso1zy=170 then perso1zy=172 if perso1dy >336 and perso1dx=530 then perso1dx=528 if perso1sx >530 and perso1sy=336 then perso1sy=334 if perso1sx >610 and perso1sy=334 then perso1sy=336 if perso1qy >334 and perso1qx=610 then perso1qx=612 if perso1dy >280 and perso1dx=660 then perso1dx=658 if perso1sx >658 and perso1sy=280 then perso1sy=278 if perso1dy >266 and perso1dx=690 then perso1dx=688 if perso1sx >688 and perso1sy=262 then perso1sy=260 if perso1sx >750 and perso1sy=260 then perso1sy=262 if perso1qy >260 and perso1qx=750 then perso1qx=752 if perso1sx >790 and perso1sy=278 then perso1sy=280 if perso1qy >278 and perso1qx=790 then perso1qx=792 if perso1sx >790 and perso1sy=340 then perso1sy=338 if perso1dy >280 and perso1dx=840 then perso1dx=838 if perso1sx >840 and perso1sy=280 then perso1sy=278 if perso1dy >258 and perso1dx=870 then perso1dx=868 if perso1sx >868 and perso1sy=258 then perso1sy=256 'mp3 if perso1sx <350 and perso1sy=380 then goto[map1] if perso1dy >100 and perso1dx=980 then goto[map3bis] wait [map3bis] map2=1 map3=0 [map3] sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur hb1" for s = 1 to 19 unloadbmp word$(sprites$,s) next unloadbmp "JB" close #3b goto [jeuhumain3] wait [jeuhumain3] WindowWidth=1020:WindowHeight = 590 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) agrandmap=1:sortbook=1:inventaire=1:menugame=1:map2=1:hb1x=-10:hb1y=408:minimap1x=16:minimap1y=435:curseurx=87:curseury=488 timer 0 loadbmp"JB", "bmp\maphum3.bmp" sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur hb1" for s = 1 to 19 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next bmpbutton #3b, "bmp\menu.bmp", [menu], LR, 15, -10 bmpbutton #3b, "bmp\livresort.bmp", [sort], LR, 123, -20 bmpbutton #3b, "bmp\inventaire.bmp", [inventaire], LR, 123, 35 bmpbutton #3b, "bmp\agrandir.bmp", [map1grand], LR, 768, 73 open "Le Donjon De Sheidra Map N°3" for graphics_nsb_nf as #3b if map3=0 then gosub[map3a] if map3=1 then gosub[map3b] gosub[mapreg1] #3b,"spritexy perso1d ";perso1dx;" ";perso1dy #3b,"SpriteVisible perso1z off" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1s off" perso1zx=perso1dx:perso1zy=perso1dy:perso1qx=perso1zx:perso1qy=perso1zy:perso1sx=perso1qx:perso1sy=perso1qy #3b,"when characterInput [control_touchec]" #3b,"drawsprites" wait [map3a] perso1dx=20:perso1dy=320 return [map3b] perso1dx=60:perso1dy=40 return [control_touchec] if asc(right$(Inkey$,1))= _VK_LEFT then gosub [persoq] if asc(right$(Inkey$,1))= _VK_RIGHT then gosub [persod] if asc(right$(Inkey$,1))= _VK_UP then gosub [persoz] if asc(right$(Inkey$,1))= _VK_DOWN then gosub [persos] if Inkey$ = "I" then [inventaire] if Inkey$ = "L" then [sort] if Inkey$ = "M" then [menu] 'lm3 'mp4 wait [sec] wait [persod] #3b,"SpriteVisible perso1s perso1d perso1q perso1z on" #3b,"SpriteVisible perso1s off" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1z off" #3b,"SpriteVisible perso1d on" perso1qx=perso1dx : perso1sx=perso1dx : perso1zx=perso1dx perso1dx=perso1dx+2 #3b,"spritexy perso1d ";perso1dx;" ";perso1dy #3b,"spritexy curseur ";curseurx;" ";curseury #3b,"cyclesprite perso1d 1" #3b,"drawsprites" call pause 100 return [persoq] #3b,"SpriteVisible perso1d perso1s perso1z perso1q on" #3b,"SpriteVisible perso1s off" #3b,"SpriteVisible perso1d off" #3b,"SpriteVisible perso1z off" #3b,"SpriteVisible perso1q on" perso1dx=perso1qx : perso1sx=perso1qx : perso1zx=perso1qx perso1qx=perso1qx-2 #3b,"spritexy perso1q ";perso1qx;" ";perso1qy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1q 1" #3b,"drawsprites" return [persos] #3b,"SpriteVisible perso1d perso1z perso1q perso1s on" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1d off" #3b,"SpriteVisible perso1z off" #3b,"SpriteVisible perso1s on" perso1dy=perso1sy : perso1zy=perso1sy : perso1qy=perso1sy perso1sy=perso1sy+2 #3b,"spritexy perso1s ";perso1sx;" ";perso1sy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1s 1" #3b,"drawsprites" return [persoz] #3b,"SpriteVisible perso1d perso1z perso1q perso1s on" #3b,"SpriteVisible perso1q off" #3b,"SpriteVisible perso1d off" #3b,"SpriteVisible perso1s off" #3b,"SpriteVisible perso1z on" perso1dy=perso1zy : perso1qy=perso1zy : perso1sy=perso1zy perso1zy=perso1zy-2 #3b,"spritexy perso1z ";perso1zx;" ";perso1zy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1z 1" #3b,"drawsprites" return [refresh] #3b,"drawsprites" wait [menu] if menugame=1 then [menu2] if menugame=2 then wait [menu2] menugame=2 WindowWidth = 195 WindowHeight = 445 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) bmpbutton #3.I2, "bmp\menugame.bmp", [I2], UL, 0, 0 bmpbutton #3, "bmp\aidemenu.bmp", [aide], LR, 0, 238 bmpbutton #3, "bmp\chargermenu.bmp", [I2], LR, 0, 161 bmpbutton #3, "bmp\savemenu.bmp", [I2], LR, 0, 77 bmpbutton #3, "bmp\quitmenu.bmp", [quit3], LR, 0, -1 open " " for window_nf as #3 print #3.I2, "disable" #3,"trapclose [quit3b]" wait [inventaire] if inventaire=1 then [inventaire2] if inventaire=2 then wait [inventaire2] inventaire=2 WindowWidth = 780 WindowHeight = 425 UpperLeftX=int((DisplayWidth-WindowWidth)/1.8) UpperLeftY=int((DisplayHeight-WindowHeight)/2.8) bmpbutton #31.I2, "bmp\invent.bmp", [I2], UL, 0, 0 open "Inventaire" for window_nf as #31 print #31.I2, "disable" #31,"trapclose [quit31]" wait [sort] if sortbook=1 then [sort2] if sortbook=2 then wait [sort2] sortbook=2 WindowWidth = 780 WindowHeight = 425 UpperLeftX=int((DisplayWidth-WindowWidth)/1.8) UpperLeftY=int((DisplayHeight-WindowHeight)/2.8) bmpbutton #32.I2, "bmp\book.bmp", [I2], UL, 0, 0 open "Livre des Sorts et compétences pour Humain" for window_nf as #32 print #32.I2, "disable" #32,"trapclose [quit32]" wait [map1grand] if agrandmap=1 then [map1grand2] if agrandmap=2 then wait [map1grand2] agrandmap=2 WindowWidth = 650 WindowHeight = 650 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) bmpbutton #33.I2, "bmp\carteindic1.bmp", [I2], UL, 0, 0 open "Livre des Sorts et compétences pour Humain" for window_nf as #33 print #33.I2, "disable" #33,"trapclose [quit33]" wait [I2] wait [mapreg1] #3b,"background JB" #3b,"trapclose [quit]" #3b,"addsprite hb1 hb1" #3b,"addsprite minimap1 minimap1" #3b,"addsprite curseur curseur" #3b,"addsprite perso1z perso1z" #3b,"addsprite perso1s perso1s" #3b,"addsprite perso1d perso1d" #3b,"addsprite perso1q perso1q" #3b,"addsprite perso1d perso2d perso3d perso4d" #3b,"addsprite perso1q perso2q perso3q perso4q" #3b,"addsprite perso1s perso2s perso3s perso4s" #3b,"addsprite perso1z perso2z perso3z perso4z" #3b,"spritexy hb1 ";hb1x;" ";hb1y #3b,"spritexy minimap1 ";minimap1x;" ";minimap1y #3b,"spritexy curseur ";curseurx;" ";curseury #3b,"setfocus" #3b "when leftButtonMove SimpleClick" return [quit] menugame=1 timer 0 confirm "Voulez vous Quittez le jeu ?"; quit$ if quit$ = "no" then wait playwave "" close #3b end [quit1] close #3a end [quit31] inventaire=1 close #31 scan #3b "SetFocus; DrawSprites" wait [quit32] sortbook=1 close #32 scan #3b "SetFocus; DrawSprites" wait [quit33] agrandmap=1 close #33 scan #3b "SetFocus; DrawSprites" wait [quit2] aide=1 close #3c wait [quit3] close #3 timer 200, [quit] wait [quit3b] menugame=1 close #3 wait [aide] if aide=2 then wait aide=2 WindowWidth = 700 WindowHeight = 640 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) groupbox #3c, "", 260, 5, 180, 80 bmpbutton #3c, "bmp\aidefile.bmp", [I2], UL, 380, 110 button #3c, " Quêtes ", [I2], LR, 520, 290 button #3c, "Inventaire", [I2], LR, 440, 290 button #3c, "Livre des Sorts", [I2], LR, 345, 290 button #3c, " Les Combats ", [I2], LR, 215, 290 statictext #3c.texte1, "Menu Aide", 280, 30, 150, 30 statictext #3c.texte2, "Fonctionnement du jeu : ", 50, 110, 200, 20 statictext #3c.texte, "Pour vous diriger utilisez les flèches de votre clavier :", 50, 140, 330, 60 statictext #3c.texte, "Si votre personnage ne peut plus bouger suite à une reprise du jeu ou bien encore à une ouverture de fenêtre (Quêtes, inventaire, autres...) cliquez avec le curseur de votre souris sur votre personnage puis faite glisser le curseur de la souris tout en restant appuyé. Enfin, réutilisez les touches de mouvement habituelles.", 50, 160, 450, 100 statictext #3c.texte, "* Si la page devient blanche utilisez la même technique. ", 50, 260, 450, 40 statictext #3c.texte, "Voir aussi :", 50, 300, 90, 20 statictext #3c.texte3, "Mise à jour, bugs, support en ligne : ", 50, 380, 450, 30 statictext #3c.texte, "Une aide est à la disposition pour toute personne sur le forum (site officiel) à l'adresse suivante :", 50, 410, 450, 60 statictext #3c.texte, "Les mises à jours seront disponibles pour les personnes ayant acheté la version complète ainsi qu'une sauvegarde des fichiers si ceci sont corrompus ou effacer (voir conditions sur le site). La version démo ne sera pas mise à jour, sauf si bugs ou améliorations graphiques obligent.", 50, 450, 450, 130 Open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for window_nf As #3c print #3c, "font Times New Roman 12" print #3c.texte1, "!font Times New Roman 25" print #3c.texte2, "!font Times New Roman 16" print #3c.texte3, "!font Times New Roman 16" #3c, "trapclose [quit2]" wait sub SimpleClick handle$, MouseX, MouseY scan #3b "SetFocus; DrawSprites" end sub sub pause temp timer temp, [suit] wait [suit] timer 0 end sub
Edité par atomose Le 21/08/2011 à 21h43
retire le 'call pause 100'
Comme je te l'ai déjà suggéré plus haut, c'est sur le 'pas' de déplacement (via une variable à laquelle tu donneras la valeur du nombre de pixels que tu choisis pour 1 PAS du bonhomme, par exemple) qu'il te faudrait jouer.
Tu devrais te servir de 'select case... case... case... end select ' plutôt que des 'if ... then' pour la détection des touches.
'Select case' JB s'arrête à la première occurence 'vrai' , avec tes 'if' , même si une touche est détectée, tu testes quand même toutes les autres... ce qui ne sert à rien à priori.
Code VB :
De plus , il se pourrait que tu te sois trompé dans l'ordre d'affichage des images de 'marche' du personnage, car il donne plutôt l'impression de faire du moon-walk
Une question : - les 4 sens du personnage sont constitués de 4 images dont 2 d'entre elles sont identiques (la 1 et la 3 je crois). Pourquoi ne pas avoir déclaré QUE les 3 images différentes... économie d'un sprites.
Je m'explique :
Code VB :
à remplacer par
Code VB :
et ainsi par la suite tu te sers d'un meilleur nommage des personnages plus facile à gérer : persoDirNord, persoDirEst, persoDirSud, persoDirOuest.
La, ton personnage sera bien constitué de 4 images dont 2 identiques (à l'aide de seulement 3 images différentes).
En fait je ne suis pas sûr que tu ais bien compris les paramètres de la commande 'ADDSPRITE' : le premier 'mot' qui suit la commande est le nom que tu donnes au sprite pour l'appeler ensuite avec JB, et les 'mots' suivants sont la ou les images qui le constitue (déclarées auparavant avec loadbmp bien sûr).
Je crois bien que dans tes ADDSPRITES, certains portent le même nom, donc c'est le dernier déclaré qui sera valide.
Il y a trop d'ADDSPRITES inutiles. Tu charges ta RAM pour rien...!
Normalement tu déclares 1 seule fois tes SPRITES en début de programme, et c'est tout ce dont tu as besoin...! (sachant qu'un SPRITES n'est lié qu'avec 1 seule fenêtre bien sûr.)
Toujours des répétitions de commandes inutiles (et même de groupes de commandes),création et destruction de fenêtres inutilement, structures et [labels] inutiles, etc... pas énormément de différences avec la 1.9 ...
Si tu continues comme ça, ceux qui n'ont pas une config de PC très costaud (les petits ASUS EEEPC et autres petits NoteBooks par exemple ) risque bien de ne pas avoir le même résultat que toi à l'écran (fluidité etc) ... !
A suivre...
Courage.
Edité par cassiope01 Le 23/08/2011 à 07h47
Comme je te l'ai déjà suggéré plus haut, c'est sur le 'pas' de déplacement (via une variable à laquelle tu donneras la valeur du nombre de pixels que tu choisis pour 1 PAS du bonhomme, par exemple) qu'il te faudrait jouer.
Tu devrais te servir de 'select case... case... case... end select ' plutôt que des 'if ... then' pour la détection des touches.
'Select case' JB s'arrête à la première occurence 'vrai' , avec tes 'if' , même si une touche est détectée, tu testes quand même toutes les autres... ce qui ne sert à rien à priori.
Code VB :
... [control_touchec] select case case asc(right$(Inkey$,1))= _VK_LEFT : gosub [persoq] case asc(right$(Inkey$,1))= _VK_RIGHT : gosub [persod] case asc(right$(Inkey$,1))= _VK_UP : gosub [persoz] case asc(right$(Inkey$,1))= _VK_DOWN : gosub [persos] case Inkey$ = "I" : gosub [inventaire] case Inkey$ = "L" :gosub [sort] case Inkey$ = "M" :gosub [menu] end select ...
De plus , il se pourrait que tu te sois trompé dans l'ordre d'affichage des images de 'marche' du personnage, car il donne plutôt l'impression de faire du moon-walk

Une question : - les 4 sens du personnage sont constitués de 4 images dont 2 d'entre elles sont identiques (la 1 et la 3 je crois). Pourquoi ne pas avoir déclaré QUE les 3 images différentes... économie d'un sprites.
Je m'explique :
Code VB :
#3b,"addsprite perso1d perso2d perso3d perso4d" #3b,"addsprite perso1q perso2q perso3q perso4q" #3b,"addsprite perso1s perso2s perso3s perso4s" #3b,"addsprite perso1z perso2z perso3z perso4z"
à remplacer par
Code VB :
#3b,"addsprite persoDirEst perso1d perso2d perso1d perso4d" #3b,"addsprite persoDirOuest perso1q perso2q perso1q perso4q" #3b,"addsprite persoDirSud perso1s perso2s perso1s perso4s" #3b,"addsprite persoDirNord perso1z perso2z perso1z perso4z"
et ainsi par la suite tu te sers d'un meilleur nommage des personnages plus facile à gérer : persoDirNord, persoDirEst, persoDirSud, persoDirOuest.
La, ton personnage sera bien constitué de 4 images dont 2 identiques (à l'aide de seulement 3 images différentes).
En fait je ne suis pas sûr que tu ais bien compris les paramètres de la commande 'ADDSPRITE' : le premier 'mot' qui suit la commande est le nom que tu donnes au sprite pour l'appeler ensuite avec JB, et les 'mots' suivants sont la ou les images qui le constitue (déclarées auparavant avec loadbmp bien sûr).
Je crois bien que dans tes ADDSPRITES, certains portent le même nom, donc c'est le dernier déclaré qui sera valide.
Il y a trop d'ADDSPRITES inutiles. Tu charges ta RAM pour rien...!
Normalement tu déclares 1 seule fois tes SPRITES en début de programme, et c'est tout ce dont tu as besoin...! (sachant qu'un SPRITES n'est lié qu'avec 1 seule fenêtre bien sûr.)
Toujours des répétitions de commandes inutiles (et même de groupes de commandes),
Si tu continues comme ça, ceux qui n'ont pas une config de PC très costaud (les petits ASUS EEEPC et autres petits NoteBooks par exemple ) risque bien de ne pas avoir le même résultat que toi à l'écran (fluidité etc) ... !
A suivre...
Courage.
Edité par cassiope01 Le 23/08/2011 à 07h47
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Merci pour t'as réponse ^^ ! Mais certains points ne sont pas clairs :
le persoDirEst corespond a quoi ? o_o
#3b,"addsprite persoDirEst perso1d perso2d perso1d perso4d"
#3b,"addsprite persoDirOuest perso1q perso2q perso1q perso4q"
#3b,"addsprite persoDirSud perso1s perso2s perso1s perso4s"
#3b,"addsprite persoDirNord perso1z perso2z perso1z perso4z"
De plus pour les addsprite si par exemple je marque :
"addsprite hbi" au lieu de addsprite hbi hbi" avant même que le jeu soit lancer j'ai un message d'erreur ...
pour ce qui est des labels je m'en occupe il y en aurra beaucoup moin dans la 2.1 promis !
le persoDirEst corespond a quoi ? o_o
#3b,"addsprite persoDirEst perso1d perso2d perso1d perso4d"
#3b,"addsprite persoDirOuest perso1q perso2q perso1q perso4q"
#3b,"addsprite persoDirSud perso1s perso2s perso1s perso4s"
#3b,"addsprite persoDirNord perso1z perso2z perso1z perso4z"
De plus pour les addsprite si par exemple je marque :
"addsprite hbi" au lieu de addsprite hbi hbi" avant même que le jeu soit lancer j'ai un message d'erreur ...
pour ce qui est des labels je m'en occupe il y en aurra beaucoup moin dans la 2.1 promis !
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie