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
» Logiciel de planétarium.
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Choix de Police dans Choix et messages d'erreur parlants  Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Choix de Police dans Choix et messages d'erreur parlants  Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Choix de Police dans Choix et messages d'erreur parlants  Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Choix de Police dans Choix et messages d'erreur parlants  Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Choix de Police dans Choix et messages d'erreur parlants  Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Choix de Police dans Choix et messages d'erreur parlants  Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Choix de Police dans Choix et messages d'erreur parlants  Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Choix de Police dans Choix et messages d'erreur parlants  Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

 

 Choix de Police dans Choix et messages d'erreur parlants

Aller en bas 
5 participants
AuteurMessage
Jicehel

Jicehel


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 18:52

Le changement de police par moment c'est inutile dans la barre de menu (on ne la change pas toutes les 5mn, ce serait moins pénible dans le menu choix)

Quand on prend des codes et que l'on les fusionne, on peut faire des erreurs (si, si , on peut le faire)

Par contre, pour trouver, avec les messages du style: Access violation at address 005022DA in module 'PANORAMIC.exe'. Read of address FFFFFFFF.
On n'est pas trop aidé pour savoir d'où ça vient. Je sais que cela a déjà été dit, mais si Jack voyait un moyen de mettre la ligne qui provoque l'erreur ou n'importe quoi qui soit plus parlant, ça serait vraiment bien.

Si vous voulez faire une test, (où si vous voyez l'erreur d'ailleurs), voici le code en cours d'élaboration

Code:
REM ************************************************************
REM *                                                          *
REM *      Panoram Invaders  Version: 4.0 - 18/08/2012      *
REM *                                                          *
REM ************************************************************
REM *  Touches:                                                *
REM *        - "Les fléches" gauche ou droite: déplacement    *
REM *        - "Esc" pour quitter                              *
REM *        - "CTRL" ou clic gauche pour tirer                *
REM *                                                          *
REM ************************************************************

label labels : gosub labels

  gosub constantes
  gosub variables
  gosub donnees
  gosub initialisations
  gosub form0
  gosub menu
  gosub GUI
end

labels:
  label constantes, variables, donnees
  label form0, menu, GUI, initialisations
  label sortir,start, tick, restart
  label config, close_config, defaut, aide, close_aide
  label apropos, close_apropos, change_config, stopit
  label soucoupe,crash, score, inv
return

constantes:
  dim version$ : version$ = "V04.00"
  dim date_cre$ : date_cre$ = "18 Août 2012"
  dim speed% : speed% = 2  : ' milli-secondes entre chaque mouvement
  dim Nb_b_ligne : Nb_b_ligne = 7  : ' Nombre de lignes de briques
  dim hauteur_b, largeur_b : largeur_b=1.55 :  hauteur_b=0.75
  dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies
  dim M1% : M1% = 0 - 1
return

variables:
  dim no%, no1%, no2% : ' Numméro d'objets temporaires
  dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0
  dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés
  dim no_config_v%, no_config_speed%              : ' Timer, numéro des fenêtres, ...
  dim no_stop%, no_play%, no_start%
  dim xpad          : ' Position de la souris
  dim point%, live% : ' Score et nombre de vaisseaux restants
  dim afs$, aflive% : ' Affichage du score et des vies
  dim Pause%        : ' Bascule pour mettre le jeu en pause ou reprendre
  dim Niveau%      : ' Niveau en cours
  dim Attente%      : ' Pour lisser le mouvement attendre si on ne joue pas de son
  dim a%,touche%,vsou%,hsou%,soudec%,, boucle%, boucle2%, boucle3%, boucle4%, dir%, pas%
  dim tirh%,bb%,aleat%,i%,,afscore%,invader% ,temp%, temp2%
  dim point$(10),tirdec%(5),tirv%(5),postir%(5), env%(40), vinv%(40),hinv%(40), nl%
return

donnees:
  Data "ga","me","ov", "er", 150,"mi2", 151, "mi1", 152,"mi1", 153, "mi2", 200, "exp"
  Data 300, "sou", 301, "exps"
return

form0:
  ' Paramètrage de la fenêtre principale du jeu
  left 0,px% : top 0,py%      : ' Position initale de la fenêtre 0
  width 0, w% : height 0,450
  caption 0,"Panoram Invaders"
  SCENE2D 1 :                    ' Initialise la scene 2D
  top 1,0: left 1,0: width 1,600: height 1,600 :file_load 1,"nuit.bmp":full_space 1
'  on_key_down 0,key
'  on_close 0,fin
return

menu:
  return

GUI:

  sound 500:file_load 500,"shot.wav": sound 501:file_load 501,"02.wav":sound 502:file_load 502,"walk3.wav": sound 503:file_load 503,"walk4.wav":sound 504:file_load 504,"explode.wav"
  sound 700:file_load 700,"ufohit.wav": sound 702:file_load 702,"ufo.wav"
  a%=0
  for boucle%=0 to 3
    read afs$
    if boucle%=2 then a%=20
    sprite 900+boucle%: SPRITE_hide 900+boucle%:SPRITE_FILE_LOAD 900+boucle%,afs$+".bmp":  SPRITE_POSITION 900+boucle%, 200+boucle%*37+a%,250
  next boucle%
  for boucle%=0 to 6
    read a%:read afs$
    sprite a%: SPRITE_hide a%:SPRITE_FILE_LOAD a%,afs$+".bmp"
  next boucle%
  sprite 302: sprite_hide 302:SPRITE_FILE_LOAD 302,"titre1.bmp": SPRITE_POSITION 302, 50 , 20: sprite_show 302
  sprite 303: sprite_hide 303:SPRITE_FILE_LOAD 303,"titre2.bmp": SPRITE_POSITION 303, 225, 20: sprite_show 303
  for boucle2%=0 to 3: temp%=11*boucle2%: for boucle%=(1+temp%) to (7+temp%): sprite boucle%+4 : sprite_hide boucle%+4 : SPRITE_FILE_LOAD boucle%+4,str$(boucle2%+1)+"1.bmp" : next boucle%: next boucle2%
  for boucle2%=0 to 3: temp%=11*boucle2%:for boucle%=105+temp% to 111+temp%: sprite boucle%  :  sprite_hide boucle%  : SPRITE_FILE_LOAD boucle%,str$(boucle2%+1)+"2.bmp"  :  next boucle%: next boucle2%
  for boucle%=0 to 4: sprite 500+boucle% : SPRITE_FILE_LOAD 500+boucle%,"0.bmp": SPRITE_POSITION 500+boucle%, 250-13*boucle%,100: NEXT boucle%
  sprite 505: SPRITE_FILE_LOAD 505,"score.bmp":SPRITE_POSITION 505, 237-120,95 : sprite 506: SPRITE_FILE_LOAD 506,"live.bmp" :SPRITE_POSITION 506, 300,95 :sprite 507: SPRITE_FILE_LOAD 507,"0.bmp" : SPRITE_POSITION 507, 350,100
  for boucle%=0 to 9: point$(boucle%)=str$(boucle%)+".bmp":next boucle%
  sprite 3: SPRITE_hide 3: SPRITE_FILE_LOAD 3,"mis.bmp" : sprite 4: SPRITE_FILE_LOAD 4,"vai.bmp"
  TIMER 61: TIMER_OFF 61 : TIMER_INTERVAL 61,30000: ON_TIMER 61,soucoupe
  aflive%=10+live% : afs$=str$(aflive%) : SPRITE_FILE_LOAD 507,point$(val(mid$(afs$,2,1))):SPRITE_POSITION 507, 350,100
  no% = 62 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu
  timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%
  return

initialisations:
  w%= 600 : h% = 600  : ' Largeur et Hauteur de la fenêtre 0
  px% = 0 : py% = 0  : ' Position en x et en y de la fenêtre 0
  speed% = 100

return

sortir:
  timer_off no_timer%
  terminate

defaut:
  gosub change_config
return


stopit:
  timer_off no_timer%
  inactive no_stop%
  active no_start%
return

start:
  active no_stop%
  inactive no_start%
  bb%=0: live%=5:hsou%=700 :vsou%=170: a%=280: invader%=28 : point%=0 : pas% = 1
  for boucle4%=1 to 5:tirdec%(boucle4%)=0: next boucle4%
  sprite_hide 150: sprite_hide 151: sprite_hide 3 :  sprite_hide 152 : sprite_hide 153: sprite_hide 900: sprite_hide 901: sprite_hide 902: sprite_hide 903
  Pause% = 0
  niveau%= 0

restart:
  timer_off no_timer%
  niveau% = niveau% + 1
  caption 0,"Panoram Invaders - Niveau actuel :" + str$(Niveau%)
  SPRITE_POSITION 4,a%,500 : dir%=1
  for boucle2%=0 to 3:temp%=11*boucle2%: for boucle%=1 to 7 :  env%(boucle%+temp%)=1:hinv%(boucle%+temp%)=170+30*(boucle%) :vinv%(boucle%+temp%)=200+25*boucle2%:sprite_show boucle%+temp%+4: next boucle%: next boucle2%
  timer_on no_timer%
return

inv:
 temp%=dir%*pas%: temp2%=(boucle%-1)*11
 hinv%(1+temp2%)=hinv%(1+temp2%)+temp%:hinv%(2+temp2%)=hinv%(2+temp2%)+temp%:hinv%(3+temp2%)=hinv%(3+temp2%)+temp%:hinv%(4+temp2%)=hinv%(4+temp2%)+temp%
 hinv%(5+temp2%)=hinv%(5+temp2%)+temp%:hinv%(6+temp2%)=hinv%(6+temp2%)+temp%:hinv%(7+temp2%)=hinv%(7+temp2%)+temp%
 for boucle2%= (1+temp2%) to (7+temp2%)
 if env%(boucle2%)<>0
  if nl%=0 and hinv%(boucle2%)=550 then dir%=-1 : nl%=1
  if nl%=0 and hinv%(boucle2%)=0 then dir%=1: nl%=1
  if bb%=0 then SPRITE_POSITION boucle2%+4, hinv%(boucle2%),vinv%(boucle2%):sprite_hide boucle2%+104:SPRITE_SHOW boucle2%+4
  if bb%=1 then SPRITE_POSITION boucle2%+104, hinv%(boucle2%),vinv%(boucle2%): sprite_hide boucle2%+4:SPRITE_SHOW boucle2%+104
  if postir%(5) > (hinv%(boucle2%)-12) then if postir%(5) < (hinv%(boucle2%)+3) then if tirv%(5)>vinv%(boucle2%) then if tirv%(5)<(vinv%(boucle2%)+16) then point%=point%+50-10*boucle%:  SPRITE_hide boucle2%+4+100*bb%:  :play 501 :SPRITE_POSITION 200, hinv%(boucle2%),vinv%(boucle2%) : SPRITE_SHOW 200: wait 25: env%(boucle2%)=0 : SPRITE_HIDE 200 : tirdec%(5)=0 : SPRITE_HIDE 3:tirv%(5)=0: point%=point%+30 :invader%=invader%-1 :gosub score
  if aleat%=boucle2% and tirdec%(boucle%)=0 then tirv%(boucle%)=vinv%(boucle2%) : postir%(boucle%)=hinv%(boucle2%) : tirdec%(boucle%)=1:SPRITE_POSITION 149+boucle%,postir%(boucle%),tirv%(boucle%):Sprite_Show 149+boucle%
 end_if
 next boucle2%
return

soucoupe:
  if soudec%<>1 then soudec%=1
  hsou%=hsou%-2
  if hsou%=550 or hsou%=250 then play 700
  if soudec%=1 then SPRITE_POSITION 300,hsou%,vsou%:  sprite_show 300 :if hsou%=-100 then SPRITE_hide 300 : soudec%=0 :hsou%=700
return

score:
  afscore%=1000000+point%
  afs$=str$(afscore%)
  for boucle4% = 0 to 4: SPRITE_FILE_LOAD 500+boucle4%,point$(val(mid$(afs$,7-boucle4%,1))): SPRITE_POSITION 500+boucle4%, 250-13*boucle4%,100:next boucle4%
return

crash:
  play 504: live%=live%-1: timer_off_all
  for boucle4%=1 to 3: SPRITE_HIDE 4: wait 100: SPRITE_SHOW 4: wait 100: next boucle4%
  aflive%=10+live% : afs$=str$(aflive%) : SPRITE_FILE_LOAD 507,point$(val(mid$(afs$,2,1))):SPRITE_POSITION 507, 350,100
  for boucle4%=1 to 4:  if tirdec%(boucle4%)=1 then SPRITE_Hide 150+boucle4% : tirdec%(boucle4%)=0 : postir%(boucle4%)=0 : tirv%(boucle4%)=0: next boucle4%
  if live%=0 then goto fin
  timer_on 61
return

tick:
timer_off no_timer%
aleat%=int(rnd(40)+1)
nl%=0
for boucle%=1 to 4
  if tirdec%(boucle%)=1 then tirv%(boucle%)=tirv%(boucle%)+5: SPRITE_POSITION 149+boucle%,postir%(boucle%),tirv%(boucle%): if tirv%(boucle%)=530 then SPRITE_Hide 149+boucle% : tirdec%(boucle%)=0
  if postir%(boucle%) >=a%-13 then if postir%(boucle%) <=(a%+16) then if tirv%(boucle%)>=477 then if tirv%(boucle%)< 523 then gosub crash
  gosub inv
next boucle%
if nl%=1
  for boucle%=0 to 3
    temp%=(boucle%)*11: vinv%(1+temp%)=vinv%(1+temp%)+25: vinv%(2+temp%)=vinv%(2+temp%)+25: vinv%(3+temp%)=vinv%(3+temp%)+25
    vinv%(4+temp%)=vinv%(4+temp%)+25: vinv%(5+temp%)=vinv%(5+temp%)+25: vinv%(6+temp%)=vinv%(6+temp%)+25: vinv%(7+temp%)=vinv%(7+temp%)+25
  next boucle%
end_if
if soudec%=1 then gosub soucoupe
if tirdec%(5)=1
  tirv%(5)=tirv%(5)-8 : SPRITE_POSITION 3,postir%(5),tirv%(5)
  if soudec%=1 then if tirv%(5)>vsou% then if tirv%(5)<vsou%+24 then if (postir%(5) > (hsou%-15) and postir%(5) < (hsou%+16)) then SPRITE_Hide 300:SPRITE_POSITION 301, hsou%,vsou%: sprite_show 301:play 702 : wait 200: soudec%=0 : SPRITE_hide 301: tirdec%(5)=0  : SPRITE_HIDE 3  : tirv%(5)=0  : hsou%=700 : soudec%=0 : point%=point%+300
  if tirv%(5) <=172 then SPRITE_HIDE 3 : tirdec%(5)=0
end_if

if bb%=0 then play 503: bb%=1 : else : play 502: bb%=0

touche%=scancode
if touche%=37 then i%=-4
if touche%=39 then i%=4
if touche%=27 then goto fin
if touche%=163 or touche%=162 or touche%=1 then if tirdec%(5)=0 then tirdec%(5)=1  : tirv%(5)=500 :play 500: SPRITE_SHOW 3:postir%(5)=a%
a%=a%+i%:i%=0 : SPRITE_POSITION 4,a%,500
  timer_on no_timer%
return


config:
  inactive 0
  show no_config%
return

close_config:
  gosub change_config
  active 0
return

change_config:
return

aide:
  inactive 0
  show no_aide%
return

close_aide:
  active 0
return

apropos:
  inactive 0
  show no_apropos%
return

close_apropos:
  active 0
return

fin:
  gosub stopit
  for boucle4% = 1 to 4
    sprite_show 900: sprite_show 901: sprite_show 902: sprite_show 903: wait 200
    if boucle4% < 4 then sprite_hide 900: sprite_hide 901: sprite_hide 902 :sprite_hide 903: wait 200
  next boucle4%
  timer_off_all : off_KEY_DOWN 0 : Off_CLICK 1 : sprite_hide 3: tirdec%(5)=0: sprite_hide 150 :tirdec%(1)=0
  sprite_hide 151 :tirdec%(2)=0:  sprite_hide 152 :tirdec%(3)=0 :sprite_hide 153 :tirdec%(4)=0
  if message_confirmation_yes_no("Voulez-vous rejouer ?")=1 then  sprite_hide 900: sprite_hide 901 : sprite_hide 902: sprite_hide 903:  goto start :else: terminate
end
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:06

salut Jicehel

c'est tes variables ; ligne 57 et 58 il y a 2 fois la virgule

dim a%,touche%,vsou%,hsou%,soudec%,, boucle%, boucle2%, boucle3%, boucle4%, dir%, pas%
dim tirh%,bb%,aleat%,i%,,afscore%,invader% ,temp%, temp2%

erreur que je commet assez souvent d'ailleurs !!
Very Happy
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:12

Minibug tu m'as doublé!
D'ailleurs, j'avais déjà soulevé ce problème.

Pour trouver l’erreur, j’ai mis des STOP après chaque appel à des sous-programmes, et c’est ainsi qu’on peut localiser l’endroit de l’erreur.


Dernière édition par papydall le Sam 18 Aoû 2012 - 20:35, édité 2 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:15

Trouvé ! Tu as, à 2 reprises, 2 virgules qui se suivent dans une commande DIM ! J'ai corrigé, tout en laissant les lignes originales en commentaire avec la marque Klaus - tu verras ! Ca, c'est un vrai BUG du compilateur !
Code:
REM ************************************************************
REM *                                                          *
REM *      Panoram Invaders  Version: 4.0 - 18/08/2012      *
REM *                                                          *
REM ************************************************************
REM *  Touches:                                                *
REM *        - "Les fléches" gauche ou droite: déplacement    *
REM *        - "Esc" pour quitter                              *
REM *        - "CTRL" ou clic gauche pour tirer                *
REM *                                                          *
REM ************************************************************

label labels : gosub labels

  gosub constantes
  gosub variables
  gosub donnees
  gosub initialisations
  gosub form0
  gosub menu
  gosub GUI
end

labels:
  label constantes, variables, donnees
  label form0, menu, GUI, initialisations
  label sortir,start, tick, restart
  label config, close_config, defaut, aide, close_aide
  label apropos, close_apropos, change_config, stopit
  label soucoupe,crash, score, inv
return

constantes:
  dim version$ : version$ = "V04.00"
  dim date_cre$ : date_cre$ = "18 Août 2012"
  dim speed% : speed% = 2  : ' milli-secondes entre chaque mouvement
  dim Nb_b_ligne : Nb_b_ligne = 7  : ' Nombre de lignes de briques
  dim hauteur_b, largeur_b : largeur_b=1.55 :  hauteur_b=0.75
  dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies
  dim M1% : M1% = 0 - 1
return

variables:
  dim no%, no1%, no2% : ' Numméro d'objets temporaires
  dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0
  dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés
  dim no_config_v%, no_config_speed%              : ' Timer, numéro des fenêtres, ...
  dim no_stop%, no_play%, no_start%
  dim xpad          : ' Position de la souris
  dim point%, live% : ' Score et nombre de vaisseaux restants
  dim afs$, aflive% : ' Affichage du score et des vies
  dim Pause%        : ' Bascule pour mettre le jeu en pause ou reprendre
  dim Niveau%      : ' Niveau en cours
  dim Attente%      : ' Pour lisser le mouvement attendre si on ne joue pas de son
  dim a%,touche%,vsou%,hsou%,soudec%, boucle%, boucle2%, boucle3%, boucle4%, dir%, pas%
' Klaus  dim a%,touche%,vsou%,hsou%,soudec%,, boucle%, boucle2%, boucle3%, boucle4%, dir%, pas%
  dim tirh%,bb%,aleat%,i%,afscore%,invader% ,temp%, temp2%
' Klaus dim tirh%,bb%,aleat%,i%,,afscore%,invader% ,temp%, temp2%
  dim point$(10),tirdec%(5),tirv%(5),postir%(5), env%(40), vinv%(40),hinv%(40), nl%
return

donnees:
  Data "ga","me","ov", "er", 150,"mi2", 151, "mi1", 152,"mi1", 153, "mi2", 200, "exp"
  Data 300, "sou", 301, "exps"
return

form0:
  ' Paramètrage de la fenêtre principale du jeu
  left 0,px% : top 0,py%      : ' Position initale de la fenêtre 0
  width 0, w% : height 0,450
  caption 0,"Panoram Invaders"
  SCENE2D 1 :                    ' Initialise la scene 2D
  top 1,0: left 1,0: width 1,600: height 1,600 :file_load 1,"nuit.bmp":full_space 1
'  on_key_down 0,key
'  on_close 0,fin
return

menu:
  return

GUI:

  sound 500:file_load 500,"shot.wav": sound 501:file_load 501,"02.wav":sound 502:file_load 502,"walk3.wav": sound 503:file_load 503,"walk4.wav":sound 504:file_load 504,"explode.wav"
  sound 700:file_load 700,"ufohit.wav": sound 702:file_load 702,"ufo.wav"
  a%=0
  for boucle%=0 to 3
    read afs$
    if boucle%=2 then a%=20
    sprite 900+boucle%: SPRITE_hide 900+boucle%:SPRITE_FILE_LOAD 900+boucle%,afs$+".bmp":  SPRITE_POSITION 900+boucle%, 200+boucle%*37+a%,250
  next boucle%
  for boucle%=0 to 6
    read a%:read afs$
    sprite a%: SPRITE_hide a%:SPRITE_FILE_LOAD a%,afs$+".bmp"
  next boucle%
  sprite 302: sprite_hide 302:SPRITE_FILE_LOAD 302,"titre1.bmp": SPRITE_POSITION 302, 50 , 20: sprite_show 302
  sprite 303: sprite_hide 303:SPRITE_FILE_LOAD 303,"titre2.bmp": SPRITE_POSITION 303, 225, 20: sprite_show 303
  for boucle2%=0 to 3: temp%=11*boucle2%: for boucle%=(1+temp%) to (7+temp%): sprite boucle%+4 : sprite_hide boucle%+4 : SPRITE_FILE_LOAD boucle%+4,str$(boucle2%+1)+"1.bmp" : next boucle%: next boucle2%
  for boucle2%=0 to 3: temp%=11*boucle2%:for boucle%=105+temp% to 111+temp%: sprite boucle%  :  sprite_hide boucle%  : SPRITE_FILE_LOAD boucle%,str$(boucle2%+1)+"2.bmp"  :  next boucle%: next boucle2%
  for boucle%=0 to 4: sprite 500+boucle% : SPRITE_FILE_LOAD 500+boucle%,"0.bmp": SPRITE_POSITION 500+boucle%, 250-13*boucle%,100: NEXT boucle%
  sprite 505: SPRITE_FILE_LOAD 505,"score.bmp":SPRITE_POSITION 505, 237-120,95 : sprite 506: SPRITE_FILE_LOAD 506,"live.bmp" :SPRITE_POSITION 506, 300,95 :sprite 507: SPRITE_FILE_LOAD 507,"0.bmp" : SPRITE_POSITION 507, 350,100
  for boucle%=0 to 9: point$(boucle%)=str$(boucle%)+".bmp":next boucle%
  sprite 3: SPRITE_hide 3: SPRITE_FILE_LOAD 3,"mis.bmp" : sprite 4: SPRITE_FILE_LOAD 4,"vai.bmp"
  TIMER 61: TIMER_OFF 61 : TIMER_INTERVAL 61,30000: ON_TIMER 61,soucoupe
  aflive%=10+live% : afs$=str$(aflive%) : SPRITE_FILE_LOAD 507,point$(val(mid$(afs$,2,1))):SPRITE_POSITION 507, 350,100
  no% = 62 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu
  timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%
  return

initialisations:
  w%= 600 : h% = 600  : ' Largeur et Hauteur de la fenêtre 0
  px% = 0 : py% = 0  : ' Position en x et en y de la fenêtre 0
  speed% = 100

return

sortir:
  timer_off no_timer%
  terminate

defaut:
  gosub change_config
return


stopit:
  timer_off no_timer%
  inactive no_stop%
  active no_start%
return

start:
  active no_stop%
  inactive no_start%
  bb%=0: live%=5:hsou%=700 :vsou%=170: a%=280: invader%=28 : point%=0 : pas% = 1
  for boucle4%=1 to 5:tirdec%(boucle4%)=0: next boucle4%
  sprite_hide 150: sprite_hide 151: sprite_hide 3 :  sprite_hide 152 : sprite_hide 153: sprite_hide 900: sprite_hide 901: sprite_hide 902: sprite_hide 903
  Pause% = 0
  niveau%= 0

restart:
  timer_off no_timer%
  niveau% = niveau% + 1
  caption 0,"Panoram Invaders - Niveau actuel :" + str$(Niveau%)
  SPRITE_POSITION 4,a%,500 : dir%=1
  for boucle2%=0 to 3:temp%=11*boucle2%: for boucle%=1 to 7 :  env%(boucle%+temp%)=1:hinv%(boucle%+temp%)=170+30*(boucle%) :vinv%(boucle%+temp%)=200+25*boucle2%:sprite_show boucle%+temp%+4: next boucle%: next boucle2%
  timer_on no_timer%
return

inv:
 temp%=dir%*pas%: temp2%=(boucle%-1)*11
 hinv%(1+temp2%)=hinv%(1+temp2%)+temp%:hinv%(2+temp2%)=hinv%(2+temp2%)+temp%:hinv%(3+temp2%)=hinv%(3+temp2%)+temp%:hinv%(4+temp2%)=hinv%(4+temp2%)+temp%
 hinv%(5+temp2%)=hinv%(5+temp2%)+temp%:hinv%(6+temp2%)=hinv%(6+temp2%)+temp%:hinv%(7+temp2%)=hinv%(7+temp2%)+temp%
 for boucle2%= (1+temp2%) to (7+temp2%)
 if env%(boucle2%)<>0
  if nl%=0 and hinv%(boucle2%)=550 then dir%=-1 : nl%=1
  if nl%=0 and hinv%(boucle2%)=0 then dir%=1: nl%=1
  if bb%=0 then SPRITE_POSITION boucle2%+4, hinv%(boucle2%),vinv%(boucle2%):sprite_hide boucle2%+104:SPRITE_SHOW boucle2%+4
  if bb%=1 then SPRITE_POSITION boucle2%+104, hinv%(boucle2%),vinv%(boucle2%): sprite_hide boucle2%+4:SPRITE_SHOW boucle2%+104
  if postir%(5) > (hinv%(boucle2%)-12) then if postir%(5) < (hinv%(boucle2%)+3) then if tirv%(5)>vinv%(boucle2%) then if tirv%(5)<(vinv%(boucle2%)+16) then point%=point%+50-10*boucle%:  SPRITE_hide boucle2%+4+100*bb%:  :play 501 :SPRITE_POSITION 200, hinv%(boucle2%),vinv%(boucle2%) : SPRITE_SHOW 200: wait 25: env%(boucle2%)=0 : SPRITE_HIDE 200 : tirdec%(5)=0 : SPRITE_HIDE 3:tirv%(5)=0: point%=point%+30 :invader%=invader%-1 :gosub score
  if aleat%=boucle2% and tirdec%(boucle%)=0 then tirv%(boucle%)=vinv%(boucle2%) : postir%(boucle%)=hinv%(boucle2%) : tirdec%(boucle%)=1:SPRITE_POSITION 149+boucle%,postir%(boucle%),tirv%(boucle%):Sprite_Show 149+boucle%
 end_if
 next boucle2%
return

soucoupe:
  if soudec%<>1 then soudec%=1
  hsou%=hsou%-2
  if hsou%=550 or hsou%=250 then play 700
  if soudec%=1 then SPRITE_POSITION 300,hsou%,vsou%:  sprite_show 300 :if hsou%=-100 then SPRITE_hide 300 : soudec%=0 :hsou%=700
return

score:
  afscore%=1000000+point%
  afs$=str$(afscore%)
  for boucle4% = 0 to 4: SPRITE_FILE_LOAD 500+boucle4%,point$(val(mid$(afs$,7-boucle4%,1))): SPRITE_POSITION 500+boucle4%, 250-13*boucle4%,100:next boucle4%
return

crash:
  play 504: live%=live%-1: timer_off_all
  for boucle4%=1 to 3: SPRITE_HIDE 4: wait 100: SPRITE_SHOW 4: wait 100: next boucle4%
  aflive%=10+live% : afs$=str$(aflive%) : SPRITE_FILE_LOAD 507,point$(val(mid$(afs$,2,1))):SPRITE_POSITION 507, 350,100
  for boucle4%=1 to 4:  if tirdec%(boucle4%)=1 then SPRITE_Hide 150+boucle4% : tirdec%(boucle4%)=0 : postir%(boucle4%)=0 : tirv%(boucle4%)=0: next boucle4%
  if live%=0 then goto fin
  timer_on 61
return

tick:
timer_off no_timer%
aleat%=int(rnd(40)+1)
nl%=0
for boucle%=1 to 4
  if tirdec%(boucle%)=1 then tirv%(boucle%)=tirv%(boucle%)+5: SPRITE_POSITION 149+boucle%,postir%(boucle%),tirv%(boucle%): if tirv%(boucle%)=530 then SPRITE_Hide 149+boucle% : tirdec%(boucle%)=0
  if postir%(boucle%) >=a%-13 then if postir%(boucle%) <=(a%+16) then if tirv%(boucle%)>=477 then if tirv%(boucle%)< 523 then gosub crash
  gosub inv
next boucle%
if nl%=1
  for boucle%=0 to 3
    temp%=(boucle%)*11: vinv%(1+temp%)=vinv%(1+temp%)+25: vinv%(2+temp%)=vinv%(2+temp%)+25: vinv%(3+temp%)=vinv%(3+temp%)+25
    vinv%(4+temp%)=vinv%(4+temp%)+25: vinv%(5+temp%)=vinv%(5+temp%)+25: vinv%(6+temp%)=vinv%(6+temp%)+25: vinv%(7+temp%)=vinv%(7+temp%)+25
  next boucle%
end_if
if soudec%=1 then gosub soucoupe
if tirdec%(5)=1
  tirv%(5)=tirv%(5)-8 : SPRITE_POSITION 3,postir%(5),tirv%(5)
  if soudec%=1 then if tirv%(5)>vsou% then if tirv%(5)<vsou%+24 then if (postir%(5) > (hsou%-15) and postir%(5) < (hsou%+16)) then SPRITE_Hide 300:SPRITE_POSITION 301, hsou%,vsou%: sprite_show 301:play 702 : wait 200: soudec%=0 : SPRITE_hide 301: tirdec%(5)=0  : SPRITE_HIDE 3  : tirv%(5)=0  : hsou%=700 : soudec%=0 : point%=point%+300
  if tirv%(5) <=172 then SPRITE_HIDE 3 : tirdec%(5)=0
end_if

if bb%=0 then play 503: bb%=1 : else : play 502: bb%=0

touche%=scancode
if touche%=37 then i%=-4
if touche%=39 then i%=4
if touche%=27 then goto fin
if touche%=163 or touche%=162 or touche%=1 then if tirdec%(5)=0 then tirdec%(5)=1  : tirv%(5)=500 :play 500: SPRITE_SHOW 3:postir%(5)=a%
a%=a%+i%:i%=0 : SPRITE_POSITION 4,a%,500
  timer_on no_timer%
return


config:
  inactive 0
  show no_config%
return

close_config:
  gosub change_config
  active 0
return

change_config:
return

aide:
  inactive 0
  show no_aide%
return

close_aide:
  active 0
return

apropos:
  inactive 0
  show no_apropos%
return

close_apropos:
  active 0
return

fin:
  gosub stopit
  for boucle4% = 1 to 4
    sprite_show 900: sprite_show 901: sprite_show 902: sprite_show 903: wait 200
    if boucle4% < 4 then sprite_hide 900: sprite_hide 901: sprite_hide 902 :sprite_hide 903: wait 200
  next boucle4%
  timer_off_all : off_KEY_DOWN 0 : Off_CLICK 1 : sprite_hide 3: tirdec%(5)=0: sprite_hide 150 :tirdec%(1)=0
  sprite_hide 151 :tirdec%(2)=0:  sprite_hide 152 :tirdec%(3)=0 :sprite_hide 153 :tirdec%(4)=0
  if message_confirmation_yes_no("Voulez-vous rejouer ?")=1 then  sprite_hide 900: sprite_hide 901 : sprite_hide 902: sprite_hide 903:  goto start :else: terminate
end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:16

Ah, je vois qu'on est nombreux à connaître ce piège ! Tant mieux !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:17

C'est clair. Merci les mecs.
Par contre, c'est vrai qu'un message erreur de syntaxe à la ligne 55 serait beaucoup plus parlant...
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:17

@papydall

Et oui c'est normal j'ai plus de réflexes !!


pour ma part, j'utilise la fonction message et je la déplace de quelques lignes au fur et a mesure du test
et lorsque le message n'apparait plus et que l'erreur s'affiche je n'ai plus qu'a débugger sur quelques lignes...

bounce bounce bounce bounce
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:30

Very Happy Laughing Smile !!! VIVE LA JEUNESSE !!! Very Happy Laughing Smile
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:33

Je fais presque pareil.

Je commence à placer des messages de loin en loin dans le source, dans la zone suspecte. Je laisse planter. J'insère de nouveaux messages entre le dernier message apparu et le premier non venu, et ainsi de suite. Succès garanti.

SAUF

losqu'il y a des routines ON_TIMER ! Ca fout tout en l'aire. Dans ce cas, je crée une nouvelle form dans laquelle je place un mémo avec bar_vertical. Et à la place des messages, je fais ITEM_ADD dans ce mémo, et j'ai ainsi une bande log précise.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:37

Ca devrait être en natif dans l'éditeur tant que l'on est en mode execute dans l'éditeur, je trouve. On n'est toujours tous obligé d'ajouter nos propres debugger (comme Cosmos entre autre et son système de debuggage) alors que ça serait si pratique nativement dans l'éditeur
Revenir en haut Aller en bas
papydall

papydall


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:50

Une petite remarque qui n’a aucune importance. C’est juste pour la signaler, c’est tout.

J’ai remarqué que dans une ligne de remarque indiquée par l’apostrophe, si cette ligne contient le caractère accolade fermante ( } ), le texte qui vient après n’est plus coloré
Code:

' Ceci est une remarque} le texte après } n'est plus coloré } print "hello"
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptySam 18 Aoû 2012 - 19:56

Comme Panoramic était à la base destiné à des programmeurs débutants, je pense que Jack devrait faire un effort la dessus. Un message de ce type ou un problème de mise en forme de ce type peut être déroutant pour un nouvel arrivant (même pour un ancien d'ailleurs ...)
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: re   Choix de Police dans Choix et messages d'erreur parlants  EmptyDim 19 Aoû 2012 - 0:32

Oui, mais...

que deviendrait nos longues soirées de cluedo sur le forum ?....

lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptyDim 19 Aoû 2012 - 0:40

Il nous resterait des trucs à résoudre, je te rassure Wink
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  EmptyDim 19 Aoû 2012 - 10:59

tout a fait d'accord avec toi Jicehel

Un petit debugger intégré a PANO serait très pratique.
Mais bon, je pense que jack a deja beaucoup de travail...

de plus, comme tu le souligne, plusieurs outils sont disponible !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Choix de Police dans Choix et messages d'erreur parlants  Empty
MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Choix de Police dans Choix et messages d'erreur parlants  Empty

Revenir en haut Aller en bas
 
Choix de Police dans Choix et messages d'erreur parlants
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Choix de la police dans l'IDE Panoramic
» Choix d'une police de caractères
» Source : choix de la police et de la taille des caractères
» couleur pour un choix de mots seulement dans un objet
» Taille de la police de caractères dans PANORAMIC EDITOR

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: