Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Débarquement V3 | |
| | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Débarquement V3 Mer 10 Juin 2015 - 11:08 | |
| Vous trouverez sur mon Webdav, dans le dossier "jeu_en_2D" le zip "débarquement V3"
Après avoir dé-zipper, lancez deb3.bas ou deb3.exe, ensuite cliquez sur mission dans le menu, pour prendre les infos. Cette version fonctionne sans bug (connu de ma part) et elle est jouable.
Le niveau est facile (je gagne pratiquement toujours)
Bonne bataille aux intéressés.
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Mer 10 Juin 2015 - 17:13 | |
| J'ai vu ton post, je ne pourrais pas tester avant ce soir. A ma nouvelle place, je suis juste à côté du DSI alors ce n'est pas le genre de tests que je peu effectuer dans de bonnes conditions pour ma santé morale et ma gestion de carrière Par contre, j'ai une grande confiance dans l'interet de ton jeu donc je lme testerais très certainement ce soir sauf en cas d'impératif famillial (ça arrive de temps en temps) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Mer 10 Juin 2015 - 18:25 | |
| Heu... ! c'est quoi un DSI ? Directeur pour D je suppose, mais le reste ???. N'importe comment, inutile de risquer sa carrière sur un petit jeu en 2D. Sur ce jeu là, je vais arrêter, sauf peut-être une version plus rapide, pour ne pas se lasser trop vite. J'ai une nouvelle idée, je ne sais pas encore si elle aboutira, mais je commence à en écrire le scénario. Et cette fois, ce ne sera pas la guerre... N'hésite pas à critiquer (dans le sens positif du terme, analyser, juger... Comme tu le fait habituellement) A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Mer 10 Juin 2015 - 18:52 | |
| Voici la même version, mais le déplacement des soldats est plus rapide, ça raccourci bien le temps d'une partie. deb3.bas - Code:
-
' Débarquement hide 0 menu() : dim_label() : piste() ' règlages divers niveau%=2 : DistanceTir%=200 NbBouleBatBG%=10 : NbBouleBatBD%=10 : NBbouletCanHG%=10 : NBbouletCanHD%=10 show 0 : on_close 0,fin start() END rem ============================================================================ sub start() nbtour%=nbtour%+1 if even(nbtour%)=0 then tour$="ami" if even(nbtour%)=1 then tour$="ennemi" caption 0,"| Tour => "+str$(nbtour%)+" | Soldats amis: "+str$(NbSoldatA%)+" | Soldats ennemis: "+str$(NbSoldatE%)+" |" if NbSoldatA%<1 then victoireE() if NbSoldatE%<1 then victoireA() if tour$="ami" file_load picture1%,"Feu_Vert.bmp" : file_load picture2%,"Ami.bmp" caption alpha1%,"C'est votre tour" : tour_ami() end_if if tour$="ennemi" off_click scene_2d% : file_load picture1%,"Feu_Rouge.bmp" : file_load picture2%,"Ennemi.bmp" caption alpha1%,"Attaque Ennemi" : tour_ennemi() end_if end_sub rem ============================================================================ sub victoireA() if NbSoldatA%>9 then message "BRAVO ! vous avez gagné, largement !": pause 1000 : arret() : terminate if NbSoldatA%>5 and NbSoldatA%<10 then message "BRAVO ! mais beaucoup de dégâts.": pause 1000 : arret() : terminate if NbSoldatA%>0 and NbSoldatA%<6 then message "BRAVO ! vous avez gagné, mais à quel prix !": pause 1000 : arret() : terminate end_sub ' ------------------------------------------------------------------------------ sub victoireE() message "L'ennemi vous a vaincu... Vous allez devoir recommencer" : pause 1000 : arret() : terminate end_sub rem ============================================================================ sub tour_ennemi() Select_Actor_E() if NumSpriteE%=0 then caption alpha1%,"L'ennemi passe son tour" : start() : exit_sub Clear_Variables_EL(nb_V%) : EXPLODE("|",nom_sprite$(NumSpriteE%)) : Incremente_Variables_EL(Dlist_tri%) type_spriteE$=el$(2) if type_spriteE$="soldatE" caption alpha1%,"Mouvement d'un soldat ennemi..." Tir_Soldat_Ennemi(NumSpriteE%) : start() : exit_sub end_if if type_spriteE$="canonEG" if NBbouletCanHG%>0 caption alpha1%,"Bombardement du canon de gauche." tir_canon(NumSpriteE%,type_spriteE$,flammeHG%,bouletHG%,36,42) : start() : exit_sub else caption alpha1%,"L'ennemi passe son tour" : start() : exit_sub end_if end_if if type_spriteE$="canonED" if NBbouletCanHD%>0 caption alpha1%,"Bombardement du canon de droite." tir_canon(NumSpriteE%,type_spriteE$,flammeHD%,bouletHD%,546,42) : start() : exit_sub else caption alpha1%,"L'ennemi passe son tour" : start() : exit_sub end_if end_if end_sub ' ------------------------------------------------------------------------------ sub Tir_Soldat_Ennemi(NSA%) dim_local xa,ya,xd,yd,my%,mx% ' définir un point de déplacement ' pour les premier tours allez en avant mx%=width(scene_2d%) : my%=(height(scene_2d%)-150) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% : repeat : ya=int(rnd(my%)): until ya>0 and ya<(my%+100) ' enregistrer le dernier my% comme base de départ pour les premiers tours (empêche le soldat de reculer) if nbtour%<40 if count(Dlist_tri4%)>0 then my%=val(item_read$(Dlist_tri4%,1))+50 clear Dlist_tri4% : item_add Dlist_tri4%,my% end_if ' position de la balle sprite_position bal%,sprite_x_position(NSA%),sprite_y_position(NSA%) xd=sprite_x_position(bal%) : yd=sprite_y_position(bal%) :' position de départ ' déplacement Move_SoldatE(NSA%,xa,ya,xd,yd,50) ' recheche d'une cible à proximité Search_Cible_E(NSA%) if cible%=0 exit_sub else ' tir sprite_show bal% : xd=sprite_x_position(NSA%) : yd=sprite_y_position(NSA%) :' position de départ sprite_file_load NSA%,"soldatET.bmp" : sprite_position NSA%,xd,yd : pause 200 sprite_file_load NSA%,"soldatE.bmp" : sprite_position NSA%,xd,yd xa=sprite_x_position(cible%) : ya=sprite_y_position(cible%) Move_And_Test_Sprite(bal%,xa,ya,xd,yd+10,50,"ami"):' vit%(100) + => moins rapide et - => plus rapide sprite_hide bal% sprite_show boum% : sprite_position boum%,sprite_x_position(bal%),sprite_y_position(bal%) pause 200 : sprite_hide boum% sprite_position boum%,-50,-50 : sprite_position bal%,-100,-100 : ' déplacer hors de la vue if sprite_collisionsp%<>0 caption alpha1%,"Ce soldat est une plaie !" Kill_Target_And_Updates(sprite_collisionsp%) else if sprite_collisionsp%=0 and PrecisionTir%<>10 then caption alpha1%,"A coté ! " if sprite_collisionsp%=0 and PrecisionTir%=10 then caption alpha1%,"A coté ! " end_if end_if end_sub ' ------------------------------------------------------------------------------ sub Search_Cible_E(NSA%) ' retourne cible% dim_local i%,pxa,pya,pxmax,pymax,pxmin,pymin,pxc,pyc ' définition de la zone de tir if nbtour%>60 then elarg=elarg+1 pxa=sprite_x_position(NSA%) : pya=sprite_y_position(NSA%) :' position HG du soldat pxmax=pxa+50+elarg : pxmin=pxa-(50+elarg) :' position en x 50 de chaque coté pymax=pya+60+elarg : pymin=pya-(60+elarg) :' position en y devant if pxmax>width(scene_2d%) then pxmax=width(scene_2d%)-10 if pxmin<0 then pxmax=10 if pymax>(height(scene_2d%)-200) then pymax=(height(scene_2d%)-150) if pymin<0 then pymax=10 ' recheche d'une cible à l'intérieur du carré cible%=0 for i%=13 to 32 if sprites(i%,4)=1 and sprites(i%,2)=1 pxc=sprite_x_position(i%):pyc=sprite_y_position(i%) if pxc>pxmin and pxc<pxmax and pyc>pymin and pyc<pymax cible%=i%:exit_for end_if end_if next i% end_sub ' ------------------------------------------------------------------------------ sub Move_SoldatE(nsp%,pxa,pya,pxd,pyd,nbI%) ' Déplace le sprite nsp% des coordonées de départ (pxd,pyd) vers l'arrivée (pxa,pya) dim_local i%,i2%,deltaX,deltaY ' vérification zone libre Verif_Place(nsp%) : if cible%<>0 then pxa=pxa+15:pya=pya+25 ' calcul du déplacement (nbI%=nombre d'images à afficher) deltaX = (pxa - pxd)/nbI% : deltaY = (pya - pyd)/ nbI% ' déplacement du soldat for i%=1 to nbI%-int(nbI%/3) pause 50 sprite_file_load nsp%,"SoldatE.bmp" sprite_position nsp%,pxd + int(i%*deltaX),pyd + int(i% * deltaY) : display pause 50 sprite_file_load nsp%,"SoldatED.bmp" sprite_position nsp%,pxd + int(i%*deltaX),pyd + int(i% * deltaY) : display next i% end_sub ' ------------------------------------------------------------------------------ sub tir_canon(NSA%,TypeNSA$,NumFlam%,NumBoulet%,poxb%,poyb%) dim_local xa,ya,xd,yd,my%,mx% ' définir un point de tir if TypeNSA$="canonEG" mx%=width(scene_2d%) : my%=height(scene_2d%) repeat : xa=int(rnd(mx%)): until xa>250 and xa<mx% : repeat : ya=int(rnd(my%)): until ya>350 and ya<my% end_if if TypeNSA$="canonED" mx%=width(scene_2d%) : my%=height(scene_2d%) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% and xa<250: repeat : ya=int(rnd(my%)): until ya>350 and ya<my% end_if Search_Cible_E(NSA%) ' déplacement du boulet vers la cible sprite_show NumFlam% : pause 200 : sprite_hide NumFlam% sprite_show NumBoulet% : xd=sprite_x_position(NumBoulet%) : yd=sprite_y_position(NumBoulet%) :' position de départ Move_And_Test_Sprite(NumBoulet%,xa,ya,xd,yd,100,"ami"):' vit%(100) + => moins rapide et - => plus rapide sprite_hide NumBoulet% if NumBoulet%=bouletHG% then NBbouletCanHG%=NBbouletCanHG%-1 if NumBoulet%=bouletHD% then NBbouletCanHD%=NBbouletCanHD%-1 sprite_show boum% : sprite_position boum%,sprite_x_position(NumBoulet%),sprite_y_position(NumBoulet%) pause 200 : sprite_hide boum% sprite_position boum%,-50,-33 : ' déplacer hors de la vue sprite_position NumBoulet%,poxb%,poyb% : ' remettre à l'emplacement d'origine if sprite_collisionsp%<>0 caption alpha1%,"Misère ! l'ennemi gagne sur ce tour." Kill_Target_And_Updates(sprite_collisionsp%) else if sprite_collisionsp%=0 and PrecisionTir%<>10 then caption alpha1%,"A coté ! " if sprite_collisionsp%=0 and PrecisionTir%=10 then caption alpha1%,"A coté ! " end_if end_sub ' ------------------------------------------------------------------------------ sub Select_Actor_E() dim_local i%,i2% if nbtour%=2 or nbtour%=6 then NumSpriteE%=53 : exit_sub if nbtour%=4 or nbtour%=8 then NumSpriteE%=54 : exit_sub ' Comptage et stocage des numéros de sprites ennemis vivants et visibles n%=0 : clear Dlist_tri2% for i%=33 to 54 if sprites(i%,4)=1 and sprites(i%,2)=1 then item_add Dlist_tri2%,i% next i% pas%=0 repeat pas%=pas%+1 :i2%=int(rnd(count(Dlist_tri2%))+1) if pas%>500 then i2%=0 : exit_repeat until i2%>0 and i2%<(count(Dlist_tri2%)+1) if pas%<501 NumSpriteE%=item_read$(Dlist_tri2%,i2%) else NumSpriteE%=0 end_if end_sub rem ============================================================================ sub tour_ami() on_click scene_2d%,select_actor end_sub ' ------------------------------------------------------------------------------ select_actor: What_Srite_Is_Clicked() if NumSpriteClicked%=0 then start() : return off_click scene_2d% NumSpriteA% = NumSpriteClicked% Clear_Variables_EL(nb_V%) : EXPLODE("|",nom_sprite$(NumSpriteA%)) : Incremente_Variables_EL(Dlist_tri%) if el$(2)="BateauG" if NbBouleBatBG%>0 tir_bateau(NumSpriteA%,"BateauG",flammeBG%,bouletBG%,62,488) : start() : return else message "Ce bateau n'a plus de munition" : start() : return end_if end_if if el$(2)="BateauD" if NbBouleBatBD%>0 tir_bateau(NumSpriteA%,"BateauD",flammeBD%,bouletBD%,536,488) : start() : return else message "Ce bateau n'a plus de munition" : start() : return end_if end_if
if el$(2)="barge" Barge(NumSpriteA%) : start() : return end_if
if el$(2)="soldatA" ' déplacement aléatoire et tir (avec recheche d'une cible à proximité mais en face) Tir_Soldat_Ami(NumSpriteA%): start() : return end_if start() return ' ------------------------------------------------------------------------------ sub Tir_Soldat_Ami(NSA%) dim_local xa,ya,xd,yd,my%,mx% ' définir un point de déplacement ' pour les premier tours allez en avant if nbtour%<20 mx%=width(scene_2d%) : my%=(height(scene_2d%)-350) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% : repeat : ya=int(rnd(my%)): until ya>0 and ya<(my%-50) else mx%=width(scene_2d%) : my%=(height(scene_2d%)-250) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% : repeat : ya=int(rnd(my%)): until ya>0 and ya<my% end_if ' enregistrer le dernier my% comme base de départ pour les premiers tours (empêche le soldat de reculer) if nbtour%<20 if count(Dlist_tri3%)>0 then my%=val(item_read$(Dlist_tri3%,1))-50 clear Dlist_tri3% : item_add Dlist_tri3%,my% end_if ' position de la balle sprite_position bal%,sprite_x_position(NSA%),sprite_y_position(NSA%) xd=sprite_x_position(bal%) : yd=sprite_y_position(bal%) :' position de départ ' déplacement Move_SoldatA(NSA%,xa,ya,xd,yd,50) ' recheche d'une cible à proximité Search_Cible(NSA%) if cible%=0 exit_sub else ' tir sprite_show bal% : xd=sprite_x_position(NSA%) : yd=sprite_y_position(NSA%) :' position de départ sprite_file_load NSA%,"soldatAT.bmp" : sprite_position NSA%,xd,yd : pause 200 sprite_file_load NSA%,"soldatA.bmp" : sprite_position NSA%,xd,yd xa=sprite_x_position(cible%) : ya=sprite_y_position(cible%) Move_And_Test_Sprite(bal%,xa,ya,xd,yd,50,"ennemi"):' vit%(100) + => moins rapide et - => plus rapide sprite_hide bal% sprite_show boum% : sprite_position boum%,sprite_x_position(bal%),sprite_y_position(bal%) pause 200 : sprite_hide boum% sprite_position boum%,-50,-50 : sprite_position bal%,-100,-100 : ' déplacer hors de la vue if sprite_collisionsp%<>0 caption alpha1%,"Ce soldat est un héros !" Kill_Target_And_Updates(sprite_collisionsp%) else if sprite_collisionsp%=0 and PrecisionTir%<>10 then caption alpha1%,"A coté ! " if sprite_collisionsp%=0 and PrecisionTir%=10 then caption alpha1%,"A coté ! " end_if end_if end_sub ' ------------------------------------------------------------------------------ sub Search_Cible(NSA%) ' retourne cible% dim_local i%,pxa,pya,pxmax,pymax,pxmin,pymin,pxc,pyc if nbtour%>50 then elarg=elarg+1 ' définition de la zone de tir pxa=sprite_x_position(NSA%) : pya=sprite_y_position(NSA%) :' position HG du soldat pxmax=pxa+50+elarg : pxmin=pxa-(50+elarg) :' position en x 50 de chaque coté pymax=pya+20+elarg : pymin=pya-(70+elarg) :' position en y devant if pxmax>width(scene_2d%) then pxmax=width(scene_2d%)-10 if pxmin<0 then pxmax=10 if pymax>(height(scene_2d%)-250) then pymax=(height(scene_2d%)-260) if pymin<0 then pymax=10 ' recheche d'une cible à l'intérieur du carré cible%=0 for i%=33 to 52 if sprites(i%,4)=1 and sprites(i%,2)=1 pxc=sprite_x_position(i%):pyc=sprite_y_position(i%) if pxc>pxmin and pxc<pxmax and pyc>pymin and pyc<pymax cible%=i%:exit_for end_if end_if next i% end_sub ' ------------------------------------------------------------------------------ sub Move_SoldatA(nsp%,pxa,pya,pxd,pyd,nbI%) ' Déplace le sprite nsp% des coordonées de départ (pxd,pyd) vers l'arrivée (pxa,pya) dim_local i%,i2%,deltaX,deltaY ' vérification zone libre Verif_Place(nsp%) : if cible%<>0 then pxa=pxa+15:pya=pya+25 ' calcul du déplacement (nbI%=nombre d'images à afficher) deltaX = (pxa - pxd)/nbI% : deltaY = (pya - pyd)/ nbI% ' déplacement du soldat for i%=1 to nbI%-int(nbI%/3) pause 50 sprite_file_load nsp%,"SoldatA.bmp" sprite_position nsp%,pxd + int(i%*deltaX),pyd + int(i% * deltaY) : display pause 50 sprite_file_load nsp%,"SoldatAD.bmp" sprite_position nsp%,pxd + int(i%*deltaX),pyd + int(i% * deltaY) : display next i% end_sub ' ------------------------------------------------------------------------------ sub Verif_Place(NSA%) ' retourne cible% dim_local i%,pxa,pya,pxmax,pxmin,pymin,pxc,pyc ' définition de la zone pxa=sprite_x_position(NSA%) : pya=sprite_y_position(NSA%) :' position HG du soldat pxmax=pxa+10 : pxmin=pxa-10 :' position en x 5 de chaque coté pymin=pya+30 if pxmax>width(scene_2d%) then pxmax=width(scene_2d%)-10 if pxmin<0 then pxmax=10 ' recheche d'une cible à l'intérieur du carré cible%=0 for i%=1 to 54 pxc=sprite_x_position(i%):pyc=sprite_y_position(i%) if pxc>pxmin and pxc<pxmax and pyc<pymin cible%=i%:exit_for end_if next i% end_sub ' ------------------------------------------------------------------------------ sub tir_bateau(NSA%,TypeNSA$,NumFlam%,NumBoulet%,poxb%,poyb%) dim_local xa,ya,xd,yd,my%,mx% ' définir un point de tir if TypeNSA$="BateauG" mx%=width(scene_2d%) : my%=(height(scene_2d%)-200) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% and xa>200: repeat : ya=int(rnd(my%)): until ya>0 and ya<my% end_if if TypeNSA$="BateauD" mx%=width(scene_2d%) : my%=(height(scene_2d%)-200) repeat : xa=int(rnd(mx%)): until xa>0 and xa<mx% and xa<200: repeat : ya=int(rnd(my%)): until ya>0 and ya<my% end_if ' déplacement du boulet vers la cible sprite_show NumFlam% : pause 200 : sprite_hide NumFlam% sprite_show NumBoulet% : xd=sprite_x_position(NumBoulet%) : yd=sprite_y_position(NumBoulet%) :' position de départ Move_And_Test_Sprite(NumBoulet%,xa,ya,xd,yd,100,"ennemi"):' vit%(100) + => moins rapide et - => plus rapide sprite_hide NumBoulet% if NumBoulet%=bouletBG% then NbBouleBatBG%=NbBouleBatBG%-1 if NumBoulet%=bouletBD% then NbBouleBatBD%=NbBouleBatBD%-1 sprite_show boum% : sprite_position boum%,sprite_x_position(NumBoulet%),sprite_y_position(NumBoulet%) pause 200 : sprite_hide boum% sprite_position boum%,-50,-33 : ' déplacer hors de la vue sprite_position NumBoulet%,poxb%,poyb% : ' remettre à l'emplacement d'origine if sprite_collisionsp%<>0 caption alpha1%,"Bravo ! Joli tir ! " Kill_Target_And_Updates(sprite_collisionsp%) else if sprite_collisionsp%=0 and PrecisionTir%<>10 then caption alpha1%,"A coté ! " if sprite_collisionsp%=0 and PrecisionTir%=10 then caption alpha1%,"A coté ! " end_if end_sub rem ============================================================================ sub Move_And_Test_Sprite(nsp%,pxa,pya,pxd,pyd,nbI%,camp$) ' Déplace le sprite nsp% des coordonées de départ (pxd,pyd) vers l'arrivée (pxa,pya) dim_local i2%,deltaX,deltaY,pxst%,pyst%,pxb%,pyb% sprite_position nsp%,pxd,pyd ' calcul du déplacement (nbI%=nombre d'images à afficher) deltaX = (pxa - pxd)/nbI% : deltaY = (pya - pyd)/ nbI% ' déplacement du boulet et détection collision sprite_collisionsp%=0 for i2%=1 to nbI% sprite_position nsp%,pxd + int(i2%*deltaX),pyd + int(i2% * deltaY) : pause 1 ' Tester_Si_Collision pxb%=sprite_X_position(nsp%)+sprites(nsp%,0) :pyb%=sprite_Y_position(nsp%)+sprites(nsp%,1) sprite_collisionsp%=0 if camp$="ennemi" then verif_if_collide_with_ennemi(pxb%,pyb%) if camp$="ami" then verif_if_collide_with_ami(pxb%,pyb%) next i2% end_sub ' ------------------------------------------------------------------------------ sub verif_if_collide_with_ami(lpx%,lpy%) dim_local i%,lpxst%,lpyst% for i%=32 to 1 step -1 lpxst%=sprite_X_position(i%) : lpyst%=sprite_Y_position(i%) if lpx%>=lpxst% and lpx%<(lpxst%+sprites(i%,0)) and lpy%>=lpyst% and lpy%<(lpyst%+sprites(i%,1)) if sprites(i%,4)<>0 and sprites(i%,2)<>0 sprite_collisionsp%=i% : x%=sprite_X_position(i%) :y%=sprite_Y_position(i%) exit_sub else sprite_collisionsp%=0 end_if end_if next i% end_sub ' ------------------------------------------------------------------------------ sub verif_if_collide_with_ennemi(lpx%,lpy%) dim_local i%,lpxst%,lpyst% for i%=54 to 33 step -1 lpxst%=sprite_X_position(i%) : lpyst%=sprite_Y_position(i%) if lpx%>=lpxst% and lpx%<(lpxst%+sprites(i%,0)) and lpy%>=lpyst% and lpy%<(lpyst%+sprites(i%,1)) if sprites(i%,4)<>0 sprite_collisionsp%=i% : x%=sprite_X_position(i%) :y%=sprite_Y_position(i%) exit_sub end_if end_if next i% sprite_collisionsp%=0 end_sub ' ------------------------------------------------------------------------------ sub Kill_Target_And_Updates(nsp%) Clear_Variables_EL(nb_V%) : EXPLODE("|",nom_sprite$(nsp%)) : Incremente_Variables_EL(Dlist_tri%) if el$(2)="BateauG" then NbBouleBatBG%=0 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% if el$(2)="BateauD" then NbBouleBatBD%=0 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% if el$(2)="barge" ' voir si débarquée if sprites(nsp%,2) <> 0 ' tuer les 2 soldats à l'intérieur if nsp%=3 then sprites(15,4)=0 : sprite_hide 15 : sprites(16,4)=0 : sprite_hide 16 : NbSoldatA%=NbSoldatA%-2 if nsp%=4 then sprites(19,4)=0 : sprite_hide 19 : sprites(20,4)=0 : sprite_hide 20 : NbSoldatA%=NbSoldatA%-2 if nsp%=5 then sprites(23,4)=0 : sprite_hide 23 : sprites(24,4)=0 : sprite_hide 24 : NbSoldatA%=NbSoldatA%-2 if nsp%=6 then sprites(27,4)=0 : sprite_hide 27 : sprites(28,4)=0 : sprite_hide 28 : NbSoldatA%=NbSoldatA%-2 if nsp%=7 then sprites(31,4)=0 : sprite_hide 31 : sprites(32,4)=0 : sprite_hide 32 : NbSoldatA%=NbSoldatA%-2 if nsp%=8 then sprites(13,4)=0 : sprite_hide 13 : sprites(14,4)=0 : sprite_hide 14 : NbSoldatA%=NbSoldatA%-2 if nsp%=9 then sprites(17,4)=0 : sprite_hide 17 : sprites(18,4)=0 : sprite_hide 18 : NbSoldatA%=NbSoldatA%-2 if nsp%=10 then sprites(21,4)=0 : sprite_hide 21 : sprites(22,4)=0 : sprite_hide 22 : NbSoldatA%=NbSoldatA%-2 if nsp%=11 then sprites(25,4)=0 : sprite_hide 25 : sprites(26,4)=0 : sprite_hide 26 : NbSoldatA%=NbSoldatA%-2 if nsp%=12 then sprites(29,4)=0 : sprite_hide 29 : sprites(30,4)=0 : sprite_hide 30 : NbSoldatA%=NbSoldatA%-2 sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% end_if end_if if el$(2)="soldatA" ' animation si soldat sprite_file_load nsp%,"soldatAM.bmp" : sprite_position nsp%,x%,y% : pause 300 NbSoldatA%=NbSoldatA%-1 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% end_if if el$(2)="canonEG" then NBbouletCanHG%=0 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% if el$(2)="canonED" then NBbouletCanHD%=0 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_hide nsp% if el$(2)="soldatE" ' animation si soldat sprite_file_load nsp%,"soldatEM.bmp" : sprite_position nsp%,x%,y% : pause 300 NbSoldatE%=NbSoldatE%-1 : sprites(nsp%,2) = 0 : sprites(nsp%,4) = 0 : sprite_position nsp%,-50,-50 end_if end_sub rem ============================================================================ sub menu() dim no% label mission no%=1 : main_menu no% no%=2 : sub_menu no% : parent no%,1 : caption no%,"Fichier"
no%=3 : sub_menu no% : parent no%,1 : caption no%,"Mission" : on_click no%,mission
' création des autres objets dim Dlist_tri% : no%=no%+1 : Dlist_tri%=no% : dlist no% dim Dlist_tri2% : no%=no%+1 : Dlist_tri2%=no% : dlist no% dim Dlist_tri3% : no%=no%+1 : Dlist_tri3%=no% : dlist no% dim Dlist_tri4% : no%=no%+1 : Dlist_tri4%=no% : dlist no% end_sub ' ------------------------------------------------------------------------------ mission: execute_wait "Débarquement_V3.txt" return rem ============================================================================ sub dim_label() dim vit_S% : vit_S%=30 dim niveau% dim PrecisionTir% : PrecisionTir%=niveau% :' précision du tir (plus c'est grand et moins le tir est préci) dim DistanceTir% : DistanceTir%=100 :' distance du soldat/cible pour pouvoir tirer (+ = tir plus souvent) dim scene_2d%,n%,x%,y%,picture1%,picture2%,picture3%,alpha1%,nbtour%,cible%,pas% dim flammeBG%,flammeBD%,flammeHG%,flammeHD%,bouletBG%,bouletBD%,bouletHG%,bouletHD%,boum%,bal% dim NbBouleBatBG%,NbBouleBatBD%,NBbouletCanHG%,NBbouletCanHD%,NbObjA%,NbObjE% dim NbSoldatA%,NbSoldatE% dim tour$ dim el$(3),nb_V%: ' pour Explode dim type_spriteA$ :' identification du type de sprite acteur ami (tireur) dim type_spriteE$ :' identification du type de sprite acteur ennemi (tireur) dim type_spriteC$ :' identification du type de sprite cible dim NumSprite% :' numéro de sprite dim NumDerSprite% :' numéro du dernier sprite créé dim NumSpriteClicked% :' numéro du sprite trouvé (ou 0 si non trouvé) dim NumSpriteA% :' numéro du sprite trouvé (NumSpriteClicked%) sélectionné pour l'action (ami) dim NumSpriteE% :' numéro du sprite sélectionné aléatoirement pour l'action de l'ennemi dim NumSpriteC% :' numéro du sprite trouvé (NumSpriteClicked%) sélectionné comme cible dim sprite_collisionsp% :' numéro du sprite trouvé dans une collision dim elarg :' pour augmenter la zone de tir ' -------------------------------------------------------------------------- label fin,select_actor end_sub rem ============================================================================ sub piste() width 0,620 : height 0,647 left 0,(screen_x/2)-(width(0)/2) : top 0,(screen_y/2)-(height(0)/2) no%=no%+1 : scene_2d%=no% :scene2d no% width no%,width(0)-18 : left no%,1 : height no%,height(0)-94 : top no%,0 file_load scene_2d%,"fond.bmp" : sprite_target_is scene_2d% no%=no%+1 : picture1%=no% : picture picture1% height no%,32 : width no%,32 : top no%,555 : left no%,2 no%=no%+1 : picture2%=no% : picture picture2% height no%,32 : width no%,32 : top no%,top(picture1%) left no%,width(picture1%)+left(picture1%)+10 no%=no%+1 : alpha1%=no% : alpha alpha1% height no%,20 : top no%,top(picture1%)+5 : left no%,width(picture2%)+left(picture2%)+10 font_bold no% : font_size no%,12 ' no%=no%+1 : picture3%=no% : picture picture3% ' height no%,32 : width no%,32 : top no%,554 : left no%,width(0)-52 ' file_load picture3%,"Patientez.bmp" ' Création des Sptites dim sprites(no%+63,4) : ' pour création de 52 sprite(s) avec 3 fonctions dim nom_sprite$(no%+63): ' pour identifier le sprite par son nom d'image ' AMIS ' les 2 navires de guerre (2) Create_Sprite(10,500,"BateauG","ami",50,50,0) : sprites(NumSprite%,2) = 1 :' 1 Create_Sprite(550,500,"BateauD","ami",50,50,0) : sprites(NumSprite%,2) = 1 :' 2 ' barges de débarquement (10) (2+10=12) x%=-60:y%=450 : for n%=1 to 5 : x%=x%+120 : Create_Sprite(x%,y%,"barge","ami",34,25,0) : sprites(NumSprite%,2) = 1 : next n% :' 3 à 7 x%=-110:y%=400 : for n%=1 to 5 : x%=x%+120 : Create_Sprite(x%,y%,"barge","ami",34,25,0) : sprites(NumSprite%,2) = 1 : next n% :' 8 à 12 ' soldats amis (20) (12+20=32) x%=-12 : y%=368 : NbSoldatA%=20 for n%=1 to 2 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 13 et 14 x%=x%+13 : for n%=3 to 4 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 15 et 16 x%=x%+30 : for n%=5 to 6 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 17 et 18 x%=x%+13 : for n%=7 to 8 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 19 et 20 x%=x%+30 : for n%=9 to 10 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 21 et 22 x%=x%+13 : for n%=11 to 12 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 23 et 24 x%=x%+31 : for n%=13 to 14 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 25 et 26 x%=x%+13 : for n%=15 to 16 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 27 et 28 x%=x%+31 : for n%=17 to 18 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 29 et 30 x%=x%+13 : for n%=19 to 20 : x%=x%+19 : Create_Sprite(x%,y%,"soldatA","ami",20,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : next n% :' 31 et 32 ' for n%=13 to 32 : sprites(n%,2)=0 :next n% NbObjA%=NumSprite% :' 32 ' ENNEMIS ' soldats Ennemis (20) (20+32=52) NbSoldatE%=20 x%=-20:y%=15 : for n%=1 to NbSoldatE% : x%=x%+30 : Create_Sprite(x%,y%,"soldatE","ennemi",20,20,0) : next n% ' canon Ennemis (2) (2+52=54) Create_Sprite(5,50,"canonEG","ennemi",40,34,0) :' 53 Create_Sprite(555,50,"canonED","ennemi",40,34,0) :' 54 NbObjE%=NumSprite%-NbObjA% :' 54 NumDerSprite%=NumSprite% ' MATERIEL ' flammes pour les canons Create_Sprite(56,488,"feuG","ennemi",16,18,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : flammeBG%=NumSprite% Create_Sprite(536,488,"feuD","ennemi",16,18,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite%: flammeBD%=NumSprite% Create_Sprite(36,42,"feuG","ennemi",16,18,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : flammeHG%=NumSprite% Create_Sprite(546,42,"feuD","ennemi",16,18,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : flammeHD%=NumSprite% ' boulets de canon Create_Sprite(62,488,"boulet","",10,10,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : bouletBG%=NumSprite% Create_Sprite(536,488,"boulet","",10,10,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : bouletBD%=NumSprite% Create_Sprite(36,42,"boulet","",10,10,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : bouletHG%=NumSprite% Create_Sprite(546,42,"boulet","",10,10,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% : bouletHD%=NumSprite% ' explosion Create_Sprite(250,250,"boum","",30,20,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% :boum%=NumSprite% ' balle Create_Sprite(1,1,"Balle","",10,10,0) : sprites(NumSprite%,2) = 0 : Sprite_Hide NumSprite% :bal%=NumSprite% end_sub rem ============================================================================ sub Barge(nsp%) dim_local pxd,pyd,pxa,pya ' barge détruite par l'ennemi if sprites(nsp%,4) = 0 then message "cliquez pour continuer" : tour$="ami" : exit_sub ' position barge(nsp%) pxd=sprite_x_position(nsp%) : pyd=sprite_y_position(nsp%) ' 1) barge déja accosteé (375) => la sortir if pyd>380 and pyd<390 caption alpha1%,"Cette barge est vide" message " Barge déjà accostée " : tour$="ami" : exit_sub end_if ' 3) barge éloignee à 400 => l'avancer en 375 et débarque les soldats if pyd>395 and pyd<405 caption alpha1%,"Déplacement de votre barge..." : pause 20 pxa=pxd : pya=pyd-25 Move_Sprite(nsp%,pxa,pya,pxd,pyd,100) caption alpha1%,"Débarquement de 2 soldats" ' débarque les soldats 13 à 32 (suivant le numéro de barge) if nsp%=3 then Debarquement(nsp%,15,16) if nsp%=4 then Debarquement(nsp%,19,20) if nsp%=5 then Debarquement(nsp%,23,24) if nsp%=6 then Debarquement(nsp%,27,28) if nsp%=7 then Debarquement(nsp%,31,32) if nsp%=8 then Debarquement(nsp%,13,14) if nsp%=9 then Debarquement(nsp%,17,18) if nsp%=10 then Debarquement(nsp%,21,22) if nsp%=11 then Debarquement(nsp%,25,26) if nsp%=12 then Debarquement(nsp%,29,30) tour$="ennemi" : exit_sub end_if ' 3) barge éloignee à 425 => l'avancer en 400 if pyd>420 and pyd<430 caption alpha1%,"Déplacement de votre barge..." : pause 20 pxa=pxd : pya=pyd-25 Move_Sprite(nsp%,pxa,pya,pxd,pyd,100) caption alpha1%,"Au prochain tour, votre barge pourra débarquer 2 soldats !" exit_sub end_if ' 4) barge éloignee à 450 => l'avancer en 425 if pyd>445 and pyd<455 caption alpha1%,"Déplacement de votre barge..." : pause 20 pxa=pxd : pya=pyd-25 Move_Sprite(nsp%,pxa,pya,pxd,pyd,100) caption alpha1%,"Votre barge est encore loin de la plage !" exit_sub end_if end_sub ' ------------------------------------------------------------------------------ sub Debarquement(nsp%,s1%,s2%) dim_local pxd,pyd sprites(nsp%,2) = 0 x%=sprite_x_position(nsp%) : y%=sprite_y_position(nsp%)+10 Sprite_file_load nsp%,"bargeV.bmp" : sprite_position nsp%,x%,y% if sprites(s1%,4)=1 and sprites(s2%,4)=1 pxd=sprite_x_position(s1%) : pyd=sprite_y_position(s1%) sprite_show s2% : sprite_show s1% : Move_Sprite(s1%,pxd,pyd-14,pxd,pyd,60) pxd=sprite_x_position(s2%) : pyd=sprite_y_position(s2%) : Move_Sprite(s2%,pxd,pyd-14,pxd,pyd,60) sprites(s1%,2)=1 : sprites(s2%,2)=1 :' rend visible les 2 soldats (vu qu'ils sont vivants) ' exit_sub else caption alpha1%,"Débarquement terminé ! Mais les soldats sont morts" : exit_sub end_if caption alpha1%,"Débarquement des 2 soldats terminé !" end_sub rem ============================================================================ sub Move_Sprite(nsp%,pxa,pya,pxd,pyd,nbI%) ' Déplace le sprite nsp% des coordonées de départ (pxd,pyd) vers l'arrivée (pxa,pya) dim_local i2%,deltaX,deltaY ' calcul du déplacement (nbI%=nombre d'images à afficher) deltaX = (pxa - pxd)/nbI% : deltaY = (pya - pyd)/ nbI% ' déplacement du boulet for i2%=1 to nbI% sprite_position nsp%,pxd + int(i2%*deltaX),pyd + int(i2% * deltaY) : pause 1 next i2% end_sub rem ============================================================================ sub Create_Sprite(px%,py%,Nom_image$,camp$,WSp%,HSp%,dur%) NumSprite% = NumSprite% + 1 : ' passer au numéro de sprite suivant sprite NumSprite% : ' créer le sprite sprites(NumSprite%,0) = WSp% : ' mémoriser sa largeur sprites(NumSprite%,1) = HSp% : ' et sa hauteur sprites(NumSprite%,2) = 1 : ' marquer "visible" ou 0 pour invisible sprites(NumSprite%,3) = dur% : ' marquer 0="pénétrable" ou 1="impénétrable" sprites(NumSprite%,4) = 1 : ' mort=0 ou vivant=1 (pas de délete) sprite_scale NumSprite%,WSp%,HSp% sprite_file_load NumSprite%,Nom_image$+".bmp" :' Charge une image dans le sprite (Nom_image$ sert aussi a identifier le type de sprite) sprite_position NumSprite%,px%,py% : ' positionner le sprite à l'endroit voulu nom_sprite$(NumSprite%)=str$(NumSprite%)+"|"+Nom_image$+"|"+camp$ :' identifier le sprite display end_sub ' ------------------------------------------------------------------------------ sub What_Srite_Is_Clicked() ' retourne NumSpriteClicked% (sprite trouvé) dim_local i%, px%, py%, xs%, ys% NumSpriteClicked% = 0 : ' supposer "non trouvé" if number_click<>scene_2d% then message "Clic en dehors du scene2d !" : exit_sub if NumSprite%=0 then message "Aucun Sprite Existant" : exit_sub px% = mouse_x_left_down(scene_2d%) : ' mémoriser la position horizontale du clic py% = mouse_y_left_down(scene_2d%) : ' mémoriser la position verticale du clic for i%=NumSprite% to 1 step -1 xs% = sprite_x_position(i%) : ' mémoriser la position horizontale du sprite i% ys% = sprite_y_position(i%) : ' mémoriser la position verticale du sprite i% if (xs%<px%) : ' le bord gauche du sprite est plus à gauche que l'abscisse du clic ? if (ys%<py%) : ' le bord haut du sprite est plus haute que l'ordonnée du sprite ? if xs%+sprites(i%,0)>=px% : ' le bord droit du sprite est plus à droite que l'abscisse du clic ? if ys%+sprites(i%,1)>=py% : ' le bord bas du sprite est plus en bas que l'ordonnée du clic ? NumSpriteClicked% = i% : ' alors, on a trouvé exit_for : ' et on sort end_if : ' fin test sur le bord bas du sprite end_if : ' fin test sur le bord droit du sprite end_if : ' fin test sur le bord haut du sprite end_if : ' fin test sur le bord gauche du sprite next i% : ' fin boucle sur les sprites end_sub rem ============================================================================ SUB EXPLODE(delimiter$,chaine$):' Nardo modifié JC ' Cette SUB décompose une chaine et inscrit chaque élément dans Dlist_tri% ' complètée par la SUB Incremente_Variables_EL(z%) clear Dlist_tri% WHILE INSTR(chaine$,delimiter$)<>0 ITEM_ADD Dlist_tri%,LEFT$(chaine$,INSTR(chaine$,delimiter$)-1) chaine$=RIGHT$(chaine$,LEN(chaine$)-INSTR(chaine$,delimiter$)) END_WHILE ITEM_ADD Dlist_tri%,chaine$ END_SUB ' ----- Sub Incremente_Variables_EL(z%) ' cette SUB récupère les variables du Dlist_tri% pour les intégrer dans la variable el$(?) à la bonne position dim_local ii% for ii%=1 to count(z%) if count(z%)=0 then return el$(ii%)=item_read$(z%,ii%) next ii% End_Sub ' --------------------------- Sub Clear_Variables_EL(nb_V%) ' remise à zéro ("") des variables el$(?) dim_local ii% for ii%=1 to nb_V%:el$(ii%)="":next ii% End_Sub rem ============================================================================ sub arret() ' caption alpha1%,"PATIENTEZ: Arrêt en cours" : pause 500 n%=50 : caption alpha1%,"PATIENTEZ: Arrêt dans "+chr$(n%)+" secondes" : pause 1000 n%=49 : caption alpha1%,"PATIENTEZ: Arrêt dans "+chr$(n%)+" seconde" : pause 1000 n%=48 : caption alpha1%,"PATIENTEZ: Arrêt dans "+chr$(n%)+" seconde" : pause 200 End_Sub rem ============================================================================ fin: arret() terminate return
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 10 Juin 2015 - 19:29 | |
| Très intéressant Jean Claude ! Cela mériterait peut être un petit développement... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Mer 10 Juin 2015 - 20:45 | |
| @ygeronimi, Ma motivation pour faire ce jeu est parti d'un défi que je me suis fait à moi-même, ensuite Klaus s'est emmêlé en proposant des subs qui m'ont facilité le codage. De plus, Jack aime bien les jeux (je veux dire que c'est ce qu'il attendait... Bref c'est un débat en dehors...). Le codage m'a appris beaucoup, mais a été difficile car n'étant pas doué en math, j'ai rencontré bien des problèmes. J'ajoute que les mots-clés de Panoramic permettent de créer des jeux en 2D, mais il en manque beaucoup. Klaus m'a permis de contourner cet état de fait en proposant des procédures 100% Panoramic, que j'ai adaptées a ma sauce. Alors le développement de ce jeu, je le laisse à quiconque est intéressé. En clair, vous pouvez tout utiliser, l'idée, le code, les images, etc... Je vois bien certain améliorer le programme (Bignono par exemple pour ajouter le son). Personnellement je préfère partir sur une nouvelle idée et changer la façon dont se déroule le jeu. Le mode aléatoire enlève de l'intérêt au jeu. Pour cela je vais avoir besoin de piocher dans ta réserve de "Doliprane". Mais ça, c'est une autre histoire... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Débarquement V3 Mer 10 Juin 2015 - 23:45 | |
| Bravo Jean Claude! DSI : Directeur des Systèmes d' Information | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 0:28 | |
| @Papydall: c'est ça... bref à la droite de dieu même si mon poste lui n'a rien à voir et que je suis loin, moi de ces responsabilités @Jean-Claude: Je suis d'accord avec Papydall. Tu as développé un super moteur de jeu sur un concept trop peu inexploité. La gestion des clics et de l'animation des sprites est très bien. Le jeu tourne bien et la détection de fin de partie aussi. Après je suis d'accord avec toi sur le côté un peu frustrant du mode trop aléatoire des mouvements et des tirs. Il faudrait pouvoir contrôler les mouvements et bien sûr garder un côté aléatoire sur le résultat du tir. Donc, au niveau jouabilité tactique et intéret du jeu je pense qu'il y a encore du travail car selon moi, la partie technique est maitrisée et tout a fait satisfaisante. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 1:06 | |
| - Jicehel a écrit:
- Tu as développé un super moteur de jeu sur un concept trop peu inexploité.
Je dois comprendre alors que le concept qui est " trop peu inexploité" est beaucoup trop exploité ! Deux négations donnent une affirmation. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 11 Juin 2015 - 1:53 | |
| | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 8:05 | |
| Désolé Papydall, je traduis en plus clair car c'est vrai que la double négation rend la phrase incompréhensible: la technique du jeu est au point mais au niveau de la jouabilité pour rendre le jeu plus interessant, il y a des réglages à effectuer et à diminuer le côté aléatoires des déplacements et des tirs. Réaliser un programme de ce type est un challenge et même régler la jouabilité est complexe afin qu'il ne soit ni trop simple ni trop complexe...De toute façon même si Jean-Claude s'arrétait là dans son jeu (ce que je n'éspère pas), il nous a livré un beau moteur que l'on peut adapter selon nos gouts et nos idées.
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 8:29 | |
| Merci à tous pour vos réponses. C'est bien le mode aléatoire qui ne me plaît pas, je sais qu'il est incontournable sinon on gagne tout le temps, mais les réglages sont difficiles à faire. C'est pourquoi, je préfère repartir à zéro, cela me permettra de voir le problème sous un autre angle. Quand à mettre en ligne pour jouer à 2 .Je cède la place. Je vais commencer par explorer PAGINE2D, pour voir la différence avec Panoramic, et ensuite j'aviserai. A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 10:03 | |
| OK bonne exploration Jean-Claude et je suis d'accord sur ce que tu dis: "les réglages sont difficiles à faire" c'est clairement très délicat et d'autant plus si on veut gérer des niveaux de difficultés... J'espère que tu y arriveras car tu as quand même une super base pour le faire | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 10:48 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 20:33 | |
| J'ai besoin de savoir, pour ceux qui ont testé le jeu, s'ils ont perdu au moins une fois. Moi je sais trop de choses pour gagner et du coup je n'arrive plus à perdre ! Je ne parviens plus à me mettre dans la peau du joueur qui découvre le programme Et j'aimerai affiner la difficulté, dans le cas où tous le monde gagne. Voilà ou j'en suis: A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 20:55 | |
| Finalement, je perds ausi rappel (vu le changement de page du forum): J'ai besoin de savoir, pour ceux qui ont testé le jeu, s'ils ont perdu au moins une fois. Moi je sais trop de choses pour gagner et du coup je gagne presque à tous les coups ! Je ne parviens plus à me mettre dans la peau du joueur qui découvre le programme Et j'aimerai affiner la difficulté, dans le cas où tous le monde gagne. A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 22:43 | |
| moi, j'ai testé une fois et j'ai perdu. J'ai du mal à comprendre quand je bouge un soldat s'il va tirer ou non. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Débarquement V3 Jeu 11 Juin 2015 - 23:00 | |
| J'ai testé une seule fois et j'ai gagné mais beaucoup de dégâts. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Ven 12 Juin 2015 - 8:03 | |
| Merci à vous deux. - Jicehel a écrit:
- J'ai du mal à comprendre quand je bouge un soldat s'il va tirer ou non
Normalement, le soldat tire si une cible est à sa portée (dans sa zone de tir). Le programme regarde si une cible est dans la zone de tir. Si c'est le cas la cible est sélectionnée pour être éliminée. Alors le déplacement du soldat va se faire dans cette zone. Mais le tir reste aléatoire, car la direction de la bal peut ne pas être assez proche de la cible (là, il y a une détection de collision de la balle avec la cible). Cette zone de tir s'agrandie à partir du 40 ème tour, cela pour éviter une fin de partie interminable. Mais çà ne marche pas à tous les coups et je n'ai pas trouvé pourquoi. Sinon le soldat s'arrête et passe son tour (il ne tir pas). A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Ven 12 Juin 2015 - 8:16 | |
| OK, c'est bien le comportement que j'ai constaté | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Juin 2015 - 13:38 | |
| J' ai essayé... ...et j' ai perdu ! Je suis un peu déboussolé par les déplacements des soldats.... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Ven 12 Juin 2015 - 13:50 | |
| C'est normal, ils sont eux-même déboussolés. A nouveau, essayer, tu dois. Lire et interpréter le menu mission, tu dois. La sagesse est dans la lecture comprise, jeune Padawans. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Juin 2015 - 13:56 | |
| C' est la première fois que je vois un soldat retourner se faire canarder sur la plage de débarquement après être arrivé dans les lignes ennemis... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Débarquement V3 Ven 12 Juin 2015 - 13:59 | |
| Ben... c'est que le commandant est porté sur la bouteille. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Débarquement V3 Ven 12 Juin 2015 - 14:07 | |
| mdr, mais bon je suis d'accord avec Ygeronimi sur le coté déboussolant, mais j'en ai déjà fait part et je sais que tu chercheras sans doute à régler la jouabilité après avoir repenser le tout comme tu es en train de le faire. | |
| | | Contenu sponsorisé
| Sujet: Re: Débarquement V3 | |
| |
| | | | Débarquement V3 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |