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
» 2D_fill_color
PANGINE2D - Page 4 Emptypar Marc Hier à 14:25

» Consommation gaz électricité
PANGINE2D - Page 4 Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
PANGINE2D - Page 4 Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
PANGINE2D - Page 4 Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
PANGINE2D - Page 4 Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
PANGINE2D - Page 4 Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
PANGINE2D - Page 4 Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
PANGINE2D - Page 4 Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
PANGINE2D - Page 4 Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
PANGINE2D - Page 4 Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
PANGINE2D - Page 4 Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
PANGINE2D - Page 4 Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
PANGINE2D - Page 4 Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
PANGINE2D - Page 4 Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
PANGINE2D - Page 4 Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
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
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 8:58

C'est donc bien un bug de la nouvelle version puisque ce code fonctionne avec la version d'avant
Revenir en haut Aller en bas
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 11:14

Je te mets le source gérant le multi-tirs et je te laisse réfléchir sur le multi-astéroides avec ces principes.
Si tu sèches je te le coderais.
Je vais regardais tes sprites, il y a quelques petits problèmes de pixels
Fichier source:
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 11:57

OK Jicehel,

Je me pencherais sur le multi-asréroïdes. Pas avant lundi, demain je vais visiter la grande bleu Cool
Et cet après midi, je suis devant les fourneaux.
Si j'y parviens, ce sera l'occasion de faire un niveau 2. (5 astéroïdes détruits pour le premier niveau et ensuite on passe au multi-asréroïdes avec mission d'en détruire encore 5).

Les tirs à répétition, ça donne un effet visuel assez sympa. Même si ça ne sert pas a grand chose, (Sauf peut-être pour le multi-asréroïdes).

Par contre la partie s'arrête d'un coup (sans message d'erreur) s'il y a cumul de plusieurs tirs dont un qui fait mouche. Question
Je pense qu'il faut ajouter off_key_down après la ligne 186 pour éviter cela.
Je vais tenter de reproduire le problème et je verrais.

Merci pour ton aide.

A+



Revenir en haut Aller en bas
Klaus

Klaus


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 12:04

Où sont les fichiers 0.bmp, 1.bmp, ... 9.bmp ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 12:13

Je viens à l'instant de changer le zip sur mon Webdav.

Dedans il y a le nouvel éditeur, le dossier contenant les images, et 2 codes (niveau2.bas est en cours de codage, mais il fonctionne tel que).

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 12:23

Merci ! Téléchargé.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 17:16

Jean-Claude, je te mets un lien vers un zip avec les images modifiées que j'ai fais ce matin. Je serais peu dispo jusqu'à demain soir

fichier zip: image.zip
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 19:22

J'ai téléchargé.

Il faudra que tu me dise avec quoi tu travailles les Sprites. Moi j'utilise PhotoFiltre7.

Mais ça ne fait que 15 jours, alors là aussi j'ai à apprendre.

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 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 19:58

OK, en attendant le invités (ils sont là), j'ai commencé le multi-asteroides.
Je n'ai pas eu le temps de corriger. J'ai un access violation en lançant pour tester.
Je poste juste le code avant de décrocher
Code:

Atention ouvrez le gestionnaire de taches pour pouvoir fermer Panoramic.exe si vous testez à cause de la violation d'accès memoire
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 21:31

@Jicehel, fait comme moi, prend un peu de repos. Very Happy

Tu n'as pas mis à jour tous les appels de la sub asteroide(x), en ligne 136 et 144.
Ensuite tu as changé xA% par xA%(Nb_Asteroides%) dans la déclaration des variables, mais rien dans le reste du code. Idem pour yA%.... confused
J'ose dire que c'est du travail baclé. Very Happy geek

Je tais dit que je ne ferais rien avant lundi, et et ce sera le cas. Alors il n'y a pas le feu.

Bonne communion, et consacre toi à tes invités.

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 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptySam 20 Juin 2015 - 23:33

Désolé, j'ai essayé de le faire avant qu'ils arrivent mais je n'ai pas eu le temps de refaire une passe de relecture.
Les invités sont partis avant la journée de demain.
J'ai relu le programme et modifié une partie des oublis mais j'ai encore dû en oublier puisque j'ai toujours un access violation.
Je mets le code pour si quelqu'un peut y regarder demain.
Code:
Revenir en haut Aller en bas
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 8:47

Avant la communion, j'ai vu que Jack avait fait une nouvelle version.
Je mets si dessous la version compatible alpha3
Code:
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 9:25

Salut Jicehel,

Encore des bonnes nouvelles ce matin. Very Happy

Pourrais-tu fournir cette image "image/rock9.bmp" (à moins qu'il s'agisse de "image/rock8.bmp")

Apparemment la création en boucle pour les SPRITE_ANIMATED à l'air de poser un problème.

Je vais devoir partir, si j'ai le temps je regarderais ce soir, sinon ce sera demain comme prévu.

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 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 9:35

oui rock9.bmp c'est une copie de rock8.bmp que j'ai fais hier quand j'ai eu le problème de chargement de l'image en pensant que c'était un bug ponctuel.
Le truc c'est que le bug se reproduit avec des fichiers variables et à priori dont le nom de fichier est assez aléatoire ou lié à des raisons qui m'échappent totalement.

Pour rock9.bmp ne t'embête pas a copier l'image. Change juste en 8, c'est un oubli de ma part de ne pas avoir remis rock8.bmp
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 9:38

Mais qu'est ce que tu fais encore là !! Mad
Allé ouste !!! A la communion !!! Laughing
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 9:41

Je pars à 10H et on se prépare, on discute et je jette un coup d'oeil sur le forum ...
Après, je ne sais pas trop à quelle heure je reviens ce soir Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 9:46

Salut Nardo.

@Jicehel,
Tu vas être en retard Very Happy

Pour ton code il faut que tu mette les SPRITE_POSITION après avoir chargé l'image, c'est ça qui coince.

Bon cette fois-ci, c'est moi qui doit décroché.

A ce soir.
Revenir en haut Aller en bas
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 18:03

Bien essayé mais non le problème ne vient pas de là ...
"Impossible to load file line 44" en retirant les sprite_position avant. Une fois de plus, je pense que si je reboot, la première fois, ça marchera très bien.

Code:
' essai8.bas avec tir, collision, explosion, et fin de partie (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 n%,i%
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 Nb_tirs%,Cpt_tirs% : Nb_tirs%=5 : ' Nombre de tirs autorisés et compteur de tirs actifs
dim tir$,tir%(Nb_tirs%), tir_x(Nb_tirs%),tir_y(Nb_tirs%),tir_d(Nb_tirs%),vit_mis% : ' Resultat du tir, Tir actif ou non, coord en x et en y du tir et mémoristion de la direction et vitesse
dim Nb_Asteroides%,Cpt_asteroides% : Nb_Asteroides% = 3     : ' Nombre d'Asteroides actifs
dim xA%(Nb_Asteroides%),yA%(Nb_Asteroides%)                 : ' Position des asteroides
dim vit_ast_x%(Nb_Asteroides%), vit_ast_y%(Nb_Asteroides%)  : ' Vitesse des asteroides
dim SpriteV% :' Pour savoir quelle image du vaisseau est en service (car d change dans la sub move)
dim score%   :' Pour le score
dim cpt_t_asteroide : ' ralentisseur pour les mouvements de l'asteroid

' 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
FOR n% = 1 TO Nb_tirs%
  SPRITE 39 + n% : SPRITE_FILE_LOAD 39 + n%,"image/balle.bmp"
  SPRITE_HIDE 39 + n%  : ' le  missile 1 à 5
  tir%(n%) = 0 : ' Au début pas de tir actif
NEXT n%
FOR n% = 1 TO Nb_Asteroides%
  SPRITE_ANIMATED 29 + n% : ' Créé un sprite pour un astéroide
  SPRITE_ANIMATED_FILE_LOAD 29 + n% ,1,8,"image/rock9.bmp"    : ' Charge le sprite animé correspondant à l'astéroide
  new_asteroide(n%) : SPRITE_SHOW 29 + n%  : ' Créé l'astéroid initial
NEXT n%
Cpt_asteroides% = Nb_Asteroides%
SPRITE_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp"  : SPRITE_HIDE 11  : ' explosion astéroide
SPRITE_ANIMATED 12 : SPRITE_ANIMATED_FILE_LOAD 12,5,5,"image/meteore2.bmp" : SPRITE_HIDE 12  : ' explosion vaisseau
SPRITE 20 : SPRITE_FILE_LOAD 20,"image/0.bmp" : SPRITE_HIDE 20  : ' chiffres pour le score
SPRITE 21 : SPRITE_FILE_LOAD 21,"image/1.bmp" : SPRITE_HIDE 21  : ' chiffres pour le score
SPRITE 22 : SPRITE_FILE_LOAD 22,"image/2.bmp" : SPRITE_HIDE 22  : ' chiffres pour le score
SPRITE 23 : SPRITE_FILE_LOAD 23,"image/3.bmp" : SPRITE_HIDE 23  : ' chiffres pour le score
SPRITE 24 : SPRITE_FILE_LOAD 24,"image/4.bmp" : SPRITE_HIDE 24  : ' chiffres pour le score
SPRITE 25 : SPRITE_FILE_LOAD 25,"image/5.bmp" : SPRITE_HIDE 25  : ' chiffres pour le score
SPRITE 26 : SPRITE_FILE_LOAD 26,"image/6.bmp" : SPRITE_HIDE 26  : ' chiffres pour le score
SPRITE 27 : SPRITE_FILE_LOAD 27,"image/7.bmp" : SPRITE_HIDE 27  : ' chiffres pour le score
SPRITE 28 : SPRITE_FILE_LOAD 28,"image/8.bmp" : SPRITE_HIDE 28  : ' chiffres pour le score
SPRITE 29 : SPRITE_FILE_LOAD 29,"image/9.bmp" : SPRITE_HIDE 29  : ' chiffres pour le score

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

' scene2D
BACKGND_LOAD "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=20  :' + => plus rapide
cpt_t_asteroide = 0 : Cpt_tirs% = 0

affiscore()
on_key_down touche              : ' Active la gestion de l'appuie des touches

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

END

rem ============================================================================
SUB affiscore()
  if score%>9 then message "Bravo vous avez détruit 10 météore. Votre mission est terminée" : gosub fin
  if score% > 0 then SPRITE_HIDE 19 + score%
  SPRITE_SHOW 20 + score%
END_SUB

rem ============================================================================
SUB vaisseau_detruit(Aster%)
    ' animation de la destruction de la cible
    off_key_down
    sprite_position 29 + Aster%,xA%(Aster%)+20,yA%(Aster%)+20 : SPRITE_HIDE SpriteV%
    scene2d_interval 250 : scene2d_on
    sprite_position 12,(xA%(Aster%) - 60),(yA%(Aster%) - 60) : SPRITE_SHOW 12 : sprite_animated_frames 12,8,14
    pause 400 : SPRITE_HIDE 12
    scene2d_off
END_SUB

rem ============================================================================
SUB Test_collision_vaisseau(Aster%)
  Collision_AABB(xA%(Aster%),yA%(Aster%),22,24,x%,y%,32,32) :' vérifier si le vaisseau n'est pas en collision avec l'astéroide
  if tir$="OK"
    vaisseau_detruit(Aster%)
    message "Votre vaisseau est détruit!"
    gosub fin
  end_if
END_SUB

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) : ' 5 droite
  if KEY_DOWN_CODE = 103 then move(6)                      : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7) : ' 7 haut
  if KEY_DOWN_CODE = 105 then move(8)                      : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then gosub fin                      : ' Echap
  if KEY_DOWN_CODE = 32 AND Cpt_tirs% < Nb_tirs%
      Cpt_tirs% = Cpt_tirs% + 1
      tir%(Cpt_tirs%) = 1 :  tir_d(Cpt_tirs%) = 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(Cpt_tirs%) = x% + 11 : tir_y(Cpt_tirs%) = y% + 33
      if d = 3*pi/2 then tir_x(Cpt_tirs%) = x% + 22 : tir_y(Cpt_tirs%) = y% + 44
      if d = 7*pi/4 then tir_x(Cpt_tirs%) = x% + 33 : tir_y(Cpt_tirs%) = y% + 33
      if d = pi then tir_x(Cpt_tirs%) = x%      : tir_y(Cpt_tirs%) = y% + 22
      if d = 0 then tir_x(Cpt_tirs%) = x% + 44 : tir_y(Cpt_tirs%) = y% + 22
      if d = 3*pi/4 then tir_x(Cpt_tirs%) = x% + 11 : tir_y(Cpt_tirs%) = y% + 11
      if d = pi/2 then tir_x(Cpt_tirs%) = x% + 22 : tir_y(Cpt_tirs%) = y%
      if d = pi/4 then tir_x(Cpt_tirs%) = x% + 33 : tir_y(Cpt_tirs%) = y% + 11
      sprite_position 39+Cpt_tirs%,tir_x(Cpt_tirs%), tir_y(Cpt_tirs%) : SPRITE_SHOW 39+Cpt_tirs%
  end_if    : ' Fin du traitement d'un appuie sur espace
on_key_down touche
return

rem ============================================================================
boucle_principale:
timer_off 2: off_key_down
  cpt_t_asteroide = cpt_t_asteroide + 1
  if cpt_t_asteroide = 1 then asteroide(1)   : ' On gère notre asteroid pour ce tour
  if cpt_t_asteroide = 2 then asteroide(3): ' On gère notre asteroid pour ce tour
  if cpt_t_asteroide = 2 then asteroide(2)  :  cpt_t_asteroide = 0 : ' On gère notre asteroid pour ce tour
  FOR i% = 1 TO Nb_Asteroides%
      Test_collision_vaisseau(i%)
  next i%
  if Cpt_tirs% > 0
    for i% = 1 to Cpt_tirs%
      if tir%(i%) = 1 then tir(i%) :  ' Si un tir est actif, on gère son tour
        cpt_t_asteroide = cpt_t_asteroide + 1
        if cpt_t_asteroide = 1 then asteroide(1)   : ' On gère notre asteroid pour ce tour
        if cpt_t_asteroide = 2 then asteroide(3): ' On gère notre asteroid pour ce tour
        if cpt_t_asteroide = 2 then asteroide(2)  :  cpt_t_asteroide = 0 : ' On gère notre asteroid pour ce tour
    next i%
  end_if
timer_on 2 : on_key_down touche
return

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

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

rem ============================================================================
' libère un tir
SUB Annule_tir(N_t%)
 tir_d(N_t%) = tir_d(Cpt_tirs%) :  tir_x(N_t%) = tir_x(Cpt_tirs%) : tir_y(N_t%) = tir_y(Cpt_tirs%)
 SPRITE_POSITION 39 + N_t%,tir_x(N_t%), tir_y(N_t%) : SPRITE_HIDE 39 + Cpt_tirs%
 tir%(Cpt_tirs%) = 0 : Cpt_tirs% = Cpt_tirs% - 1
END_SUB

rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir(N_t%)
  tir_x(N_t%) = tir_x(N_t%) + cos(tir_d(N_t%))* vit_mis%  : tir_y(N_t%) = tir_y(N_t%) - sin(tir_d(N_t%)) * vit_mis%
  if (cos(tir_d(N_t%)) > 0 and tir_x(N_t%) > screen_x) or (cos(tir_d(N_t%)) < 0 and tir_x(N_t%) < 0 ) or (sin(tir_d(N_t%)) < 0 and tir_y(N_t%) > screen_y) or (sin(tir_d(N_t%)) > 0 and tir_y(N_t%) < 0 )
    Annule_tir(N_t%)
  end_if
  sprite_position 39+N_t%,tir_x(N_t%), tir_y(N_t%) : ' Mouvement de la balle du tir
  FOR n% = 1 TO Nb_Asteroides%
      Collision_AABB(tir_x(N_t%),tir_y(N_t%),16,16,xA%(n%),yA%(n%), 22,24)
      if tir$="OK" then tir_ok(N_t%,n%)
  NEXT n%
END_SUB

rem ============================================================================
SUB tir_ok(N_t%,N_a%)
    ' animation de la destruction de la cible
    Annule_tir(N_t%)
    off_key_down
    sprite_position 11,(xA%(N_a%) - 40),(yA%(N_a%) - 40) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 200 : SPRITE_HIDE 29 + N_a% : SPRITE_HIDE 11
    on_key_down touche
    score%=score%+1 : affiscore()
    new_asteroide(N_a%):  SPRITE_SHOW 29 + N_a%
END_SUB

rem ============================================================================
SUB Collision_AABB(r1_x%,r1_y%,r1_width,r1_height,r2_x%,r2_y%, r2_width,r2_height)
  Tir$="OK"
  IF ((r2_x% >= (r1_x% + r1_width)) OR ((r2_x% + r2_width) <= r1_x%) OR (r2_y% >= (r1_y% + r1_height)) OR ((r2_y% + r2_height) <= r1_y%)) THEN Tir$=""
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
    caption str$(nsp%) + ":" + str$(SpriteV%)
    if nsp% <> SpriteV%
        sprite_hide SpriteV% : SpriteV% = nsp%  : sprite_position nsp%,x%,y% :sprite_show nsp%
    else
        sprite_position nsp%,x%,y%
    end_if
' 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

END_SUB
rem ============================================================================

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

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 20:10

@Jicehel,

J'ai réussi à faire fonctionner ton code.
Au début il plantai d'entrée.
ensuite j'ai vu ceci:
Code:
dim Nb_tirs%,Cpt_tirs% : Nb_tirs%=5 : ' Nombre de tirs autorisés et compteur de tirs actifs
dim tir$,tir%(Nb_tirs%), tir_x(Nb_tirs%),tir_y(Nb_tirs%),tir_d(Nb_tirs%),vit_mis% : ' Resultat du tir, Tir actif ou non, coord en x et en y du tir et mémoristion de la direction et vitesse
dim Nb_Asteroides%,Cpt_asteroides% : Nb_Asteroides% = 3     : ' Nombre d'Asteroides actifs
dim xA%(Nb_Asteroides%),yA%(Nb_Asteroides%)                 : ' Position des asteroides
dim vit_ast_x%(Nb_Asteroides%), vit_ast_y%(Nb_Asteroides%)  : ' Vitesse des asteroides

Maintenant remplace
dim tir$,tir%(Nb_tirs%), tir_x(Nb_tirs%),tir_y(Nb_tirs%),tir_d(Nb_tirs%),vit_mis%
par
dim tir$,tir%(5), tir_x(5),tir_y(5),tir_d(5),vit_mis%

et pareil pour

dim xA%(Nb_Asteroides%),yA%(Nb_Asteroides%)                 : ' Position des asteroides
dim vit_ast_x%(Nb_Asteroides%), vit_ast_y%(Nb_Asteroides%)  : ' Vitesse des asteroides

par
dim xA%(Cool,yA%(Cool                 : ' Position des asteroides
dim vit_ast_x%(Cool, vit_ast_y%(Cool  : ' Vitesse des asteroides


Je pense que ça devrait aller mieux, je l'espère.

Vérifie et si c'est ça, on en parlera à Jack, car ce n'est pas normal.


PS: tous ces jolies smileys, sont bien entendu des 8 entre parenthèses.

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 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyDim 21 Juin 2015 - 21:01

Changement par des caleurs fixes et redémarrage de PANGINE2D => Problème identique .... Sad
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyLun 22 Juin 2015 - 8:05

@Jicehel,
essai celui-ci, il fonctionne très bien chez moi.
Code:
' essai8.bas avec tir, collision, explosion, et fin de partie (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 n%,i%
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 Nb_tirs%,Cpt_tirs% : Nb_tirs%=5 : ' Nombre de tirs autorisés et compteur de tirs actifs
dim tir$,tir%(Nb_tirs%), tir_x(Nb_tirs%),tir_y(Nb_tirs%),tir_d(Nb_tirs%),vit_mis% : ' Resultat du tir, Tir actif ou non, coord en x et en y du tir et mémoristion de la direction et vitesse
dim Nb_Asteroides%,Cpt_asteroides% : Nb_Asteroides% = 3    : ' Nombre d'Asteroides actifs
dim xA%(Nb_Asteroides%),yA%(Nb_Asteroides%)                : ' Position des asteroides
dim vit_ast_x%(Nb_Asteroides%), vit_ast_y%(Nb_Asteroides%)  : ' Vitesse des asteroides
dim SpriteV% :' Pour savoir quelle image du vaisseau est en service (car d change dans la sub move)
dim score%  :' Pour le score
dim cpt_t_asteroide : ' ralentisseur pour les mouvements de l'asteroid

' 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_ANIMATED 11 : SPRITE_ANIMATED_FILE_LOAD 11,5,5,"image/meteore.bmp"  : SPRITE_HIDE 11  : ' explosion astéroide
SPRITE_ANIMATED 12 : SPRITE_ANIMATED_FILE_LOAD 12,5,5,"image/meteore2.bmp" : SPRITE_HIDE 12  : ' explosion vaisseau

SPRITE 20 : SPRITE_FILE_LOAD 20,"image/0.bmp" : SPRITE_HIDE 20  : ' chiffres pour le score
SPRITE 21 : SPRITE_FILE_LOAD 21,"image/1.bmp" : SPRITE_HIDE 21  : ' chiffres pour le score
SPRITE 22 : SPRITE_FILE_LOAD 22,"image/2.bmp" : SPRITE_HIDE 22  : ' chiffres pour le score
SPRITE 23 : SPRITE_FILE_LOAD 23,"image/3.bmp" : SPRITE_HIDE 23  : ' chiffres pour le score
SPRITE 24 : SPRITE_FILE_LOAD 24,"image/4.bmp" : SPRITE_HIDE 24  : ' chiffres pour le score
SPRITE 25 : SPRITE_FILE_LOAD 25,"image/5.bmp" : SPRITE_HIDE 25  : ' chiffres pour le score
SPRITE 26 : SPRITE_FILE_LOAD 26,"image/6.bmp" : SPRITE_HIDE 26  : ' chiffres pour le score
SPRITE 27 : SPRITE_FILE_LOAD 27,"image/7.bmp" : SPRITE_HIDE 27  : ' chiffres pour le score
SPRITE 28 : SPRITE_FILE_LOAD 28,"image/8.bmp" : SPRITE_HIDE 28  : ' chiffres pour le score
SPRITE 29 : SPRITE_FILE_LOAD 29,"image/9.bmp" : SPRITE_HIDE 29  : ' chiffres pour le score

FOR n% = 1 TO Nb_Asteroides%
  SPRITE_ANIMATED 29 + n% : ' Créé un sprite pour un astéroide
  SPRITE_ANIMATED_FILE_LOAD 29 + n% ,1,8,"image/rock8.bmp"    : ' Charge le sprite animé correspondant à l'astéroide
  new_asteroide(n%) : SPRITE_SHOW 29 + n%  : ' Créé l'astéroid initial
NEXT n%
Cpt_asteroides% = Nb_Asteroides%

FOR n% = 1 TO Nb_tirs%
  SPRITE 39 + n% : SPRITE_FILE_LOAD 39 + n%,"image/balle.bmp"
  SPRITE_HIDE 39 + n%  : ' le  missile 1 à 5
  tir%(n%) = 0 : ' Au début pas de tir actif
NEXT n%


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

' scene2D
BACKGND_LOAD "image/espace.bmp"

' réglages
vit_vai% = 8 :' + => plus rapide
vit_mis%=20  :' + => plus rapide
cpt_t_asteroide = 0 : Cpt_tirs% = 0

affiscore()
on_key_down touche              : ' Active la gestion de l'appuie des touches

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

END

rem ============================================================================
SUB affiscore()
  if score%>9 then message "Bravo vous avez détruit 10 météore. Votre mission est terminée" : gosub fin
  if score% > 0 then SPRITE_HIDE 19 + score%
  SPRITE_SHOW 20 + score%
END_SUB

rem ============================================================================
SUB vaisseau_detruit(Aster%)
    ' animation de la destruction de la cible
    off_key_down
    sprite_position 29 + Aster%,xA%(Aster%)+20,yA%(Aster%)+20 : SPRITE_HIDE SpriteV%
    scene2d_interval 250 : scene2d_on
    sprite_position 12,(xA%(Aster%) - 60),(yA%(Aster%) - 60) : SPRITE_SHOW 12 : sprite_animated_frames 12,8,14
    pause 400 : SPRITE_HIDE 12
    scene2d_off
END_SUB

rem ============================================================================
SUB Test_collision_vaisseau(Aster%)
  Collision_AABB(xA%(Aster%),yA%(Aster%),22,24,x%,y%,32,32) :' vérifier si le vaisseau n'est pas en collision avec l'astéroide
  if tir$="OK"
    vaisseau_detruit(Aster%)
    message "Votre vaisseau est détruit!"
    gosub fin
  end_if
END_SUB

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) : ' 5 droite
  if KEY_DOWN_CODE = 103 then move(6)                      : ' 6 Home
  if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7) : ' 7 haut
  if KEY_DOWN_CODE = 105 then move(8)                      : ' 8 PgUp
  if KEY_DOWN_CODE = 27 then gosub fin                      : ' Echap
  if KEY_DOWN_CODE = 32 AND Cpt_tirs% < Nb_tirs%
      Cpt_tirs% = Cpt_tirs% + 1
      tir%(Cpt_tirs%) = 1 :  tir_d(Cpt_tirs%) = 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(Cpt_tirs%) = x% + 11 : tir_y(Cpt_tirs%) = y% + 33
      if d = 3*pi/2 then tir_x(Cpt_tirs%) = x% + 22 : tir_y(Cpt_tirs%) = y% + 44
      if d = 7*pi/4 then tir_x(Cpt_tirs%) = x% + 33 : tir_y(Cpt_tirs%) = y% + 33
      if d = pi then tir_x(Cpt_tirs%) = x%      : tir_y(Cpt_tirs%) = y% + 22
      if d = 0 then tir_x(Cpt_tirs%) = x% + 44 : tir_y(Cpt_tirs%) = y% + 22
      if d = 3*pi/4 then tir_x(Cpt_tirs%) = x% + 11 : tir_y(Cpt_tirs%) = y% + 11
      if d = pi/2 then tir_x(Cpt_tirs%) = x% + 22 : tir_y(Cpt_tirs%) = y%
      if d = pi/4 then tir_x(Cpt_tirs%) = x% + 33 : tir_y(Cpt_tirs%) = y% + 11
      sprite_position 39+Cpt_tirs%,tir_x(Cpt_tirs%), tir_y(Cpt_tirs%) : SPRITE_SHOW 39+Cpt_tirs%
  end_if    : ' Fin du traitement d'un appuie sur espace
on_key_down touche
return

rem ============================================================================
boucle_principale:
timer_off 2: off_key_down
  cpt_t_asteroide = cpt_t_asteroide + 1
  if cpt_t_asteroide = 1 then asteroide(1)  : ' On gère notre asteroid pour ce tour
  if cpt_t_asteroide = 2 then asteroide(3): ' On gère notre asteroid pour ce tour
  if cpt_t_asteroide = 2 then asteroide(2)  :  cpt_t_asteroide = 0 : ' On gère notre asteroid pour ce tour
  FOR i% = 1 TO Nb_Asteroides%
      Test_collision_vaisseau(i%)
  next i%
  if Cpt_tirs% > 0
    for i% = 1 to Cpt_tirs%
      if tir%(i%) = 1 then tir(i%) :  ' Si un tir est actif, on gère son tour
        cpt_t_asteroide = cpt_t_asteroide + 1
        if cpt_t_asteroide = 1 then asteroide(1)  : ' On gère notre asteroid pour ce tour
        if cpt_t_asteroide = 2 then asteroide(3): ' On gère notre asteroid pour ce tour
        if cpt_t_asteroide = 2 then asteroide(2)  :  cpt_t_asteroide = 0 : ' On gère notre asteroid pour ce tour
    next i%
  end_if
timer_on 2 : on_key_down touche
return

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

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

rem ============================================================================
' libère un tir
SUB Annule_tir(N_t%)
 tir_d(N_t%) = tir_d(Cpt_tirs%) :  tir_x(N_t%) = tir_x(Cpt_tirs%) : tir_y(N_t%) = tir_y(Cpt_tirs%)
 SPRITE_POSITION 39 + N_t%,tir_x(N_t%), tir_y(N_t%) : SPRITE_HIDE 39 + Cpt_tirs%
 tir%(Cpt_tirs%) = 0 : Cpt_tirs% = Cpt_tirs% - 1
END_SUB

rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir(N_t%)
  tir_x(N_t%) = tir_x(N_t%) + cos(tir_d(N_t%))* vit_mis%  : tir_y(N_t%) = tir_y(N_t%) - sin(tir_d(N_t%)) * vit_mis%
  if (cos(tir_d(N_t%)) > 0 and tir_x(N_t%) > screen_x) or (cos(tir_d(N_t%)) < 0 and tir_x(N_t%) < 0 ) or (sin(tir_d(N_t%)) < 0 and tir_y(N_t%) > screen_y) or (sin(tir_d(N_t%)) > 0 and tir_y(N_t%) < 0 )
    Annule_tir(N_t%)
  end_if
  sprite_position 39+N_t%,tir_x(N_t%), tir_y(N_t%) : ' Mouvement de la balle du tir
  FOR n% = 1 TO Nb_Asteroides%
      Collision_AABB(tir_x(N_t%),tir_y(N_t%),16,16,xA%(n%),yA%(n%), 22,24)
      if tir$="OK" then tir_ok(N_t%,n%)
  NEXT n%
END_SUB

rem ============================================================================
SUB tir_ok(N_t%,N_a%)
    ' animation de la destruction de la cible
    Annule_tir(N_t%)
    off_key_down
    sprite_position 11,(xA%(N_a%) - 40),(yA%(N_a%) - 40) : SPRITE_SHOW 11 : sprite_animated_frames 11,8,14
    pause 200 : SPRITE_HIDE 29 + N_a% : SPRITE_HIDE 11
    on_key_down touche
    score%=score%+1 : affiscore()
    new_asteroide(N_a%):  SPRITE_SHOW 29 + N_a%
END_SUB

rem ============================================================================
SUB Collision_AABB(r1_x%,r1_y%,r1_width,r1_height,r2_x%,r2_y%, r2_width,r2_height)
  Tir$="OK"
  IF ((r2_x% >= (r1_x% + r1_width)) OR ((r2_x% + r2_width) <= r1_x%) OR (r2_y% >= (r1_y% + r1_height)) OR ((r2_y% + r2_height) <= r1_y%)) THEN Tir$=""
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
    caption str$(nsp%) + ":" + str$(SpriteV%)
    if nsp% <> SpriteV%
        sprite_hide SpriteV% : SpriteV% = nsp%  : sprite_position nsp%,x%,y% :sprite_show nsp%
    else
        sprite_position nsp%,x%,y%
    end_if
' 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

END_SUB
rem ============================================================================

fin:
  terminate
return


Si ça marche, on en reparle.
Revenir en haut Aller en bas
Jicehel

Jicehel


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyLun 22 Juin 2015 - 10:06

Avec plaisir Jean-Claude.

PS: Normalement, le positionnement du sprite avant le chargement doit marché car même s'il n'y a pas d'image dedans, le sprite existe.
Par contre, je l'ai supprimé car j'avais oublié qu'il ne sert à rien avant le chargement car le sprite chargé s'affiche quand même en 0,0.
Il faudrait donc mieux créer un view décalé de 200 en X durant le chargement.Après on pourrait supprimer le view puisque les sprite seront chargés une fois pour toute et cachés (Ca éviterait d'avoir à décaler tous les sprites de 200 après durant le jeu)
Je n'en suis pas sûr mais je crois que Jack avait écrit une commande pour que les sprites ne soient pas affiché lors de leur chargement.
Ce soir en rentrant si personne n'a retrouvé cette commande, je chercherais. Ma mémoire me joue peut être des tours aussi et je te confirmerais si ta version fonctionne bien ou non chez moi.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyLun 22 Juin 2015 - 11:21

Je ne vois pas de quelle commande tu parles. De toute façon on peut très bien les créer en dehors de l'écran.
D'ailleurs, j'ai adapté asterV1 au dernier éditeur et les SPRITE_POSITION sont avant le chargement de l'mage et ça marche.

Bref, ça n'a pas d'importance, j'ai finalisé les 2 versions et elle fonctionnent parfaitement bien.
Je vais ouvrir un nouveau poste pour avoir les réactions par rapport aux jeux.

Je dois dire que asterV2 est particulièrement sympa à jouer, ni trop facile, ni trop difficile.
J'ai corrigé l'affichage pour avoir le nombre 10 à la fin.

La Grande Question:
Pourquoi ça marche maintenant, j'avoue que je ne sais pas pourquoi.
Je me suis contenté de déplacer les création de sprite, dans le code, pour pouvoir suivre plus facilement la numérotation. Et après, bingo, ça marche impec  drunken  drunken  drunken  confused  confused  confused  Razz  Very Happy  sunny

J'ai pensé un moment que c'était la création en boucle qui n'allait pas, apparemment non.
Je te laisse le soins de comparer les 2 codes, il n'y a pratiquement pas de différence, mais tu trouveras peut-être pourquoi.

J'ai étudier ta façon de faire, pour avoir 3 astéroïdes dans le même tour, j'ai compris le système et j'ai vu aussi que tu contrôles l'état de chaque "balles" avec trir%(n%), ça c'est très malin, je n'y aurait pas pensé.
Donc le but est atteint: ça fonctionne et j'ais compris.

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 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyLun 22 Juin 2015 - 11:45

Super Smile Je suis content tu sembles avoir plein d'idées et d'envie de développement de jeux et moi je sais à peu près faire (même si je fais des erreurs et que je bloque aussi parfois sur des trucs et que je suis bien content que vous m'apportiez vos solutions ou votre aide dans la réfléxion, l'approche ou de nouvelles fonctions dans KGF Wink ). Par contre, j'ai envie de faire plein de trucs, mais je n'en ais ni le temps, ni même le courage en ce moment pour diverses raisons alors je suis bien content de pouvoir t'aider. D'une part, ça me motive et d'autre part, je sens que l'on va avoir pleins de nouveaux jeux sympas à tester pour se défouler et s'amuser.
Je compare ce soir, voir si je trouve pourquoi ça fonctionne (si cela peut s'expliquer) ou s'il y a un bug de fiabilité dans Pangine2D qui peut se produire dans certains cas lors du chargement des sprites (mais pas évident à reproduire à priori).

Qaund tu décales le sprites, il ne s'affiche pas lors du chargement de l'image ? Je retesterais ça ce soir. De toute façon sinon je ferais le système du view pour qu'ils n'apparaissent plus lors du chargement
(je ne sais pas, mais ça doit être possible aussi autrement)

Tu peux aussi faire une grande image et jouer avec le view pour faire un scrolling vertical en début de jeu
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 EmptyLun 22 Juin 2015 - 12:16

Pour le moment, j'ai deux choses en tête ( ça en fait une de trop Very Happy )

1) Faire un générique avec le SCROLLING
2) Mettre un peut de son avec SOUND

Une bonne occasion de tester ces 2 commandes avec la version 3 de l'éditeur.

Je ne manquerai pas d'appeler au secours, si besoin, mais de grâce, laisse moi le temps Very Happy Razz

En tous cas, ce jeux n'existerait pas sans ta contribution.

A+
Revenir en haut Aller en bas
Contenu sponsorisé





PANGINE2D - Page 4 Empty
MessageSujet: Re: PANGINE2D   PANGINE2D - Page 4 Empty

Revenir en haut Aller en bas
 
PANGINE2D
Revenir en haut 
Page 4 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: