FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
PANGINE2D - Page 2 Emptypar Klaus Aujourd'hui à 1:15

» item_index(résolu)
PANGINE2D - Page 2 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
PANGINE2D - Page 2 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
PANGINE2D - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
PANGINE2D - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
PANGINE2D - Page 2 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
PANGINE2D - Page 2 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
PANGINE2D - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
PANGINE2D - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
PANGINE2D - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
PANGINE2D - Page 2 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
PANGINE2D - Page 2 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
PANGINE2D - Page 2 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
PANGINE2D - Page 2 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
PANGINE2D - Page 2 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 PANGINE2D

Aller en bas 
+3
Jack
Jicehel
Jean Claude
7 participants
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMar 16 Juin 2015 - 18:52

De l'aide ! ho oui, je vais en avoir besoin. Et vous, vous aurez besoin de paracétamol, pour vaincre...
lol!

BON, plus sérieusement.
Maintenant je peux le dire: PANGINE2D, c'est génial et encore, je n'ai pas tout exploité.

Jack, tu vas devoir améliorer l'éditeur: Uniquement, dans un premier temps, sur le minimum.
Par exemple: j'ai séché pendant un bon 1/4 d'heure à cause d'un commentaire mal écrit ('blabla)
Pas d'espace entre l'apostrophe et le texte......

Vous allez pouvoir tester, mais attention: ça plante à la fermeture, il faudra ne pas oublier de tuer tout les Panoramic.exe qui tournent.

testez essai7.bas (c'est sur le Webdav, car il y a des nouvelles images)
Penchez-vous sur l'animation de l'explosion de l’astéroïde et regardez l'image "meteore.bmp"
c'est le résultat de SPRITE_ANIMATED_FRAME.
Pour ceux qui veulent commencer à jouer, vous pouvez augmenter ou diminuer la vitesse du vaisseau (vit_vai%) dans le chat pitre (heu.. le chapitre) règlage.


@Jicehel,
Comme tu t'es proposé de mettre en place des TIMER(s), c'est le moment.Very Happy
Moi les TIMER(s) ça me donne des boutons...

Pendant ce temps, je vais écrire un scénario, car cette fois-ci on est plus dans des essais, on se dirige tout droit vers un jeu spatial.

Comme dirais Patrick Sébastien: c'est génial...


Dernière édition par Jean Claude le Mar 16 Juin 2015 - 20:11, édité 1 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMar 16 Juin 2015 - 19:22

jean Claude a écrit:
testez essai7.bas (c'est sur le Webdav, car il y a des nouvelles images)

Sad  Il n'y a pas de essai7.bas !
essai1,2,3,4,5,6.bas  oui
essai7.bas tu l'as réservé pour toi, hein ?

ça viendra ! ça viendra!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMar 16 Juin 2015 - 20:09

Effectivement, il y a eu un problème quand j'ai déposé Question

C'est réparé, tu peux y aller.

A+

PS: une précision: Si vous avez des messages, concernant une image qui ne serait pas valable, n'en tenez pas compte.
Le mieux c'est de supprimer la boucle WHILE en ligne 45 et 58, et exit_while en 54.
Dans cette configuration du jeu, il vaut mieux augmenter la vitesse du vaisseau ( vit_vai%=8 )
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 0:40

Je te mets le listing du principe par ce que je pense que tue es mal parti pour pouvoir faire tes animations.
Je pense qu'avec le code exemple tu vas mieux comprendre le principe
Code:
' avec tir, collision, explosion
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,xA%,yA%,vit_vai%,a_v%,vit_mis%,vit_ast_x%, vit_ast_y%
dim tir$,tir%
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
' dim tir_x(30),tir_y(30),tir_d(30),nb_tir  : ' si tu veux utiliser plusieurs tirs
dim tir_x,tir_y,tir_d
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' astéroide

' init
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 2 : vit_mis%=10  : tir% = 0
scene2d_interval 300

new_asteroide() : SPRITE_SHOW 10
on_key_down 0,touche
timer 2 : timer_interval 2,30 : on_timer 2,boucle_principale
' on_close 0,fin : ' Si on ferme, on ferme par la procédure de sortie

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
  if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
  if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
  if KEY_DOWN_CODE = 27 then fin                            : ' Echap
  if KEY_DOWN_CODE = 32 AND tir% = 0 then tir% = 1:tir_x = x% : tir_y = y% : tir_d = d : SPRITE_SHOW 9 : ' space
return

boucle_principale:
timer_off 2
  asteroide()
  if tir% = 1 then  :  tir()
timer_on 2
return

rem ============================================================================
' New_astéroide
'
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10
  end_while
  xA% = screen_x + 10 : yA% = screen_y + 10
  if vit_ast_x% > 0 then xA%=-10
  if vit_ast_y% > 0 then yA%=-10
  sprite_position 10,xA%,yA%
END_SUB
 

rem ============================================================================
' astéroide
'
SUB asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
      if xA% < -10
          if vit_ast_x% < 0 then new_asteroide()
      else:
          if xA% > screen_x + 10 and vit_ast_x% > 0 then new_asteroide()
      end_if
      if yA% < -10
          if vit_ast_y% < 0 then new_asteroide()
      else:
          if yA% > screen_y + 10 and vit_ast_y% > 0 then new_asteroide()
      end_if
END_SUB

rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
  tir_x = tir_x + cos(tir_d)* vit_mis%  : tir_y = tir_y - sin(tir_d) * vit_mis%
  sprite_position 9,tir_x, tir_y : ' Mouvement de la balle du tir
  if (cos(tir_d) > 0 and tir_x > screen_x) or (cos(tir_d) < 0 and tir_x < 0 ) or (sin(tir_d) < 0 and tir_y > screen_y) or (sin(tir_d) > 0 and tir_y < 0 ) then tur% = 0 : HIDE 9
END_SUB

rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 : SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
END_SUB

rem ============================================================================
SUB verif_tir()
dim_local pxb%,pyb%
    tir$=""
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    ' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
    if pxb%<(xA%+16) and pxb%>xA% and pyb%>yA% and pyb%<(yA%+24)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return

Je te laisse debugger et arranger à ta sauce et si tu veux des explications n'hésite pas à demander
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 7:33

Merci Jicehel,

Je vais regarder ton code, (tel quel il ne fonctionne pas)
j'ai tenté de débugger, mais ça ne marche toujours pas.
j'y voit quelques erreurs évidentes (if tir% = 1 then  :  tir()) par exemple.
il y aussi cette ligne
Code:
if (cos(tir_d) > 0 and tir_x > screen_x) or (cos(tir_d) < 0 and tir_x < 0 ) or (sin(tir_d) < 0 and tir_y > screen_y) or (sin(tir_d) > 0 and tir_y < 0 ) then tur% = 0 : HIDE 9
je ne comprend pas sa fonction (c'est plein de gros mots du genre sin, cos, etc...) Very Happy
tur% (j'ai remplacé par tir%)


J'espère en tirer quelque chose.

En tous cas, merci.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 8:30

la ligne pleine de gros mot c'est pour annuler le tir s'il sort de l'écran. Désolé pour les fautes de frappes. En fait, je fais d'autres choses le soir mais je t'avais promis de t'aider alors j'ai écris le squelette mais comme je suis un peu fatigué, j'avoue un manque de vigilance Wink

J'ai corrigé une partie des erreurs mais j'ai une erreur dans les tests de sorties de l'asteroide, mais je dois aller bosser
Code:
' avec tir, collision, explosion
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,xA%,yA%,vit_vai%,a_v%,vit_mis%,vit_ast_x%, vit_ast_y%
dim tir$,tir%
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
' dim tir_x(30),tir_y(30),tir_d(30),nb_tir  : ' si tu veux utiliser plusieurs tirs
dim tir_x,tir_y,tir_d
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' astéroide

' init
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 2 : vit_mis%=10  : tir% = 0
scene2d_interval 300

new_asteroide() : SPRITE_SHOW 10
on_key_down 0,touche
timer 2 : timer_interval 2,30 : on_timer 2,boucle_principale
' on_close 0,fin : ' Si on ferme, on ferme par la procédure de sortie

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
  if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
  if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
  if KEY_DOWN_CODE = 27 then fin                            : ' Echap
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 : tir_x = x% : tir_y = y% : tir_d = d : SPRITE_SHOW 9
  end_if    : ' space
return

boucle_principale:
timer_off 2
  asteroide()
  if tir% = 1 then tir()
timer_on 2
return

rem ============================================================================
' New_astéroide
'
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10
  end_while
  xA% = screen_x + 10 : yA% = screen_y + 10
  if vit_ast_x% > 0 then xA%=-10
  if vit_ast_y% > 0 then yA%=-10
  sprite_position 10,xA%,yA%
END_SUB
 

rem ============================================================================
' astéroide
'
SUB asteroide()
      if ((xA% < -10) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > screen_x + 10) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < -10)  and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > screen_y + 10) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
END_SUB

rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
  tir_x = tir_x + cos(tir_d)* vit_mis%  : tir_y = tir_y - sin(tir_d) * vit_mis%
  if (cos(tir_d) > 0 and tir_x > screen_x) or (cos(tir_d) < 0 and tir_x < 0 ) or (sin(tir_d) < 0 and tir_y > screen_y) or (sin(tir_d) > 0 and tir_y < 0 ) then  tir% = 0 : SPRITE_HIDE 9
  sprite_position 9,tir_x, tir_y : ' Mouvement de la balle du tir
END_SUB

rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 : SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
END_SUB

rem ============================================================================
SUB verif_tir()
dim_local pxb%,pyb%
    tir$=""
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    ' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
    if pxb%<(xA%+16) and pxb%>xA% and pyb%>yA% and pyb%<(yA%+24)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 8:50

Je vais regarder,
De mon coté j'ai mis en place un timer dans mon code en regardant ce que tu as fait sur le tien.
ça marche impec, mais on a toujours un plantage à la sortie.

Plus important:
Je viens de me rendre compte que je me suis laissé entraîner avec ON_KEY_DOWN 0.
Jack a écrit:
La différence fondamentale avec PANORAMIC est que pour le programmeur, PANGINE2D
ne manipule aucun objets système.
Au lancement de PANGINE2D, une fenêtre apparaît (FORM) qui occupe tout l'écran, et dans
laquelle est créé un SCENE2D vide occupant tout le FORM. Mais le programmeur n'a pas à
se soucier de leurs numéros d'objets, comme vous le verrez par la suite.

Je vais donc revenir à SCANCODE et je verrais bien.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 10:36

Le problème n'est pas là puisque ça fonctionne. (Tu n'as pas d'erreur si tu appuie sur une touche pour tirer, aller à gauche ou à droite.)
Puisque ça fonctionne, fait la remarque à Jack pour la cohésion du langage, mais ne te focalise pas la dessus

Pour la sortie. Il faut penser à arréter le timer, mais ce n'est pas le seul problème.

Dans le code que j'ai posté, j'ai une erreur dans le if de la SUB asteroid
comme il n'y a aucun message d'erreur dans cet embryon de langage, ce n'est pas simple de debugger mais je pense que c'est le "< -10" qu'il n'aime pas ou un manque de parenthèse quelque part. Il faut essayer avec "< (0-10)" peut être.

A voir, j'essayerais ce soir. Désolé, j'ai peu de temps pour programmer ou écrire les articles etc... à cause de mes autres occupations, mais tu pourras faire tes essais. Je pense que déjà ça te mets bien sur la voie. J'ai laisser ta façon de faire pour bouger le vaisseau, mais moi, j'aurais utilisé le même système que le tir, j'aurais mis une valeur dans une variable quand on appuie et j'aurais traité en appelant le déplacement dans la procédure principale, mais c'est un choix purement fonctionnel et un mode de gestion qui se choisit par le concepteur du jeu en fonction de ce qu'il veut obtenir et ta méthode est tout à fait correcte aussi.

Question à Jack: Jack, ce serait très complexe d'activer les messages d'erreurs pour ce langage ?
Ca aide quand même quand on les a plutôt que le jeux qui se ferme...
Certaines erreurs sont évidentes à trouver, d'autres beaucoup moins.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 11:44

Oui je suis d'accord, le fait que ça marche avec ON_KEY_DOWN est le seul moyen actuel de continuer.

Aujourd'hui je n'ai pas trop de temps pour programmer, le beau temps est revenu, je dois travailler à l'extérieur.

Pour la suite, je vais suivre ton idée de renvoyer l’astéroïde à nouveau, ensuite j'ai l'intention d'y ajouter un vaisseau ennemi qui tire sur le notre. Mais avant il faut que je code la collision du vaisseau avec l’astéroïde.

A+

PS: fermer le timer, aggrave le plantage, normal, il a un numéro d'objet....

Je préfère attendre la réponse de Jack.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 12:03

Woui, il peut déjà donner son avis sur le sujet. Il a plus d'éléments que nous.
En plus je voudrais bien savoir si ce serait complexe d'activer les messages d'erreur.

En fait, j'aimerais savoir si Jack va opter pour faire un environnement complet sur ce logiciel et qu'il va continuer de le développer ou s'il a réfléchi et intégrera les fonctions dans Panoramic.

En fait c'est surtout pour savoir si ça vaut le coup de pousser les tests plus loin car ce produit vivra en étant très orienté "jeux" avec son éditeur dédié, son aide intéfrée, ses messages d'erreurs spécifiques, son compilateur, etc ou s'il restera assez bridé à moyen terme ou à long terme. L'éditeur a été rajouté rapidement afin que nous puissions coder les programmes de test, donc je comprends tout à fait que certaines parties soient désactivées, mais je voudrais juste savoir si Jack à l'intention de terminé l'environnement de développement dans un avenir proche ou non.

PS: Je ne "troll" pas, hein ... c'est juste une interrogation... Very Happy
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 21:06

Jicehel a écrit:
Jack, ce serait très complexe d'activer les messages d'erreurs pour ce langage ?

Je vais regarder pourquoi les messages d'erreur n'apparaissent pas.

Jicehel a écrit:
En fait, j'aimerais savoir si Jack va opter pour faire un environnement complet sur ce logiciel et qu'il va continuer de le développer ou s'il a réfléchi et intégrera les fonctions dans Panoramic.
En fait c'est surtout pour savoir si ça vaut le coup de pousser les tests plus loin car ce produit vivra en étant très orienté "jeux" avec son éditeur dédié, son aide intéfrée, ses messages d'erreurs spécifiques, son compilateur, etc ou s'il restera assez bridé à moyen terme ou à long terme.

J'ai l'intention de continuer ce logiciel aussi loin que possible et l'enrichir de fonctionnalités.
Les tests avec PANGINE2D peuvent continuer, car PANGINE2D suit la même politique que Panoramic: la compatibilité ascendante.
De la même façon qu'un source écrit pour la première version de Panoramic tourne encore aujourd'hui et de la même façon avec la dernière version et qu'il fonctionnera encore avec toutes les versions futures, je peux garantir qu'un source qui tournera avec la première version de PANGINE2D fonctionnera de la même façon avec TOUTES les versions futures et quel que soit le moteur 2D utilisé.
De plus, il y aura bientôt non seulement un compilateur (il est en développement), mais il existe aussi des versions pas encore proposées qui fonctionnent avec les "grands" moteurs 2D. beaucoup plus rapides que le moteur 2D logiciel actuel.

Ecrire un source pour PANGINE2D est un investissement sur l'avenir.

_________________
PANGINE2D - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123


Dernière édition par Jack le Sam 20 Juin 2015 - 10:45, édité 1 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 21:38

Merci pour tes réponses Jack Wink J'avoue que c'est rassurant e connaitre tes plans. Un peu comme Klaus, je ne sais pas comment pour faire tout ça de front, mais du coup, je retourne au programme de Jean-Claude pour lui donner les bases d'un moteur complet qui fonctionne. Encore une question dont à parlé Jean-Claude. Est-ce que le timer fonctionne tel que l'on l'a écrit ? On laisse bien un numéro ou on devrait s'y prendre autrement ? Un timer est vital pour ce genre de jeux d'où ma question. Je pense que peux s'organiser pour ne gérer un seul timer mais tu as peut être prevu autre chose comme des nombre limité de timers avec des numéros dédiés. Je ne sais pas.
Est-ce que le fait que ça marche est un oubli de ta part, un coup de chance de la mienne ou tout à fait normal ?
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyMer 17 Juin 2015 - 22:16

Tient Jean-Claude. J'ai corrigé mes erreurs de ce matin dans la détection de sortie de l'asteroid et j'ai rajouté la partie que je n'avais pas eu le temps de coder pour la direction du tir.
Je me suis arrété là exprès pour te laisser créer ton jeu tel que tu l'imagines mais si tu rencontres des difficultés, je t'aiderais avec plaisir.
Code:
' avec tir, collision, explosion
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,xA%,yA%,vit_vai%,a_v%,vit_mis%,vit_ast_x%, vit_ast_y%
dim tir$,tir%
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
' dim tir_x(30),tir_y(30),tir_d(30),nb_tir   : ' si tu veux utiliser plusieurs tirs
dim tir_x,tir_y,tir_d
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' astéroide

' init
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 2 : vit_mis%=10  : tir% = 0
scene2d_interval 300

new_asteroide() : SPRITE_SHOW 10
on_key_down 0,touche
timer 2 : timer_interval 2,30 : on_timer 2,boucle_principale
' on_close 0,fin : ' Si on ferme, on ferme par la procédure de sortie

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then d=1 : move(1)                         : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then d=2 : move(2)   : ' 2 Bas
  if KEY_DOWN_CODE = 99 then d=3 : move(3)                         : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then d=4 : move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then d=5 : move(5)  : ' 5 droite
  if KEY_DOWN_CODE = 103 then d=6 : move(6)                        : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then d=7 : move(7)  : ' 7 haut
  if KEY_DOWN_CODE = 105 then d=8 : move(8)                        : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then fin                             : ' Echap
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 :  tir_d = d
      if d = 5*pi/4 then tir_x = x% + 11 : tir_y = y% + 33
      if d = 3*pi/2 then tir_x = x% + 22 : tir_y = y% + 44
      if d = 7*pi/4 then tir_x = x% + 33 : tir_y = y% + 33
      if d = pi then tir_x = x%      : tir_y = y% + 22
      if d = 0 then tir_x = x% + 44 : tir_y = y% + 22
      if d = 3*pi/4 then tir_x = x% + 11 : tir_y = y% + 11
      if d = pi/2 then tir_x = x% + 22 : tir_y = y%
      if d = pi/4 then tir_x = x% + 33 : tir_y = y% + 11
      sprite_position 9,tir_x, tir_y : SPRITE_SHOW 9
  end_if     : ' space
return

boucle_principale:
timer_off 2
  asteroide()
  if tir% = 1 then tir()
timer_on 2
return

rem ============================================================================
' New_astéroide
'
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5
     vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10
  end_while
  xA% = screen_x + 10 : yA% = screen_y + 10
  if vit_ast_x% > 0 then xA%=-10
  if vit_ast_y% > 0 then yA%=-10
  sprite_position 10,xA%,yA%
END_SUB
  

rem ============================================================================
' astéroide
'
SUB asteroide()
      if ((xA% < (0-10)) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > (screen_x + 10)) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < (0-10))   and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > (screen_y + 10)) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
END_SUB

rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
  tir_x = tir_x + cos(tir_d)* vit_mis%  : tir_y = tir_y - sin(tir_d) * vit_mis%
  if (cos(tir_d) > 0 and tir_x > screen_x) or (cos(tir_d) < 0 and tir_x < 0 ) or (sin(tir_d) < 0 and tir_y > screen_y) or (sin(tir_d) > 0 and tir_y < 0 ) then   tir% = 0 : SPRITE_HIDE 9
  sprite_position 9,tir_x, tir_y : ' Mouvement de la balle du tir
END_SUB

rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)   :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 : SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
END_SUB

rem ============================================================================
SUB verif_tir()
dim_local pxb%,pyb%
    tir$=""
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)   :' position du missile
    ' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
    if pxb%<(xA%+16) and pxb%>xA% and pyb%>yA% and pyb%<(yA%+24)
       tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                   : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                   : d = pi
        case 5 : x% = x% + vit_vai%                   : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                   : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 8:43

Je vois qu'il y a des bonnes nouvelles,

@Jack,
  Je suis ravi que tu continues le développement de PANGINE2D et cela dans le même esprit que Panoramic.
je résume les priorités (je n'ai pas dit urgence)  Very Happy
   1) les messages d'erreurs
   2) les commandes ON_KEY_... et OFF_KEY_...
   3) les TIMER(s) car Jicehel à raison ça me parait incontournable
Par avance merci.

@Jicehel,
Ton code fonctionne bien, il n'y a aucun plantage.
J'y ai intégré la détection de collision et l'explosion de l'astéroïde, et pour que cela fonctionne correctement, j'ai dû remplacer la sub tir() par la mienne (dérivée de celle de Papydall).
J'ai ajouté une possibilité de réglage de la vitesse de déplacement de l’astéroïde, en conservant ta partie aléatoire.
Maintenant c'est jouable, en réglant la vitesse du vaisseau et celle du missile a mon niveau (agilité au clavier).

Il reste quelques petits réglages sur la fluidité des images, et ensuite j'attaque la suite.


A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 9:59

Super et surtout si tu bloques sur un truc(si tu as essayé de résoudre un problème et que tu galères sur quelque chose), n'hésite pas à demander ou sinon à bientôt pour tester ton jeu Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 10:57

@Tous,
vous pouvez jouer avec ce code (il n'y a pas d''mages nouvelles) à condition d'avoir la version d'hier, sinon vous les trouverez sur mon Webdav.

A vous d'adapter les vitesses des différents SPRITEs (vaisseau, missile et astéroïde).
Le code ci-dessous est réglé au mieux.
En théorie ça ne plante pas, mais si ça arrive n'oublier pas de tuer la tâche Panoramic.exe

Code:
' essai8.bas avec tir, collision, explosion (Jean Claude, Jicehel, Papydall)
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,xA%,yA%,vit_vai%,a_v%,vit_mis%,vit_ast_x%, vit_ast_y%,vit_ast%
dim tir$,tir% : tir% = 0
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
' dim tir_x(30),tir_y(30),tir_d(30),nb_tir  : ' si tu veux utiliser plusieurs tirs
dim tir_x,tir_y,tir_d
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' explosion astéroide

' init
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=12 :' + => plus rapide
vit_ast%=40 :' + => plus lent


new_asteroide() : SPRITE_SHOW 10
on_key_down 0,touche
timer 2 : timer_interval 2,1 : on_timer 2,boucle_principale
' on_close 0,fin : ' Si on ferme, on ferme par la procédure de sortie

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then d=1 : move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then d=2 : move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then d=3 : move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then d=4 : move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then d=5 : move(5)  : ' 5 droite
  if KEY_DOWN_CODE = 103 then d=6 : move(6)                        : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then d=7 : move(7)  : ' 7 haut
  if KEY_DOWN_CODE = 105 then d=8 : move(8)                        : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then fin                            : ' Echap          ' cette ligne fonctionne avec then fin ???
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 :  tir_d = d
      if d = 5*pi/4 then tir_x = x% + 11 : tir_y = y% + 33
      if d = 3*pi/2 then tir_x = x% + 22 : tir_y = y% + 44
      if d = 7*pi/4 then tir_x = x% + 33 : tir_y = y% + 33
      if d = pi then tir_x = x%      : tir_y = y% + 22
      if d = 0 then tir_x = x% + 44 : tir_y = y% + 22
      if d = 3*pi/4 then tir_x = x% + 11 : tir_y = y% + 11
      if d = pi/2 then tir_x = x% + 22 : tir_y = y%
      if d = pi/4 then tir_x = x% + 33 : tir_y = y% + 11
      sprite_position 9,tir_x, tir_y :' SPRITE_SHOW 9
  end_if    : ' space
return
rem ============================================================================
boucle_principale:
timer_off 2
  asteroide()
  if tir% = 1 then tir()
timer_on 2
return
rem ============================================================================
' New_astéroide
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10
  end_while
  xA% = screen_x + 10 : yA% = screen_y + 10
  if vit_ast_x% > 0 then xA%=-10
  if vit_ast_y% > 0 then yA%=-10
  sprite_position 10,xA%,yA%
END_SUB
rem ============================================================================
' astéroide
SUB asteroide()
    SPRITE_SHOW 10
      scene2d_interval 500 : scene2d_on
      if ((xA% < (0-10)) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > (screen_x + 10)) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < (0-10))  and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > (screen_y + 10)) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
      wait vit_ast%
      scene2d_off
END_SUB
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    dim_local i,px%,py%
    px%=sprite_x_position(9) : py%=sprite_y_position(9)
      REPEAT
        i=i+vit_mis%
        if i>25 then sprite_show 9
        sprite_position 9,(x%+i*cos(d))+22,y%-i*sin(d)+22 : ' Mouvement de la balle du tir
        px%=sprite_x_position(9) : py%=sprite_y_position(9)
        verif_tir()
        if tir$="OK"
            tir_ok() : EXIT_REPEAT
        end_if
      UNTIL px%<0 or px%>screen_x or py%<0 or py%>screen_y
    tir% = 0 : sprite_hide 9 : on_key_down 0,touche
END_SUB
rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 :  SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
    on_key_down 0,touche
END_SUB
rem ============================================================================
SUB verif_tir()
dim_local pxb%,pyb%
    tir$=""
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    ' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
    if pxb%<(xA%+16) and pxb%>xA% and pyb%>yA% and pyb%<(yA%+24)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return


@Jicehel,
Quand tu auras l'occasion de tester, il faudrait que tu te penches sur la manière aléatoire du point de départ des astéroïdes. Car en début de partie c'est bon, mais j'ai remarqué que dès qu'elles partent du coin haut/gauche les suivantes partent toujours du coin haut/gauche.
Du coup, tu places le vaisseau à proximité et tu n'as plus qu'a les attendre.
J'ai bien essayé (mais n'ayant pas codé ta partie, je nage...) Very Happy

Ça commence à prendre tournure, cette affaire. cheers
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 11:33

OK, je regarde ce soir, je ne comprend pas pourquoi les asteroid partiraient toujours du coin haut / gauche. J'ai certainement fait une erreur de logique. Je regarderais ce soir.

Par contre je n'aime pas du tout ta procédure de tir. Je te ferais une proposition ce soir car avec une boucle tel que tu le fait, tu bloques complétement le jeu le temps du tir

Tu devrais mettre verif_tir dans ma procédure. Pour le moment tu n'as qu'un tir et un asteroid, un vaisseau ce n'est pas encore trop grave, mais si tu veux pouvoir gérer plusieurs tir, un vaisseau ennemi, un ou plusieurs asteroid, figer le jeu et arréter tous les autres déplacements le temps que tu gère un tir aurait un effet bizzare.

Un tir est un élément à gérer chaque tour comme les autres. Tu ne doit pas faire de boucle dans sa procédure de gestion à part pour le test de collision éventuellement selon la façon dont tu procèdes.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 13:11

Citation :
Par contre je n'aime pas du tout ta procédure de tir. Je te ferais une proposition ce soir car avec une boucle tel que tu le fait, tu bloques complétement le jeu le temps du tir
Je suis d'accord.

Je commence à être un peu dépassé, mais ce n'est pas grave.

Jicehel, je te conseille de commencer par la procédure de tir, car je pense que c'est elle qui perturbe l'arrivée aléatoire des astéroïdes.
Mais, sans vouloir te commander, j'aimerai que tu commentes un maximum, car si je ne te suis pas dans ta méthode, je ne vais pas apprendre. (Je te rappelle que plus nul que moi en math, ça n'existe pas)  Very Happy

Une fois ce problème réglé, je pourrais revoir la sub verif_tir() que je renommerais verif_collision() et la rendre valable pour toutes les collisions. elle retournera les numéros de sprite en collision. Bien sûr, il faudra passer en paramètre les numéro de sprite à contrôler et leur taille.

Volontairement, je ne ferais rien de plus pour le moment, car je veux absolument comprendre pour rester maître du code. (je veux dire, pouvoir continuer...)
Le savoir n'est utile que si il est compris.

Je suis à la retraite, donc le temps ne presse pas.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 14:04

Tu as raison. J'avoue que j'ai fais un peu vite et que c'est très light en commentaires  Wink
Ce soir j'essaye de te faire une version commentée.

Par contre perso, j'aime bien l'idée du tableau d'infos sur les sprites qu'a fait Klaus.

Si tu n'es pas contre, je remettrais la même structure que son tableau d'informations.
Ca permet de modifier facilement les informations si tu changes de sprite pour les tirs, les asteroids ou les vaisseaux.

OK pour modifier la procédure de tir / collision et je vérifierais que les asteroids partent bien de n'importe où.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 16:02

Pour le tableau d'info sur les sprites, j'avoue que je n'ai pas suivi les dernières nouvelles...
Je ne suis pas contre, à condition que ce soit utile et surtout je ne veux pas que le code devienne une usine à gaz.
Quoique sur ce plan là, je sais faire ! Very Happy . Mais ça c'est un privilège réservé aux programmeurs du dimanche, ce que Klaus n'est pas.

Propose, si ça me plait je prend....

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 17:03

En voulant adapter la sub verif_tir() je suis tombé sur un truc incompréhensible.

Dans le code suivant, si je mets en service la ligne 137, j'ai un accès-violation Question Question Question

Code:
' essai8.bas avec tir, collision, explosion (Jean Claude, Jicehel, Papydall)
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,xA%,yA%,vit_vai%,a_v%,vit_mis%,vit_ast_x%, vit_ast_y%,vit_ast%
dim tir$,tir% : tir% = 0
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
' dim tir_x(30),tir_y(30),tir_d(30),nb_tir  : ' si tu veux utiliser plusieurs tirs
dim tir_x,tir_y,tir_d
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' un missile
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' explosion astéroide

' init
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=12 :' + => plus rapide
vit_ast%=160 :' + => plus lent


new_asteroide() : SPRITE_SHOW 10
on_key_down 0,touche
timer 2 : timer_interval 2,1 : on_timer 2,boucle_principale
' on_close 0,fin : ' Si on ferme, on ferme par la procédure de sortie

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then d=1 : move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then d=2 : move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then d=3 : move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then d=4 : move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then d=5 : move(5)  : ' 5 droite
  if KEY_DOWN_CODE = 103 then d=6 : move(6)                        : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then d=7 : move(7)  : ' 7 haut
  if KEY_DOWN_CODE = 105 then d=8 : move(8)                        : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then fin                            : ' Echap          ' cette ligne fonctionne avec then fin ???
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 :  tir_d = d
      if d = 5*pi/4 then tir_x = x% + 11 : tir_y = y% + 33
      if d = 3*pi/2 then tir_x = x% + 22 : tir_y = y% + 44
      if d = 7*pi/4 then tir_x = x% + 33 : tir_y = y% + 33
      if d = pi then tir_x = x%      : tir_y = y% + 22
      if d = 0 then tir_x = x% + 44 : tir_y = y% + 22
      if d = 3*pi/4 then tir_x = x% + 11 : tir_y = y% + 11
      if d = pi/2 then tir_x = x% + 22 : tir_y = y%
      if d = pi/4 then tir_x = x% + 33 : tir_y = y% + 11
      sprite_position 9,tir_x, tir_y :' SPRITE_SHOW 9
  end_if    : ' space
return
rem ============================================================================
boucle_principale:
timer_off 2
  asteroide()
  if tir% = 1 then tir()
timer_on 2
return
rem ============================================================================
' New_astéroide
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10
  end_while
  xA% = screen_x + 10 : yA% = screen_y + 10
  if vit_ast_x% > 0 then xA%=-10
  if vit_ast_y% > 0 then yA%=-10
  sprite_position 10,xA%,yA%
END_SUB
rem ============================================================================
' astéroide
SUB asteroide()
    SPRITE_SHOW 10
      scene2d_interval 500 : scene2d_on
      if ((xA% < (0-10)) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > (screen_x + 10)) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < (0-10))  and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > (screen_y + 10)) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
      wait vit_ast%
      scene2d_off
END_SUB
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    dim_local i,px%,py%
    px%=sprite_x_position(9) : py%=sprite_y_position(9)
      REPEAT
        i=i+vit_mis%
        if i>25 then sprite_show 9
        sprite_position 9,(x%+i*cos(d))+22,y%-i*sin(d)+22 : ' Mouvement de la balle du tir
        px%=sprite_x_position(9) : py%=sprite_y_position(9)
        verif_tir(9,16,24,10,16,16) :' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
        if tir$="OK"
            tir_ok() : EXIT_REPEAT
        end_if
      UNTIL px%<0 or px%>screen_x or py%<0 or py%>screen_y
    tir% = 0 : sprite_hide 9 : on_key_down 0,touche
END_SUB
rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 :  SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
    on_key_down 0,touche
END_SUB
rem ============================================================================
SUB verif_tir(nsp1%,w1%,h1%,nsp2%,w2%,h2%)
dim_local px1%,py1%,px2%,py2%
    h1%=(h1%/2) : w1%=(w1%/2) : h2%=(h2%/2) : w2%=(w2%/2)
    tir$=""
    px1%=sprite_X_position(nsp1%) : py1%=sprite_Y_position(nsp1%) :' position de nsp1%
    px2%=sprite_X_position(nsp2%)
    ' : py2%=sprite_Y_position(nsp2%)  :' position de nsp2%
    if px1%<(xA%+w1%) and px1%>xA% and py1%>yA% and py1%<(yA%+h1%)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return


Si quelqu'un veut essayer, pour voir si c'est chez moi ou pas.
Je ne trouve aucune raison pour que cette ligne fasse planter Panoramic.exe.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 17:09

OK, je garderais volontairement exactement la même structure que le tableau de Klaus pour des raisons de comptabilité et de réusibilité et aussi car si on prend l'habitude de l'utiliser, ce sera plus simple.

Pour ton programme, on n'utilisera ni masque ni tunes et comme tu dis si ça te convient tu gardes, sinon tu adapteras à ta sauce  Wink

Perso, je prends car je trouve que c'est une excelleent façon de s'organiser, mais c'est mon opinion et ma façon de voir et je comprendrais tout à fait que d'autres personnes préfèrent travailler autrement.

(PS: En plus en reprenant sa structure, je ferais même l'économie de l'écriture des commentaires car Klaus a fait un super effort à ce niveau là Wink ).

Bon aller, j'arrète d'en parler avant de t'en proposer une version  Wink  A ce soir

PS: J'ai regardé ton code et la ligne 137. Je ne vois pas d'ereur mais je ne peux pas tester ici. Je te dirais si je trouve ce soir si tu n'as pas eu de réponse entre temps.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 18:23

Je viens de réagir, que tu parlais de cette sub:
Code:
sub creer_sprite(nam$,x%,y%,w%,h%,img%,dur%)
  nsprite% = nsprite% + 1        : ' passer au numéro de sprite suivant
  sprite nsprite%                : ' créer le sprite
  snames$(nsprite%)  = nam$    : ' memoriser son nom
  sprites(nsprite%,0) = w%      : ' mémoriser sa largeur
  sprites(nsprite%,1) = h%      : ' et sa hauteur
  sprites(nsprite%,2) = 1        : ' marquer "visible"
  sprites(nsprite%,3) = dur%    : ' marquer 0="pénétrable" ou 1="impénétrable"
  sprites(nsprite%,4) = x%      : ' position horizontale du sprite
  sprites(nsprite%,5) = y%      : ' position verticale du sprite
  sprites(nsprite%,6) = 0        : ' pas de tunes
  sprites(nsprite%,7) = 0        : ' pas de tunes
  if img%>0                      : ' une image est fournie ?
    sprite_image_load nsprite%,img%  : ' copier une image dans le sprite
    if images$<>"" then file_save img%,images$+"\sprite_"+str$(nsprite%)+".bmp" : ' et la sauver
  end_if                        : ' fin test image fournie
  sprite_position nsprite%,x%,y% : ' positionner le sprite à l'endroit voulu
  if DoKGF%>0
    resx% = dll_call6("DefineSprite",nsprite%,x%,y%,200,200,adr(nam$))
    resx% = dll_call3("ChangeSpriteOptions",nsprite%,1,dur%)
  end_if
  display
end_sub

Oui, il y a surement des choses à prendre pour l'adapter à PANGINE2D.
Mais en ne perdant pas de vue les commandes de PANGINE2D tel que tous les "SPRITE_ANIMATED_...." . Les sprites sont pêchés sur une planche, donc cette sub n'est pas forcément applicable.
Je m'explique: avec SPRITE_ANIMATED_FRAME, on joue un séquence(toute ou une partie) de sprites qui sont sur une planche.
Mais il y a matière a étudier.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 22:07

Purée avec le programme qui se ferme sans aucun message d'erreur, c'est trop fastidieux de modifier le programme. Ca m'énerve, donc désolé mais je ne ferais pas ce que j'ai dis. Je te mets ce que j'avais commencé à commenter mais je me suis arrété puisqu'en essayant avant même de coder de nouvelle chose, le programme ne fonctionne plus.

Désolé Jean-Claude. Je t'aiderait de nouveau s'il y a un peu d'aide au débuggage. Là, j'ai passé 30 minutes à regarder le code pour essayer de trouver là où j'ai du supprimer un caractère de trop ou un truc du genre. Je n'ose pas imaginer le problème si je rajoute des lignes. J'attends que Pangine2D soit plus exploitable pour le développement. Vraiment ce n'est pas agréable de développer sinon.

Bon j'arrète de râler et je te donne le code qui ne marche plus avec le début des commentaires.


Code:
' essai8.bas avec tir, collision, explosion (Jean Claude, Jicehel, Papydall)
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"

dim pi : pi = acos(-1) : ' mémorise la valeur pi
dim x%,y%,vit_vai%    : ' position et vitesse du vaisseau
dim d  : d = pi/2      : ' direction (c'est le cap) de départ du vaisseau (vers le haut)
dim xM%,yM%,vit_mis%  : ' position et vitesse du missile
dim xA%,yA%,vit_ast_x%, vit_ast_y% : ' position et vitesse de l'asteroid
dim a_v%              : ' stock le numéro correpondant à la diretion du sprite actuel pour voir s'il change
dim tir$,tir%, tir_x,tir_y,tir_d : ' Resultat du tir, Tir actif ou non, coord en x et en y du tir et mémoristion de la direction


' Déclaration des étiquettes
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' un missile
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' explosion astéroide

' init
tir% = 0 : ' Au début pas de tir actif
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=12  :' + => plus rapide
vit_ast%=160 :' + => plus lent

new_asteroide() : SPRITE_SHOW 10  : ' Créé l'astéroid initial

on_key_down 0,touche              : ' Active la gestion de l'appuie des touches

timer 2 : timer_interval 2,1 : on_timer 2,boucle_principale  : ' Activation du timer qui activera les tours de jeu

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then d=1 : move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then d=2 : move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then d=3 : move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then d=4 : move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then d=5 : move(5)  : ' 5 droite
  if KEY_DOWN_CODE = 103 then d=6 : move(6)                        : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then d=7 : move(7)  : ' 7 haut
  if KEY_DOWN_CODE = 105 then d=8 : move(8)                        : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then gosub fin                            : ' Echap
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 :  tir_d = d  : ' On mémorise qu'un tir est actif et la direction de ce tir
      ' On ajuste la position initale du tir en fonction de la direction du vaisseau
      if d = 5*pi/4 then tir_x = x% + 11 : tir_y = y% + 33
      if d = 3*pi/2 then tir_x = x% + 22 : tir_y = y% + 44
      if d = 7*pi/4 then tir_x = x% + 33 : tir_y = y% + 33
      if d = pi then tir_x = x%      : tir_y = y% + 22
      if d = 0 then tir_x = x% + 44 : tir_y = y% + 22
      if d = 3*pi/4 then tir_x = x% + 11 : tir_y = y% + 11
      if d = pi/2 then tir_x = x% + 22 : tir_y = y%
      if d = pi/4 then tir_x = x% + 33 : tir_y = y% + 11
      sprite_position 9,tir_x, tir_y : SPRITE_SHOW 9
  end_if    : ' Fin du traitement d'un appuie sur espace
return

rem ============================================================================
boucle_principale:
timer_off 2
  asteroide() : ' On gère notre asteroid pour ce tour
  if tir% = 1 then tir() :  ' Si un tir est actif, on gère son tour
timer_on 2
return

rem ============================================================================
' New_astéroide
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0  : ' On initialise le compteur pour un lancé aléatoire
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5      : ' On fixe une vitesse minimale en dessous
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10 : ' de laquelle on n'accepte pas le tirage
  end_while                                          : ' la vitesse peut être positive ou négative
  xA% = screen_x + 10 : yA% = screen_y + 10          : ' on fixe la position de départ de l'astéroid en bas à droite
  if vit_ast_x% > 0 then xA%=-10                      : ' si la vitesse en x est positive, on change le point de départ à gauche
  if vit_ast_y% > 0 then yA%=-10                      : ' si la vitesse en y est positive, on change le point de départ en haut
  sprite_position 10,xA%,yA%                          : ' on positionne notre asteroide
END_SUB

rem ============================================================================
' astéroide
SUB asteroide()
      scene2d_interval 500 : scene2d_on
      if ((xA% < (0-10)) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > (screen_x + 10)) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < (0-10))  and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > (screen_y + 10)) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
      wait vit_ast%
      scene2d_off
END_SUB
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    dim_local i,px%,py%
    px%=sprite_x_position(9) : py%=sprite_y_position(9)
      REPEAT
        i=i+vit_mis%
        if i>25 then sprite_show 9
        sprite_position 9,(x%+i*cos(d))+22,y%-i*sin(d)+22 : ' Mouvement de la balle du tir
        px%=sprite_x_position(9) : py%=sprite_y_position(9)
        verif_tir(9,16,24,10,16,16) :' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
        if tir$="OK"
            tir_ok() : EXIT_REPEAT
        end_if
      UNTIL px%<0 or px%>screen_x or py%<0 or py%>screen_y
    tir% = 0 : sprite_hide 9 : on_key_down 0,touche
END_SUB
rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  :' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 :  SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% :' repositionne l'astéroïde en dehors de l'écran
    on_key_down 0,touche
END_SUB
rem ============================================================================
SUB verif_tir(nsp1%,w1%,h1%,nsp2%,w2%,h2%)
dim_local px1%,py1%,px2%,py2%
    h1%=(h1%/2) : w1%=(w1%/2) : h2%=(h2%/2) : w2%=(w2%/2)
    tir$=""
    px1%=sprite_X_position(nsp1%) : py1%=sprite_Y_position(nsp1%) :' position de nsp1%
    px2%=sprite_X_position(nsp2%)
    ' : py2%=sprite_Y_position(nsp2%)  :' position de nsp2%
    if px1%<(xA%+w1%) and px1%>xA% and py1%>yA% and py1%<(yA%+h1%)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 EmptyJeu 18 Juin 2015 - 22:26

Et comme ça, ça ne marche toujours pas ?
Code:
' essai8.bas avec tir, collision, explosion (Jean Claude, Jicehel, Papydall)
rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"

dim pi : pi = acos(-1) : ' mémorise la valeur pi
dim x%,y%,vit_vai%    : ' position et vitesse du vaisseau
dim d  : d = pi/2      : ' direction (c'est le cap) de départ du vaisseau (vers le haut)
dim xM%,yM%,vit_mis%  : ' position et vitesse du missile
dim xA%,yA%,vit_ast_x%, vit_ast_y% : ' position et vitesse de l'asteroid
dim a_v%              : ' stock le numéro correpondant à la diretion du sprite actuel pour voir s'il change
dim tir$,tir%, tir_x,tir_y,tir_d : ' Resultat du tir, Tir actif ou non, coord en x et en y du tir et mémoristion de la direction


' Déclaration des étiquettes
label touche,boucle_principale, fin

' création des sptites
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8
SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' un missile
SPRITE_ANIMATED 10 : SPRITE_ANIMATED_FILE_LOAD 10,1,8,"image/rock8.bmp" : SPRITE_HIDE 10  : ' astéroide
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp" : SPRITE_HIDE 11  : ' explosion astéroide

' init
tir% = 0 : ' Au début pas de tir actif
x%=(screen_x/2)+32 : y%=700 : sprite_position 7,x%,y% : a_v% = 7 : SPRITE_SHOW 7

' scene2D
file_load "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=12  :' + => plus rapide
vit_ast%=160 :' + => plus lent

new_asteroide() : SPRITE_SHOW 10  : ' Créé l'astéroid initial

on_key_down 0,touche              : ' Active la gestion de l'appuie des touches

timer 2 : timer_interval 2,1 : on_timer 2,boucle_principale  : ' Activation du timer qui activera les tours de jeu

END

rem ============================================================================
touche:
' Touches du pavé numérique
  if KEY_DOWN_CODE = 97 then d=1 : move(1)                        : ' 1 End
  if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then d=2 : move(2)  : ' 2 Bas
  if KEY_DOWN_CODE = 99 then d=3 : move(3)                        : ' 3 PgDn
  if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then d=4 : move(4)  : ' 4 gauche
  if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then d=5 : move(5)  : ' 5 droite
  if KEY_DOWN_CODE = 103 then d=6 : move(6)                        : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then d=7 : move(7)  : ' 7 haut
  if KEY_DOWN_CODE = 105 then d=8 : move(8)                        : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then gosub fin                            : ' Echap
  if KEY_DOWN_CODE = 32 AND tir% = 0
      tir% = 1 :  tir_d = d  : ' On mémorise qu'un tir est actif et la direction de ce tir
      ' On ajuste la position initale du tir en fonction de la direction du vaisseau
      if d = 5*pi/4 then tir_x = x% + 11 : tir_y = y% + 33
      if d = 3*pi/2 then tir_x = x% + 22 : tir_y = y% + 44
      if d = 7*pi/4 then tir_x = x% + 33 : tir_y = y% + 33
      if d = pi then tir_x = x%      : tir_y = y% + 22
      if d = 0 then tir_x = x% + 44 : tir_y = y% + 22
      if d = 3*pi/4 then tir_x = x% + 11 : tir_y = y% + 11
      if d = pi/2 then tir_x = x% + 22 : tir_y = y%
      if d = pi/4 then tir_x = x% + 33 : tir_y = y% + 11
      sprite_position 9,tir_x, tir_y : SPRITE_SHOW 9
  end_if    : ' Fin du traitement d'un appuie sur espace
return

rem ============================================================================
boucle_principale:
timer_off 2
  asteroide() : ' On gère notre asteroid pour ce tour
  if tir% = 1 then tir() :  ' Si un tir est actif, on gère son tour
timer_on 2
return

rem ============================================================================
' New_astéroide
SUB new_asteroide()
  vit_ast_x%= 0 : vit_ast_y%= 0  : ' On initialise le compteur pour un lancé aléatoire
  while (abs(vit_ast_x%) + abs(vit_ast_y%)) < 5      : ' On fixe une vitesse minimale en dessous
    vit_ast_x%=rnd(20) - 10 : vit_ast_y%=rnd(20) - 10 : ' de laquelle on n'accepte pas le tirage
  end_while                                          : ' la vitesse peut être positive ou négative
  xA% = screen_x + 10 : yA% = screen_y + 10          : ' on fixe la position de départ de l'astéroid en bas à droite
  if vit_ast_x% > 0 then xA%=-10                      : ' si la vitesse en x est positive, on change le point de départ à gauche
  if vit_ast_y% > 0 then yA%=-10                      : ' si la vitesse en y est positive, on change le point de départ en haut
  sprite_position 10,xA%,yA%                          : ' on positionne notre asteroide
END_SUB

rem ============================================================================
' astéroide
SUB asteroide()
      scene2d_interval 500 : scene2d_on
      if ((xA% < (0-10)) and (vit_ast_x% < 0)) then new_asteroide()
      if ((xA% > (screen_x + 10)) and (vit_ast_x% > 0)) then new_asteroide()
      if ((yA% < (0-10))  and (vit_ast_y% < 0)) then new_asteroide()
      if ((yA% > (screen_y + 10)) and (vit_ast_y% > 0)) then new_asteroide()
      xA%=xA%+vit_ast_x% : yA%=yA%+vit_ast_y% :  sprite_position 10,xA%,yA%
      wait vit_ast%
      scene2d_off
END_SUB
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    dim_local i,px%,py%
    px%=sprite_x_position(9) : py%=sprite_y_position(9)
      REPEAT
        i=i+vit_mis%
        if i>25 then sprite_show 9
        sprite_position 9,(x%+i*cos(d))+22,y%-i*sin(d)+22 : ' Mouvement de la balle du tir
        px%=sprite_x_position(9) : py%=sprite_y_position(9)
        verif_tir(9,16,24,10,16,16) : ' la balle est un sprite de 16x16 ' l'astéroide 22x24 (planche de 176x24 176/8=22)
        if tir$="OK"
            tir_ok() : EXIT_REPEAT
        end_if
      UNTIL px%<0 or px%>screen_x or py%<0 or py%>screen_y
    tir% = 0 : sprite_hide 9 : on_key_down 0,touche
END_SUB
rem ============================================================================
SUB tir_ok()
    ' animation de la destruction de la cible
dim_local pxb%,pyb%
    off_key_down 0 : ' attendre la fin du tir pour éviter l'arrêt du jeu et la déviation du tir
    pxb%=sprite_X_position(9) : pyb%=sprite_Y_position(9)  : ' position du missile
    scene2d_interval 150 : scene2d_on
    sprite_position 11,(pxb%-44),(pyb%-50) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 2000 : SPRITE_HIDE 10 : SPRITE_HIDE 11 :  SCENE2D_OFF
    xA%=-30 : yA%=-30 : sprite_position 10,xA%,yA% : ' repositionne l'astéroïde en dehors de l'écran
    on_key_down 0,touche
END_SUB
rem ============================================================================
SUB verif_tir(nsp1%,w1%,h1%,nsp2%,w2%,h2%)
dim_local px1%,py1%,px2%,py2%
    h1%=(h1%/2) : w1%=(w1%/2) : h2%=(h2%/2) : w2%=(w2%/2)
    tir$=""
    px1%=sprite_X_position(nsp1%) : py1%=sprite_Y_position(nsp1%) : ' position de nsp1%
    px2%=sprite_X_position(nsp2%)
    ' : py2%=sprite_Y_position(nsp2%)  : ' position de nsp2%  : ' <=====?????????
    if px1%<(xA%+w1%) and px1%>xA% and py1%>yA% and py1%<(yA%+h1%)
      tir$="OK"
    end_if
END_SUB

rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit_vai% : y% = y% + vit_vai%  : d = 5*pi/4
        case 2 : y% = y% + vit_vai%                  : d = 3*pi/2
        case 3 : x% = x% + vit_vai% : y% = y% + vit_vai%  : d = 7*pi/4
        case 4 : x% = x% - vit_vai%                  : d = pi
        case 5 : x% = x% + vit_vai%                  : d = 0
        case 6 : x% = x% - vit_vai% : y% = y% - vit_vai%  : d = 3*pi/4
        case 7 : y% = y% - vit_vai%                  : d = pi/2
        case 8 : x% = x% + vit_vai% : y% = y% - vit_vai%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

fin:
  terminate
return
(Je n'ai pas Pangine2d...)
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





PANGINE2D - Page 2 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 2 Empty

Revenir en haut Aller en bas
 
PANGINE2D
Revenir en haut 
Page 2 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» PANGINE2D alpha 3 du 21 juin 2015
» Je cherche PANGINE2D
» Question à Jack sur PANGINE2D
» Chasseur d'astéroïdes (PANGINE2D)
» PANGINE2D alpha 2 du 19 juin 2015

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Expériences autour de PANORAMIC :: PANGINE2D-
Sauter vers: