FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Version instantanée V 0.9.28i8 possédant l'objet SYNEDIT
par Laurent (Minibug) Aujourd'hui à 14:42

» KGF_dll - nouvelles versions
par Yannick Aujourd'hui à 13:17

» @Klaus
par Yannick Aujourd'hui à 13:06

» Compilateur FBPano
par jean_debord Aujourd'hui à 11:47

» Form [formulaires annexes]
par Jean Claude Aujourd'hui à 1:39

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Jeu 25 Mai 2017 - 22:50

» KG.dll - nouveautés en cours de préparation
par Klaus Jeu 25 Mai 2017 - 22:48

» Outils couleurs
par Yannick Jeu 25 Mai 2017 - 19:22

» bug number_events : toujours égal à 0
par silverman Mer 24 Mai 2017 - 15:36

» bug ON_MOVE N,L : actif que sur form 0
par silverman Mer 24 Mai 2017 - 15:30

» Testez vos connaissances
par Yannick Mar 23 Mai 2017 - 13:37

» Castle game Engine
par Jicehel Lun 22 Mai 2017 - 12:05

» Pb pour matheux
par Yannick Dim 21 Mai 2017 - 20:47

» Othello
par Laurent (Minibug) Dim 21 Mai 2017 - 11:04

» Problème au lancement de Panoramic.
par Marc37 Dim 21 Mai 2017 - 10:10

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2017
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Choix de Police dans Choix et messages d'erreur parlants

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5834
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 19: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
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2266
Localisation : Vienne (86) - FRANCE
Date d'inscription : 10/02/2012

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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 - 21:35, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20:16

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

avatar

Nombre de messages : 5834
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2266
Localisation : Vienne (86) - FRANCE
Date d'inscription : 10/02/2012

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20:30

Very Happy Laughing Smile !!! VIVE LA JEUNESSE !!! Very Happy Laughing Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5834
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5834
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Sam 18 Aoû 2012 - 20: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7670
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 19 Aoû 2012 - 1: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
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5834
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Dim 19 Aoû 2012 - 1:40

Il nous resterait des trucs à résoudre, je te rassure Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2266
Localisation : Vienne (86) - FRANCE
Date d'inscription : 10/02/2012

MessageSujet: Re: Choix de Police dans Choix et messages d'erreur parlants    Dim 19 Aoû 2012 - 11: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
Voir le profil de l'utilisateur
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Choix de Police dans Choix et messages d'erreur parlants
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Mobile] Ajout du choix de page dans la version mobile
» Choix des couleurs dans le message
» Problème Affichage Police Dans l'administration
» Afficher "l'icône de message" dans tous les messages du sujet
» Problème de couleurs de police dans le " profil de post "

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