Forum Liberty Basic France

Le 16/08/2011 à 17h48

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
Reprise du message précédent

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 ;) !
____________________
Yo !

MSN Web    
Le 16/08/2011 à 18h10

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
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 :siffle

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 :nex 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 :p :p :p

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

@+



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."

Web    
Le 18/08/2011 à 11h35

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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)/.
____________________
Yo !

MSN Web    
Le 18/08/2011 à 13h40

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
atomose:
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...


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."

Web    
Le 18/08/2011 à 15h31

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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 ><!
____________________
Yo !

MSN Web    
Le 18/08/2011 à 15h59

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
atomose:
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."

Web    
Le 18/08/2011 à 16h07

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
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'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 18/08/2011 à 16h14

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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 ?
____________________
Yo !

MSN Web    
Le 18/08/2011 à 16h40

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Ben si, tu dois le programmer ça aussi :lol :siffle :) ;)

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."

Web    
Le 18/08/2011 à 18h42

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
merci a toi ;)
____________________
Yo !

MSN Web    
Le 18/08/2011 à 18h55

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
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
____________________
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    
Le 18/08/2011 à 19h22

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
En plus, les jambes du personnage bougent 50 fois trop vite par rapport à la vitesse à laquelle il se déplace réellement.
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 18/08/2011 à 19h27

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Quand elles bougent ! :heink :siffle il est dopé :+1 :+1 :lol :siffle



Edité par cassiope01 Le 18/08/2011 à 19h40
____________________
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    
Le 19/08/2011 à 01h09

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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
____________________
Yo !

MSN Web    
Le 19/08/2011 à 17h09

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
Courage alors
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 20/08/2011 à 10h22

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Normalement ce sera forcément en mieux Atomose :top

Sont pas non plus très malins tes neurônes :siffle dis leur d'attendre la rentrée pour faire grève, ce sera bien plus efficace :lol :lol :lol



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."

Web    
Le 21/08/2011 à 16h26

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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 ;)
____________________
Yo !

MSN Web    
Le 21/08/2011 à 18h55

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
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 !
____________________
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    
Le 21/08/2011 à 21h43

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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 :
   [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
____________________
Yo !

MSN Web    
Le 22/08/2011 à 10h43

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
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 :
...
 [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), 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
____________________
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    
Le 22/08/2011 à 13h35

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 418
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 !
____________________
Yo !

MSN Web    

 |  |

4 Utilisateurs en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 4 Visiteurs
Utilisateurs en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie