Forum Liberty Basic France
• Index
Reprise du message précédent
En fait, ça viens de moi si je trouve que ton code et pas très bien structuré. Je code en C++ maintenant et pouvoir faire plusieurs fichiers (donc pas des pavé de 600 lignes) c'est le pied. Maintenant, avec LB, on peut pas, donc...
Par contre, il manque quand même les commentaires...
Bref...
Et, chez moi, cette commande midi fonctionne...
Fais voir la partie de ton code où tu la mets stp.
Avant l'animation du perso, fait le système de collision, une chose à la fois.
De rien
Cordialement
Jagang
En fait, ça viens de moi si je trouve que ton code et pas très bien structuré. Je code en C++ maintenant et pouvoir faire plusieurs fichiers (donc pas des pavé de 600 lignes) c'est le pied. Maintenant, avec LB, on peut pas, donc...
Par contre, il manque quand même les commentaires...
Bref...
Et, chez moi, cette commande midi fonctionne...
Fais voir la partie de ton code où tu la mets stp.
Avant l'animation du perso, fait le système de collision, une chose à la fois.
De rien
Cordialement
Jagang
Il est possible de séparer le code en LB, toutefois on ne peut pas le faire nativement il faut utiliser d'autres IDE tels que JaLBe ou LBuilder qui permettent de faire des includes. Je m'en sert et cela fonctionne très bien. JaLBe n'est plus mis à jour, mais LBuilder est un très bon IDE

salut,
hum comment on peut exécuter un programme avec une ligne de just basic ?
run " file namefile.exe" ???
exemple : j'ai une icone sur le bureau et je voudrais l'ouvrir avec un bmpbutton.....
quelle est la ligne de commande ??? je sais qu'elle existe mais j'ai des "syntaxe Error" -_-' je sais plus comment faire =( !
help !
Edité par atomose Le 12/06/2011 à 23h36
hum comment on peut exécuter un programme avec une ligne de just basic ?
run " file namefile.exe" ???
exemple : j'ai une icone sur le bureau et je voudrais l'ouvrir avec un bmpbutton.....
quelle est la ligne de commande ??? je sais qu'elle existe mais j'ai des "syntaxe Error" -_-' je sais plus comment faire =( !
help !
Edité par atomose Le 12/06/2011 à 23h36
Il faut faire "run chemin_du_fichier/fichier.exe" (:
Je suis pas sur que ca fonctionne pour les raccourcis du bureau (j'en doute même), dans ce cas, il faut bien pointer sur l'exécutable pointé par le raccourci.
Arrives-tu a mettre en place ton nouveau système de collisions ?
Cordialement
Jagang
Arrives-tu a mettre en place ton nouveau système de collisions ?
Cordialement
Jagang
Salut Atomose,
ton prog a une esthétique superbe ! j'aime aussi beaucoup la musique du "13ème guerrier"
A ce propos, mets playwave "" au lieu de playwave " ". Ça coupera la musique en sortant...
C'est TRÈS TRÈS difficile de travailler sur le prog de quelqu'un d'autre, chacun ayant ces méthodes et astuces...
D'après ce que je vois avec la version 1.8, tu utilises beaucoup les [labels] et tu écris à peu près les choses tel qu'elles te viennent... et tu n'utilses pas de variables tableaux ni les structures conditionnelles tel que "select case" qui te seraient pourtant très utile pour ton projet... ça fonctionne mais la structure générale est plutôt difficile à suivre quand on est pas l'auteur...
Tout ce que je peux te proposer sont quelques astuces "génériques"...
par exemple, il existe un commande que je trouve SUPER en JB : c'est word$( txt$, n, [sep$] )
Vois ce qu'on peux simplifier dans ton prog lors du chargement et déchargement des SPRITES par exemple : (tu peux donc retirer toutes les lignes avec une apostrophe devant...)
Code TEXT :
Ce que te propose Jagang est absolument ce qu'il te faudrai suivre (à propos des tableaux) afin de te débarrasser de tous ces "if" pour contrôler les personnage, mais je comprend que cela te nécessite une grosse refonte de ton programme...
Quant à la jouabilité, il serait vraiment simple à programmer de pouvoir déplacer le personnage uniquement à la souris... éventuellement un clic sur le personnage s'il y en a plusieurs, puis un clic vers une destination possible, et hop, il y va...!
Bon courage pour la suite.
Ne baisse pas les bras.
Je trouve moi aussi que ce forum n'a pas beaucoup de succès... les français ne connaissent pas JB...
Edité par cassiope01 Le 13/06/2011 à 13h28
ton prog a une esthétique superbe ! j'aime aussi beaucoup la musique du "13ème guerrier"

A ce propos, mets playwave "" au lieu de playwave " ". Ça coupera la musique en sortant...

C'est TRÈS TRÈS difficile de travailler sur le prog de quelqu'un d'autre, chacun ayant ces méthodes et astuces...
D'après ce que je vois avec la version 1.8, tu utilises beaucoup les [labels] et tu écris à peu près les choses tel qu'elles te viennent... et tu n'utilses pas de variables tableaux ni les structures conditionnelles tel que "select case" qui te seraient pourtant très utile pour ton projet... ça fonctionne mais la structure générale est plutôt difficile à suivre quand on est pas l'auteur...

Tout ce que je peux te proposer sont quelques astuces "génériques"...
par exemple, il existe un commande que je trouve SUPER en JB : c'est word$( txt$, n, [sep$] )
Vois ce qu'on peux simplifier dans ton prog lors du chargement et déchargement des SPRITES par exemple : (tu peux donc retirer toutes les lignes avec une apostrophe devant...)
Code TEXT :
[st] WindowWidth = 700 WindowHeight = 600 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) nomainwin loadbmp "JB", "bmp\pr1.bmp" timer 100, [refresh] open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for graphics_nsb_nf as #3b timer 4000, [st2] #3b, "trapclose [quit]" #3b, "background JB" #3b, "drawsprites" wait [st2] unloadbmp "JB" playwave "music\5.wav", loop timer 100, [refresh] loadbmp "JB", "bmp\2.bmp" timer 3000, [st4] #3b, "trapclose [quit]" #3b, "background JB" #3b, "drawsprites" wait [st4] playwave "" playwave "music\3.wav", loop unloadbmp "JB" timer 100, [refresh] loadbmp "JB", "bmp\3.bmp" timer 500, [st5] #3b, "trapclose [quit]" #3b, "background JB" #3b, "drawsprites" wait [st5] unloadbmp "JB" timer 100, [refresh] loadbmp "JB", "bmp\2.bmp" timer 400, [st6] #3b, "trapclose [quit]" #3b, "background JB" #3b, "drawsprites" wait [st6] playwave "music\music1.wav", loop unloadbmp "JB" close #3b timer 400, [start] wait [start] loadbmp "JB", "bmp\donjon.bmp" bmpbutton #3b, "bmp\jouer.bmp", [button1Click], LR, 350,210 bmpbutton #3b, "bmp\charger.bmp", [charger], 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 [charger] wait [button1Click] unloadbmp "JB" close #3b goto[button1Clickbis] [retour1] unloadbmp "JB" close #3b goto[button1Clickbis] [retour2] unloadbmp "JB" close #3b goto[button3Clickbis2] [retouraide] unloadbmp "JB" close #3b goto[start] [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 timer 100, [refresh] 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" timer 100, [refresh] 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" var = 1 map1 = 1 fr = 1 close #3b goto [jeuhumain1] [map1] unloadbmp "JB" close #3b goto[jeuhumain1] wait [jeuhumain1] WindowWidth = 1020 WindowHeight = 590 loadbmp"JB", "bmp\maphum1.bmp" sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ "perso3q perso4q perso1z perso2z perso3z perso4z curseur p1 p1b p1c d1 d2 d3 hb1" for s = 1 to 25 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next ' loadbmp"minimap1", "bmp\minimap1.bmp" ' loadbmp"perso1d", "bmp\perso1d.bmp" ' loadbmp"perso2d", "bmp\perso2d.bmp" ' loadbmp"perso3d", "bmp\perso3d.bmp" ' loadbmp"perso4d", "bmp\perso4d.bmp" ' loadbmp"perso1s", "bmp\perso1s.bmp" ' loadbmp"perso2s", "bmp\perso2s.bmp" ' loadbmp"perso3s", "bmp\perso3s.bmp" ' loadbmp"perso4s", "bmp\perso4s.bmp" ' loadbmp"perso1q", "bmp\perso1q.bmp" ' loadbmp"perso2q", "bmp\perso2q.bmp" ' loadbmp"perso3q", "bmp\perso3q.bmp" ' loadbmp"perso4q", "bmp\perso4q.bmp" ' loadbmp"perso1z", "bmp\perso1z.bmp" ' loadbmp"perso2z", "bmp\perso2z.bmp" ' loadbmp"perso3z", "bmp\perso3z.bmp" ' loadbmp"perso4z", "bmp\perso4z.bmp" ' loadbmp"curseur", "bmp\curseur.bmp" ' loadbmp"p1", "bmp\p1.bmp" ' loadbmp"p1b", "bmp\p1b.bmp" ' loadbmp"p1c", "bmp\p1c.bmp" ' loadbmp"d1", "bmp\d1.bmp" ' loadbmp"d2", "bmp\d2.bmp" ' loadbmp"d3", "bmp\d3.bmp" ' loadbmp"hb1", "bmp\hb1.bmp" bmpbutton #3b, "bmp\inventaire.bmp", [inventaire], LR, 907, 462 open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b timer 1000, [for] #3b,"background JB" #3b,"trapclose [quit]" #3b,"addsprite perso1z perso1z" #3b,"addsprite perso1s perso1s" #3b,"addsprite perso1d perso1d" #3b,"addsprite perso1q perso1q" #3b,"addsprite hb1 hb1" #3b,"addsprite p1 p1" #3b,"addsprite d1 d1" #3b,"addsprite d2 d2" #3b,"addsprite d3 d3" #3b,"addsprite minimap1 minimap1" #3b,"addsprite curseur curseur" perso1sx=180:perso1sy=30 hb1x=-10:hb1y=408 d1x=600:d1y=0 d2x=600:d2y=0 d3x=600:d3y=0 p1x=620:p1y=0 minimap1x=16:minimap1y=435 curseurx=57:curseury=440 p1x=615:p1y=118 #3b,"spritexy perso1s ";perso1sx;" ";perso1sy #3b,"spritexy hb1 ";hb1x;" ";hb1y #3b,"spritexy d1 ";d1x;" ";d1y #3b,"spritexy d2 ";d2x;" ";d2y #3b,"spritexy d3 ";d3x;" ";d3y #3b,"spritexy p1 ";p1x;" ";p1y #3b,"spritexy minimap1 ";minimap1x;" ";minimap1y #3b,"spritexy curseur ";curseurx;" ";curseury #3b,"spritexy p1 ";p1x;" ";p1y #3b,"SpriteVisible d1 off" #3b,"SpriteVisible d2 off" #3b,"SpriteVisible d3 off" perso1zx=perso1sx : perso1zy=perso1sy : perso1qx=perso1sx : perso1qy=perso1sy : perso1dx=perso1sx : perso1dy=perso1sy #3b,"setfocus" #3b,"when characterInput [control_toucheb]" #3b,"drawsprites" wait [for] if fr= 1 then goto[fore] wait [fore] #3b,"SpriteVisible p1 off" #3b,"addsprite p1b p1b" #3b,"SpriteVisible p1b on" p1bx=p1x:p1by=p1y #3b,"spritexy p1b ";p1bx;" ";p1by #3b,"drawsprites" timer 1000, [for1] wait [for1] #3b,"SpriteVisible p1b off" #3b,"addsprite p1c p1c" #3b,"SpriteVisible p1c on" p1cx=p1bx:p1cy=p1by #3b,"spritexy p1c ";p1cx;" ";p1cy #3b,"drawsprites" timer 100, [for2] wait [for2] #3b,"SpriteVisible p1c off" #3b,"addsprite p1 p1" #3b,"SpriteVisible p1 on" p1x=p1cx:p1y=p1cy #3b,"spritexy p1 ";p1x;" ";p1y #3b,"drawsprites" timer 500, [for] wait [refresh] #3b,"drawsprites" wait [inventaire] WindowWidth = 780 WindowHeight = 425 UpperLeftX=int((DisplayWidth-WindowWidth)/1.8) UpperLeftY=int((DisplayHeight-WindowHeight)/2.8) bmpbutton #3.I2, "bmp\yxa3.bmp", [I2], UL, 0, 0 open "MENU : Inventaire" for window_nf as #3 print #3.I2, "disable" #3,"trapclose [quit2]" wait [I1] wait [I2] wait [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 perso1qx<20 then perso1qx=20 if perso1dx>990 then perso1dx=990 if perso1zy<10 then perso1zy=10 if perso1sy>390 then perso1sy=390 'p1 if perso1zx >610 and perso1zy=164 then perso1zy=166 if perso1zx >670 and perso1zy=166 then perso1zy=162 if perso1dy <166 and perso1dx=610 then perso1dx=608 if perso1dy <100 and perso1dx=608 then perso1dx=612 if perso1qy <166 and perso1qx=670 then perso1qx=672 if perso1qy <100 and perso1qx=672 then perso1qx=668 if perso1sx >606 and perso1sy=100 then perso1sy=98 if perso1sx >670 and perso1sy=98 then perso1sy=102 'lm if perso1qy <050 and perso1qx=120 then perso1qx=122 if perso1sx >140 and perso1sy=030 then perso1sy=032 if perso1sx <140 and perso1sy=050 then perso1sy=048 if perso1qy <050 and perso1qx=140 then perso1qx=138 if perso1qy >140 and perso1qx=130 then perso1qx=132 if perso1qy <300 and perso1qx=140 then perso1qx=142 if perso1sx <160 and perso1sy=306 then perso1sy=304 if perso1qy <300 and perso1qx=160 then perso1qx=158 if perso1qy >300 and perso1qx=160 then perso1qx=162 if perso1qy <350 and perso1qx=160 then perso1qx=162 if perso1sx <230 and perso1sy=344 then perso1sy=342 if perso1qy >350 and perso1qx=232 then perso1qx=234 if perso1qx >230 and perso1qy=370 then perso1qy=368 if perso1dy >360 and perso1dx=290 then perso1dx=288 if perso1sx >290 and perso1sy=360 then perso1sy=358 if perso1sx >360 and perso1sy=358 then perso1sy=362 if perso1qy >360 and perso1qx=354 then perso1qx=356 if perso1dy <055 and perso1dx=272 then perso1dx=270 if perso1dy >050 and perso1dx=270 then perso1dx=274 if perso1dy <050 and perso1dx=242 then perso1dx=246 if perso1sx >240 and perso1sy=050 then perso1sy=048 if perso1dy <100 and perso1dx=244 then perso1dx=242 if perso1dy >100 and perso1dx=240 then perso1dx=244 if perso1zx >242 and perso1zy=106 then perso1zy=108 if perso1zx >342 and perso1zy=108 then perso1zy=104 if perso1dy >100 and perso1dx=306 then perso1dx=304 if perso1dy >180 and perso1dx=304 then perso1dx=306 if perso1zx <330 and perso1zy=180 then perso1zy=178 if perso1zx >330 and perso1zy=182 then perso1zy=184 if perso1zx >500 and perso1zy=184 then perso1zy=180 if perso1dy >180 and perso1dx=380 then perso1dx=378 if perso1dy >240 and perso1dx=378 then perso1dx=382 if perso1zx >380 and perso1zy=240 then perso1zy=242 if perso1zx >560 and perso1zy=242 then perso1zy=238 if perso1qy <240 and perso1qx=556 then perso1qx=558 if perso1zx >540 and perso1zy=086 then perso1zy=088 if perso1dy <146 and perso1dx=708 then perso1dx=706 if perso1zx >708 and perso1zy=146 then perso1zy=148 if perso1dy <200 and perso1dx=780 then perso1dx=778 if perso1zx >780 and perso1zy=190 then perso1zy=192 if perso1dy >190 and perso1dx=830 then perso1dx=828 if perso1sx >720 and perso1sy=280 then perso1sy=278 if perso1dy >280 and perso1dx=720 then perso1dx=718 if perso1sx >640 and perso1sy=350 then perso1sy=348 if perso1qy >326 and perso1qx=640 then perso1qx=642 if perso1sx >570 and perso1sy=326 then perso1sy=324 if perso1sx >640 and perso1sy=324 then perso1sy=328 if perso1dy >324 and perso1dx=570 then perso1dx=568 if perso1sx >520 and perso1sy=370 then perso1sy=368 if perso1dy >370 and perso1dx=520 then perso1dx=518 'q1 if perso1zx >510 and perso1zy=170 and var = 1 then goto[q1] if perso1zx <310 and perso1zy=20 and map1 = 2 then goto[map2] if perso1zx <310 and perso1zy <50 then fr= 2 #3b,"drawsprites" wait [q1] var = 2 map1 = 2 #3b,"SpriteVisible d1 on" #3b,"drawsprites" timer 5000, [q2] wait [q2] #3b,"SpriteVisible d1 off" #3b,"SpriteVisible d2 on" #3b,"drawsprites" timer 5000, [q3] wait [q3] #3b,"SpriteVisible d2 off" #3b,"SpriteVisible d3 on" #3b,"drawsprites" timer 5000, [q4] wait [q4] #3b,"SpriteVisible d3 off" #3b,"drawsprites" timer 100, [for] wait [map2] ' sprites$ = "minimap1 perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s perso1q perso2q "+_ ' "perso3q perso4q perso1z perso2z perso3z perso4z curseur p1 p1b p1c d1 d2 d3 hb1" for s = 1 to 24 unloadbmp word$(sprites$,s) next unloadbmp "JB" ' unloadbmp "d1" ' unloadbmp "d2" ' unloadbmp "d3" ' unloadbmp "p1" ' unloadbmp "p1b" ' unloadbmp "p1c" ' unloadbmp "minimap1" ' unloadbmp "perso1d" ' unloadbmp "perso2d" ' unloadbmp "perso3d" ' unloadbmp "perso4d" ' unloadbmp "perso1s" ' unloadbmp "perso2s" ' unloadbmp "perso3s" ' unloadbmp "perso4s" ' unloadbmp "perso1q" ' unloadbmp "perso2q" ' unloadbmp "perso3q" ' unloadbmp "perso4q" ' unloadbmp "perso1z" ' unloadbmp "perso2z" ' unloadbmp "perso3z" ' unloadbmp "perso4z" close #3b goto[jeuhumain2] wait [jeuhumain2] WindowWidth = 1020 WindowHeight = 590 var2 = 1 map2 = 1 sprites$ = "minimap2 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 loadbmp"JB", "bmp\maphum2.bmp" ' loadbmp"minimap2", "bmp\minimap2.bmp" ' loadbmp"perso1d", "bmp\perso1d.bmp" ' loadbmp"perso2d", "bmp\perso2d.bmp" ' loadbmp"perso3d", "bmp\perso3d.bmp" ' loadbmp"perso4d", "bmp\perso4d.bmp" ' loadbmp"perso1s", "bmp\perso1s.bmp" ' loadbmp"perso2s", "bmp\perso2s.bmp" ' loadbmp"perso3s", "bmp\perso3s.bmp" ' loadbmp"perso4s", "bmp\perso4s.bmp" ' loadbmp"perso1q", "bmp\perso1q.bmp" ' loadbmp"perso2q", "bmp\perso2q.bmp" ' loadbmp"perso3q", "bmp\perso3q.bmp" ' loadbmp"perso4q", "bmp\perso4q.bmp" ' loadbmp"perso1z", "bmp\perso1z.bmp" ' loadbmp"perso2z", "bmp\perso2z.bmp" ' loadbmp"perso3z", "bmp\perso3z.bmp" ' loadbmp"perso4z", "bmp\perso4z.bmp" ' loadbmp"curseur", "bmp\curseur.bmp" ' loadbmp"hb1", "bmp\hb1.bmp" bmpbutton #3b, "bmp\inventaire.bmp", [inventaire], LR, 907, 462 open "Le Donjon De Sheidra Map N°2" for graphics_nsb_nf as #3b timer 10000, [refresh] #3b,"background JB" #3b,"trapclose [quit]" #3b,"addsprite perso1z perso1z" #3b,"addsprite perso1s perso1s" #3b,"addsprite perso1d perso1d" #3b,"addsprite perso1q perso1q" #3b,"addsprite hb1 hb1" #3b,"addsprite minimap2 minimap2" #3b,"addsprite curseur curseur" perso1zx=200:perso1zy=370 hb1x=-10:hb1y=408 minimap2x=16:minimap2y=435 curseurx=57:curseury=540 #3b,"spritexy perso1z ";perso1zx;" ";perso1zy #3b,"spritexy hb1 ";hb1x;" ";hb1y #3b,"spritexy minimap2 ";minimap2x;" ";minimap2y #3b,"spritexy curseur ";curseurx;" ";curseury perso1sx=perso1zx : perso1sy=perso1zy : perso1qx=perso1zx : perso1qy=perso1zy : perso1dx=perso1zx : perso1dy=perso1zy #3b,"setfocus" #3b,"when characterInput [control_touchec]" #3b,"drawsprites" wait [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 perso1qx<20 then perso1qx=20 if perso1dx>990 then perso1dx=990 if perso1zy<10 then perso1zy=10 if perso1sy>390 then perso1sy=390 if perso1sx <300 and perso1sy=380 then goto[map1] #3b,"drawsprites" wait [persod] #3b,"addsprite perso1d perso2d perso3d perso4d" #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 curseurx=curseurx+.3 #3b,"spritexy perso1d ";perso1dx;" ";perso1dy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1d 1" #3b,"drawsprites" return [persoq] #3b,"addsprite perso1q perso2q perso3q perso4q" #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 curseurx=curseurx-.3 #3b,"spritexy perso1q ";perso1qx;" ";perso1qy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1q 1" #3b,"drawsprites" return [persos] #3b,"addsprite perso1s perso2s perso3s perso4s" #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 curseury=curseury+.4 #3b,"spritexy perso1s ";perso1sx;" ";perso1sy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1s 1" #3b,"drawsprites" return [persoz] #3b,"addsprite perso1z perso2z perso3z perso4z" #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 curseury=curseury-.4 #3b,"spritexy perso1z ";perso1zx;" ";perso1zy #3b,"spritexy curseur ";curseurx;" ";curseury #3b, "cyclesprite perso1z 1" #3b,"drawsprites" return [quit] confirm "Voulez vous Quittez le jeu ?"; quit$ if quit$ = "no" then wait playwave "" close #3b end [quit2] close #3 timer 100, [for] wait [aide] close#3b timer 500, [refresh] loadbmp "aide", "bmp\aide.bmp" menu #3b, "&Retour", "&Revenir au Menu Principal", [retouraide] Open "2011-2012 / Game creat by Alexandre Lomuto All copyright reserved*" for graphics_nsb_nf As #3b #3b "TrapClose [quit]" #3b, "background aide" #3b, "drawsprites" wait
Ce que te propose Jagang est absolument ce qu'il te faudrai suivre (à propos des tableaux) afin de te débarrasser de tous ces "if" pour contrôler les personnage, mais je comprend que cela te nécessite une grosse refonte de ton programme...
Quant à la jouabilité, il serait vraiment simple à programmer de pouvoir déplacer le personnage uniquement à la souris... éventuellement un clic sur le personnage s'il y en a plusieurs, puis un clic vers une destination possible, et hop, il y va...!
Bon courage pour la suite.
Ne baisse pas les bras.
Je trouve moi aussi que ce forum n'a pas beaucoup de succès... les français ne connaissent pas JB...

Edité par cassiope01 Le 13/06/2011 à 13h28
____________________
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
Ce n'est pas vraiment simple de diriger un personnage à la sourie, il faut dans ce cas implémenter un algo de pathfinding. BlackTemplar et d'autre en ont fait un en LB. Ils sont sur le forum partie Open Source. Mais ce n'est actuellement pas une priorité je pense.
Cordialement
Jagang
Cordialement
Jagang
C'est pour ça que j'ai écrit "destination POSSIBLE" : dans un premier temps, le personnage peut s'arrêter dès qu'il rencontre un obstacle... il suffit alors de cliquer à nouveau vers une direction qui fera éviter l'obstacle et ainsi de suite... c'est beaucoup plus simple à programmer, et toujours mieux que de garder le doigt en permanence sur les touches...
Qu'en pense l'auteur ? hello atomose !
L'algorythme "A Start" en JB est un pathfinder Jagang, nous avons déjà échangé la dessus tout les 2
...
Edité par cassiope01 Le 13/06/2011 à 12h59
Qu'en pense l'auteur ? hello atomose !
L'algorythme "A Start" en JB est un pathfinder Jagang, nous avons déjà échangé la dessus tout les 2

Edité par cassiope01 Le 13/06/2011 à 12h59
____________________
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
hi ! désolé je viens de me réveiller a 13h.... XD
merci beaucoup pour ton aide cassiope01 je v mettre t ligne et corriger les " " par "" ^^ !
pour ce qui est de la refonte avec le tableau j'ai beau regarder ce que vous m'avez dit je ne sais pas d'ou commencer =( il ne faut pas oublier que c'est mon premier programme JB ^^ je n'est aucune expérience !
question : le tableau est t-il indispensable ? mes limites marches très bien non ?
je vais faire les modifications et je vous poste la 1.9 demain ou après demain ( il y a pas mal de modification dans la 1.9 avec de nouvelles images et de nouvelles options ^^)
En tout cas merci a vous ! si un jour ce projet arrive a son terme ça sera bien grâce a vous
pour le "run" voici la commande qui ne marche pas :
run "C:/ProgramFiles/Windows NT/Accessories/wordpad.exe"
ou
run "C:\ProgramFiles\Windows NT\Accessories\wordpad.exe"
même avec ce que vous m'avez dit ça ne marche toujours pas ^^....
Edité par atomose Le 13/06/2011 à 13h43
merci beaucoup pour ton aide cassiope01 je v mettre t ligne et corriger les " " par "" ^^ !
pour ce qui est de la refonte avec le tableau j'ai beau regarder ce que vous m'avez dit je ne sais pas d'ou commencer =( il ne faut pas oublier que c'est mon premier programme JB ^^ je n'est aucune expérience !
question : le tableau est t-il indispensable ? mes limites marches très bien non ?
je vais faire les modifications et je vous poste la 1.9 demain ou après demain ( il y a pas mal de modification dans la 1.9 avec de nouvelles images et de nouvelles options ^^)
En tout cas merci a vous ! si un jour ce projet arrive a son terme ça sera bien grâce a vous

pour le "run" voici la commande qui ne marche pas :
run "C:/ProgramFiles/Windows NT/Accessories/wordpad.exe"
ou
run "C:\ProgramFiles\Windows NT\Accessories\wordpad.exe"
même avec ce que vous m'avez dit ça ne marche toujours pas ^^....
Edité par atomose Le 13/06/2011 à 13h43
Déjà, as-tu chargé ton tableau de collision ?
Il faut dans un premier temps faire ça (au niveau où tu charge ton niveau).
Ensuite, on verra.
Casiope : Je parlait bien de A*, par contre, oui, ton idée semble pas mal, mais laissons déjà Atomose mettre en place le système de collision.
Cordialement
Jagang
Il faut dans un premier temps faire ça (au niveau où tu charge ton niveau).
Ensuite, on verra.
Casiope : Je parlait bien de A*, par contre, oui, ton idée semble pas mal, mais laissons déjà Atomose mettre en place le système de collision.
Cordialement
Jagang
Eh ben Atomose ! tu subis le "JetLag" ou bien
Oui, oui, elles fonctionnent bien tes limites (sauf dans la 2ème scène), mais quel boulot de toutes les écrire une par une dans ton programme...!
Mais tu as raison : vas à ton rythme...
Par contre, je te propose d'utiliser quelques minutes mon programme ici PathFinder_AStar.bas
Tu dessines des formes en gardant le clic gauche appuyé, et ça mets à 1 les cases qui seront "pleines" (en cliquant sur "Del" en bas à gauche tu les remets à 0) , chaque case fait partie d'une seule variable tableau déclarée à 2 dimensions (x,y)...
Imagines que tu puisse "dessiner" et donc écrire dans une telle variable tableau, toutes les limites d'une même scène de ton jeu !
Mon programme n'est pas fait pour ça à l'origine. Il est fait pour trouver TOUJOURS le chemin le plus court (s'il y en a un !) entre 2 points.
Certain utilisent aussi un simple fichier texte par image, où toutes les lignes sont des 0 et des 1 (les 1 sont les limites bien sûr) qui sont très facile à exploiter en JB. Il suffit de recharger chaque ligne du fichier texte en question dans une chaine de caractère ou une variable tableau, puis exploiter tout ça facilement avec les commandes adaptées de JB...
Petit conseil qui vaut ce qu'il vaut: Jagang à raison, pense à "commenter" ton code beaucoup plus, ça aide beaucoup à s'y retrouver...
Oulà !!!! ..\Windows NT\.. ton PC est sous quel OS ???
Edité par cassiope01 Le 13/06/2011 à 14h25

Oui, oui, elles fonctionnent bien tes limites (sauf dans la 2ème scène), mais quel boulot de toutes les écrire une par une dans ton programme...!
Mais tu as raison : vas à ton rythme...

Par contre, je te propose d'utiliser quelques minutes mon programme ici PathFinder_AStar.bas
Tu dessines des formes en gardant le clic gauche appuyé, et ça mets à 1 les cases qui seront "pleines" (en cliquant sur "Del" en bas à gauche tu les remets à 0) , chaque case fait partie d'une seule variable tableau déclarée à 2 dimensions (x,y)...
Imagines que tu puisse "dessiner" et donc écrire dans une telle variable tableau, toutes les limites d'une même scène de ton jeu !
Mon programme n'est pas fait pour ça à l'origine. Il est fait pour trouver TOUJOURS le chemin le plus court (s'il y en a un !) entre 2 points.
Certain utilisent aussi un simple fichier texte par image, où toutes les lignes sont des 0 et des 1 (les 1 sont les limites bien sûr) qui sont très facile à exploiter en JB. Il suffit de recharger chaque ligne du fichier texte en question dans une chaine de caractère ou une variable tableau, puis exploiter tout ça facilement avec les commandes adaptées de JB...
Petit conseil qui vaut ce qu'il vaut: Jagang à raison, pense à "commenter" ton code beaucoup plus, ça aide beaucoup à s'y retrouver...
Oulà !!!! ..\Windows NT\.. ton PC est sous quel OS ???
Edité par cassiope01 Le 13/06/2011 à 14h25
____________________
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
OK merci =)
Je vais me mettre au tableau avec les collisions ^^ je vous passe donc la 1.9 aujourd'hui , la 2.0 si j'ai beaucoup de chance aura ce fameux système de case et quelques autres amélioration =) .
A noté que le "menu" n'est pas fini dans la 1.9 que je vous donne, c'est une maquette pour que je sache ou j'en suis
.
J'ai aussi refait pas mal d'images, corrigé certains bugs, amélioré le code avec ce que vous m'avez dit (music "", load-unloadbmp etc...). J'ai aussi vu que j'avais laissé une 20ène de vieille images non utilisés que j'ai donc retiré XD.
Ah et pour la map2, je n'est pas fait les limites donc c'est tout a fait normale que ça ne marche pas XD !
je suis sous w7, le chemin est bon ^^ c'est le NT qui pose problème ???
Voici le lien de téléchargement :
http://www.megaupload.com/?d=WJJI7KI3
Edité par atomose Le 13/06/2011 à 14h26
Je vais me mettre au tableau avec les collisions ^^ je vous passe donc la 1.9 aujourd'hui , la 2.0 si j'ai beaucoup de chance aura ce fameux système de case et quelques autres amélioration =) .
A noté que le "menu" n'est pas fini dans la 1.9 que je vous donne, c'est une maquette pour que je sache ou j'en suis

J'ai aussi refait pas mal d'images, corrigé certains bugs, amélioré le code avec ce que vous m'avez dit (music "", load-unloadbmp etc...). J'ai aussi vu que j'avais laissé une 20ène de vieille images non utilisés que j'ai donc retiré XD.
Ah et pour la map2, je n'est pas fait les limites donc c'est tout a fait normale que ça ne marche pas XD !
je suis sous w7, le chemin est bon ^^ c'est le NT qui pose problème ???
Voici le lien de téléchargement :
http://www.megaupload.com/?d=WJJI7KI3
Edité par atomose Le 13/06/2011 à 14h26
tu as oublié le lien... Ah ça y est, c'est ok.
La chance n'a rien à voir la dedans...! crois en toi petit scarabée
Fais gaffe à l'entorse au neurône de si bon matin !

Je crois bien que JB a besoin d'une "adaptation" pour fonctionner correctement avec Win7, en particulier avec les chemins. Va voir sur le forum américain...
Edité par cassiope01 Le 13/06/2011 à 14h35
La chance n'a rien à voir la dedans...! crois en toi petit scarabée



Fais gaffe à l'entorse au neurône de si bon matin !



Je crois bien que JB a besoin d'une "adaptation" pour fonctionner correctement avec Win7, en particulier avec les chemins. Va voir sur le forum américain...
Edité par cassiope01 Le 13/06/2011 à 14h35
____________________
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 vais voir ça tout de suite ^^
merci à tous !
merci à tous !

As-tu bien lu la section "Sprite Commands" dans l'aide de JB ?
Tu te rends compte que tu ajoutes un sprite à chaque fois que l'appui sur une touche est détectée, tu risque de remplir la RAM du PC à vitesse grand V et finir par avoir des pb... de ce côté là...
Il y a pourtant des fonctions de déplacement et d'animation des sprites déjà crées qui sont là pour ça !
J'ai eu une erreur dès que j'ai lancé la 1.9, mais je ne sais pas pourquoi : pas de pb la seconde fois...
Pas de variable tableau dans cette version ?
Le petit curseur doit être géré en même temps et de la même façon que le personnage que tu déplaces.
@+
COURAGE.
PS: peut-être pourrais-tu ne pas mettre les fichiers sons dans les versions suivantes... c'est du lourd !
Edité par cassiope01 Le 13/06/2011 à 14h57
Tu te rends compte que tu ajoutes un sprite à chaque fois que l'appui sur une touche est détectée, tu risque de remplir la RAM du PC à vitesse grand V et finir par avoir des pb... de ce côté là...
Il y a pourtant des fonctions de déplacement et d'animation des sprites déjà crées qui sont là pour ça !
J'ai eu une erreur dès que j'ai lancé la 1.9, mais je ne sais pas pourquoi : pas de pb la seconde fois...
Pas de variable tableau dans cette version ?
Le petit curseur doit être géré en même temps et de la même façon que le personnage que tu déplaces.
@+
COURAGE.
PS: peut-être pourrais-tu ne pas mettre les fichiers sons dans les versions suivantes... c'est du lourd !

Edité par cassiope01 Le 13/06/2011 à 14h57
____________________
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 je prend note ^^ !
Pour l'animation du personnage c'est mon problème majeur .... je n'arrive malheureusement pas a régler ce problème =( .
je vais aller voir le tutoriel en espérant y trouver de l'aide ( j'ai rien trouvé sur coolprog) .
si quelqu'un arrive a trouver une solution pour l'animation ce serai géniale !
merci a vous =) !
ps : je ne vous transmettrais plus les sons promis ^^ sauf changement .
Pour l'animation du personnage c'est mon problème majeur .... je n'arrive malheureusement pas a régler ce problème =( .
je vais aller voir le tutoriel en espérant y trouver de l'aide ( j'ai rien trouvé sur coolprog) .
si quelqu'un arrive a trouver une solution pour l'animation ce serai géniale !
merci a vous =) !
ps : je ne vous transmettrais plus les sons promis ^^ sauf changement .
Voici un petit programme pour te montrer comment enregistrer les limtes en direct live dans une variable tableau... par exemple :
Code TEXT :
Tu imagines bien le GROS avantage que tu peux tirer du fait que les cases peuvent aussi avoir une autre valeur que 1 !!!
Pour le déplacement des sprites tu as SPRITEMOVEXY, SPRITEXY,etc... et pour l'animation tu as CYCLESPRITE, SPRITEIMAGE, etc... comme je te l'ai dit, recherche la section "Sprite Commands" dans l'aide...
@+
PS: petite idée en passant : les grosses images de texte sur fond noir de présentation (pr1.bmp et pr2.bmp), tu pourrais simplement le faire en JB... cela économise déjà 2 gros bmp inutiles à mon humble avis...
Edité par cassiope01 Le 13/06/2011 à 17h15
Code TEXT :
nomainwin WindowWidth = 885 WindowHeight = 540 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) Global ncx, ncy, lc ncx = 59 'nbre de case en x ncy = 35 'nbre de case en y lc = 15 'dimension d'une case (carré) dim cas(ncx,ncy) 'déclaration de la variable tableau qui contiendra TOUTES les limites pour cette scène. loadbmp "JB", "bmp\maphum2.bmp" open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b #3b "trapclose [quit]" #3b "down" #3b "drawbmp JB" unloadbmp "JB" #3b "color darkgray" for x = 1 to ncx 'dessin de la grille #3b "place ";x*lc;" 0" #3b "goto ";x*lc;" ";ncy*lc next for y = 1 to ncy #3b "place 0 ";y*lc #3b "goto ";ncx*lc;" ";y*lc next #3b "when leftButtonMove LeftButtonClick" 'clic gauche cliqué + mouvement de la souris wait sub LeftButtonClick handle$, MouseX, MouseY mx = int(MouseX / lc)+1 my = int(MouseY / lc)+1 if mx>1 and mx<ncx and my>1 and my<ncy then ' if cas(mx,my) = 0 then cas(mx,my) = 1 else cas(mx,my) = 0 cas(mx,my) = 1 '<------------------ c'est ici que la valeur de la case est mise à 1 call drawcell mx, my, cas(mx,my) end if end sub sub drawcell xx, yy, v if v then #3b "backcolor blue" #3b "place ";(xx-1)*lc+2;" ";(yy-1)*lc+2 #3b "boxfilled ";xx*lc-1;" ";yy*lc-1 ' option d'affichage valeur des cases... ' #3b "color black" ' #3b "place ";(xx-1)*lc+lc/3;" ";(yy-1)*lc+2*(lc/3)+2 ' #3b "|";v end sub [quit] close #3b end
Tu imagines bien le GROS avantage que tu peux tirer du fait que les cases peuvent aussi avoir une autre valeur que 1 !!!

Pour le déplacement des sprites tu as SPRITEMOVEXY, SPRITEXY,etc... et pour l'animation tu as CYCLESPRITE, SPRITEIMAGE, etc... comme je te l'ai dit, recherche la section "Sprite Commands" dans l'aide...
@+
PS: petite idée en passant : les grosses images de texte sur fond noir de présentation (pr1.bmp et pr2.bmp), tu pourrais simplement le faire en JB... cela économise déjà 2 gros bmp inutiles à mon humble avis...

Edité par cassiope01 Le 13/06/2011 à 17h15
____________________
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 je vois pas comment passer de mon code a ce type de code c'est ça le problème....
même avec des exemples concret comme ceux-la je suis perdu !
entre votre tableau et mes limites il y a une grande différence, vous me donner des variables et des commandes alors que je ne sais même pas leurs significations o_O
Quelqu’un pourrai m'expliquer clairement comment procéder ? étape par étape svp j'ai les neurones en bouillie ces derniers temps =P
même avec des exemples concret comme ceux-la je suis perdu !
entre votre tableau et mes limites il y a une grande différence, vous me donner des variables et des commandes alors que je ne sais même pas leurs significations o_O
Quelqu’un pourrai m'expliquer clairement comment procéder ? étape par étape svp j'ai les neurones en bouillie ces derniers temps =P
2h17 du matin... forcément que tu vois pas
Si tu as les neurônes en bouillie pourquoi cherches-tu à t'en servir ????
Tu devrais essayer d'abord d'en reconstituer quelques uns, puis quand tu en auras reconstitué assez, il y a sur ce site des gars qui font un sacré boulot d'écriture d'un Tuto JB. ici Tuto LB
Je te suggère d'y jeter un oeil... article : "Des nouveautés sur les variables" par exemple.
Il y a quand même quelques commentaires explicites dans le bout de prog que j'ai écris pour toi...!
Il y a aussi 2 pages de l'aide de JB que j'ai choisi d'imprimer pour les avoir toujours sous la main :
- Graphics Commands
- Sprites Commands
- sans oublier les règles de FLUSH..
Je ne saurais trop te conseiller de les trouver et de faire de même et même les traduire pourquoi pas...! tu pourrais en faire profiter tout le monde par exemple
J'ai remarqué un truc intéressant dans ton programme : tu n'utilise pas de Background pour les Sprites. La MAP est elle même un Sprite !!!
Je n'y avais jamais pensé, mais pourquoi pas...!
Par contre, d'après ce que je crois savoir, en JB, l'ordre de superposition des sprites est celui de leur déclaration. Il suffit de le savoir...!
Donc si tu avais déclaré le Sprite de la MAP en DERNIER, vu qu'elle prend toute la fenêtre, ben ça fonctionne mais tu n'aurais simplement pas pu voir les autres sprites puisqu'ils auraient été affichés en dessous...!!!
En tout cas tu n'est pas obligé d'ouvrir une nouvelle fenêtre pour chaque nouvelle MAP.... il te suffit de changer le Background, ou bien d'après ta technique, de supprimer, puis recréer tous les Sprites nécessaires dans le bon ordre... puis d'écrire un simple "drawsprites".
@+
Edité par cassiope01 Le 14/06/2011 à 07h55

Si tu as les neurônes en bouillie pourquoi cherches-tu à t'en servir ????

Tu devrais essayer d'abord d'en reconstituer quelques uns, puis quand tu en auras reconstitué assez, il y a sur ce site des gars qui font un sacré boulot d'écriture d'un Tuto JB. ici Tuto LB
Je te suggère d'y jeter un oeil... article : "Des nouveautés sur les variables" par exemple.
Il y a quand même quelques commentaires explicites dans le bout de prog que j'ai écris pour toi...!

Il y a aussi 2 pages de l'aide de JB que j'ai choisi d'imprimer pour les avoir toujours sous la main :
- Graphics Commands
- Sprites Commands
- sans oublier les règles de FLUSH..
Je ne saurais trop te conseiller de les trouver et de faire de même et même les traduire pourquoi pas...! tu pourrais en faire profiter tout le monde par exemple


J'ai remarqué un truc intéressant dans ton programme : tu n'utilise pas de Background pour les Sprites. La MAP est elle même un Sprite !!!
Je n'y avais jamais pensé, mais pourquoi pas...!
Par contre, d'après ce que je crois savoir, en JB, l'ordre de superposition des sprites est celui de leur déclaration. Il suffit de le savoir...!
Donc si tu avais déclaré le Sprite de la MAP en DERNIER, vu qu'elle prend toute la fenêtre, ben ça fonctionne mais tu n'aurais simplement pas pu voir les autres sprites puisqu'ils auraient été affichés en dessous...!!!
En tout cas tu n'est pas obligé d'ouvrir une nouvelle fenêtre pour chaque nouvelle MAP.... il te suffit de changer le Background, ou bien d'après ta technique, de supprimer, puis recréer tous les Sprites nécessaires dans le bon ordre... puis d'écrire un simple "drawsprites".
@+
Edité par cassiope01 Le 14/06/2011 à 07h55
____________________
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
Cassiope, c'est pas 2h17 mais 21h17
De plus, si il est sous Seven, il doit avoir des problème avec la documentation, comme moi. Il y a des erreurs de compatibilité entre les versions du système de doc (.chm je suppose, ha non, c'est .hlp). Bref, Windows quoi
Atomose, Cassiope a remarqué en effet que tu n'utilisais de background pour tes map. C'est un trot puisque comme ça, pour changer de map, tu as juste à changer de background, et pas besoin de recharger toute les sprites.
Bon, alors je vais t'expliquer comment faire le système de collision :
Voila, demande encore si tu ne comprends toujours pas, je me ferais un plaisir de te ré-expliquer en détail.
Par contre, n'attends pas un code tout près que je t'aurais fait (ou quelqu'un d'autre), sinon, tu ne progresseras pas (et en plus, j'ai la flemme
)
Cordialement
Jagang
EDIT : Bon ba pour la doc, je sais pas...
Je télécharge le programme qui permet de lire les .hlp sur Seven sur le site de Microsoft, mais quand le le lance, il me dit que la mise-à-jour ne s'applique pas à mon système... Vive Windows !

De plus, si il est sous Seven, il doit avoir des problème avec la documentation, comme moi. Il y a des erreurs de compatibilité entre les versions du système de doc (

Atomose, Cassiope a remarqué en effet que tu n'utilisais de background pour tes map. C'est un trot puisque comme ça, pour changer de map, tu as juste à changer de background, et pas besoin de recharger toute les sprites.
Bon, alors je vais t'expliquer comment faire le système de collision :
- D'abord, tu charges un tableau contenant les cases pour savoir si on peut ou pas passer par là. Comme Cassiope le propose, ton fichier contenant les valeurs des cases peut-être de la forme :
Citation:011001010101
110101110101
001010101011
Tu peux ainsi faire des boucles imbriqées pour mettre les valeurs dans ton tableau. (la première boucle avec un line input et la seconde avec un mid$()) (pour line input, cf ici, la première partie, et pour mid$(), cf ici, vers la fin de la partie Utiliser une Fonction)
Le chargement du tableau doit se faire en même temps que celui des images, pas la peine de le charger plusieurs fois, il ne change pas (et si il change, tu peux le faire dynamiquement dans le tableau) - Un fois ton tableau chargé, tout ce passe là où tu testes si le déplacement du personnage est possible. A chaque fois que le joueur va essayer de se déplacer, tu vas tester si la case dans laquelle il désir aller est libre.
Pour cela, tu va crée une fonction, genre estLibre(posX,posY).
Et à caque déplacement du joueur, tu vas faire :
Code VB :if estLibre(posX + deplacementX, posY + deplacementY) then posX = posX + deplacementX posY = posY + deplacementY end if
Ainsi, si la case est libre, le joueur se déplace, sinon, il ne bouge pas.
Voila, demande encore si tu ne comprends toujours pas, je me ferais un plaisir de te ré-expliquer en détail.
Par contre, n'attends pas un code tout près que je t'aurais fait (ou quelqu'un d'autre), sinon, tu ne progresseras pas (et en plus, j'ai la flemme

Cordialement
Jagang
EDIT : Bon ba pour la doc, je sais pas...
Je télécharge le programme qui permet de lire les .hlp sur Seven sur le site de Microsoft, mais quand le le lance, il me dit que la mise-à-jour ne s'applique pas à mon système... Vive Windows !
OUPPSSSS !! autant pour moi Atomose... j'ai failli être mauvaise langue...
Globalement
avec Jagang...
Par contre j'ai pas bien compris la phrase :
Citation:
...
Pour le hlp, je crois bien que tu trouveras tout sur le forum ricain et son wiki : ICI par exemple.
Edité par cassiope01 Le 14/06/2011 à 12h38


Globalement

Par contre j'ai pas bien compris la phrase :
Citation:
C'est un trot puisque comme ça, pour changer de map, tu as juste à changer de background, et pas besoin de recharger toute les sprites.
...
Pour le hlp, je crois bien que tu trouveras tout sur le forum ricain et son wiki : ICI par exemple.
Edité par cassiope01 Le 14/06/2011 à 12h38
____________________
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
• Index
2 Utilisateurs en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 2 Visiteurs
Utilisateurs en ligne : Aucun membre connecté
Utilisateurs en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie