Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| un end_if en trop ? | |
| | Auteur | Message |
---|
dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: un end_if en trop ? Ven 10 Déc 2010 - 1:33 | |
| Au lancement d'un programme, j'ai le message end_if en trop. Je ne vois pas d'où cela peut provenir. Voici les exttraits du programme qui peuvent être concernés par le message : - Code:
-
timer 2 timer_interval 2,1 on_timer 2, tests
gosub petit dim tableau(taille,taille)
for i=1 to nombre sprite i sprite_file_load i,"submarine.bmp" gosub hasard if(tableau(caseY,caseX)=1) gosub hasard else y=32+(32*caseY) x=32+(32*caseX) sprite_position i,y,x tableau(caseY,caseX)=1 end_if next i
Et les routines : - Code:
-
petit: taille=5 map=192 left 1,200 top 1,200 width 1,map height 1,map file_load 1,"grille05.bmp" nombre=3 return
hasard: caseY=int(rnd(taille)) caseX=int(rnd(taille)) return
tests: if scancode=27 then terminate return
| |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 6:20 | |
| Ton dernier end_if est en trop il y a aussi
dim tableau(taille,taille)
on ne peut pas mettre des variables pour dimensionner un tableau
A+
| |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:13 | |
| Merci MiniFly Ah dommage ça pour les tableaux :/ Pour le dernier "End_if" je comprend pas parce qu'il n'y a qu'un seul "end_if" dans mon programme, c'est celui-là, et pourtant quand on utilise la condition "if" en association avec "else" il le faut le "end_if" d'après la doc, sinon panoramic ne peut pas savoir quand se termine les instructions qui suivent le "else". - Citation :
if condition
instructions
else
instructions
end_if
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:34 | |
| Eb fait, le problème vient de la façon dont tu as rédigé la commande IF. Il faut un espace entre le IF et ce qui suit, sinon, Panoramic pense avoir trouvé une variable de type DIM if(3), par exemple. Et comme le test sur la correspondances entre IF et END_IF est fait AVANT la détection des variables non définiées (c'est fait seulement pendant l'exécution, au fur et à mesure), Panoramic détecte fatalement un end_if en trop. Donc, il faut convertir - Code:
-
if(tableau(caseY,caseX)=1) en - Code:
-
if (tableau(caseY,caseX)=1) et il y a des parenthèses en trop: - Code:
-
if tableau(caseY,caseX)=1 | |
| | | Invité Invité
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:37 | |
| Le problème vient de ceci: - Code:
-
if(tableau(caseY,caseX)=1) Panoramic recherche si il y a correspondance entre if et end_if et idem pour les autres boucles, avant de se lancer. Il ne regarde pas les variables, cela vient après lorsque le programme démarrera. Alors là il aurait vu que ta ligne n'est pas bonne, parce que c'est pas une condition que tu as fait, mais une variable tableau! Il n'y a pas d'espace entre IF et le restant de la ligne, donc effectivement il ne trouve pas de IF qui corresponde à END_IF Mince croisement avec toi Klaus |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:38 | |
| Merci Klaus Justement je venais de m'appercevoir après plusieurs tests qu'il fallait un espace juste entre le if et la parenthese qui suit, du coup mon programme fonctionne. EDIT : ON s'est croisé Cosmos | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:39 | |
| Eh oui, on tire aussi vite l'un que l'autre. Lucky Luke n'a qu'à bien se tenir ! | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:39 | |
| Ah bha on est trois à s'etre croisé alors Manque plus qu'un quatrieme pour faire les daltons | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 13:56 | |
| Bizarre, dans mon code affiché précédement et mis à jour ci-dessous : - Code:
-
for i=1 to nombre sprite i sprite_file_load i,"submarine.bmp" gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else y=32+(32*caseY) x=32+(32*caseX) sprite_position i,y,x tableau(caseY,caseX)=1 end_if next i
Et les routines : - Code:
-
petit: taille=5 dim tableau(5,5) map=192 left 1,200 top 1,200 width 1,map height 1,map file_load 1,"grille05.bmp" nombre=3 return
tests: if scancode=27 then terminate return
hasard: caseY=int(rnd(taille)) caseX=int(rnd(taille)) return
Le sprite qui s'affiche en y,x est sensé au minimum s'afficher en 32,32 hors il se trouve qu'il y en a un qui s'affiche en 0,0 et ça je vois pas d'où ça peut venir vu que j'ai mis y=32+.... et x=32+.... La position en 0,0 du sprite n'est pas automatique, ça dépend du hasard, mais ça ne devrait jamais etre en dessous de 32,32 en tous cas. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 14:34 | |
| Est-ce que tu as testé la position réelle du sprite, avec les fonctions qui retournent son adresse ? - Code:
-
for i=1 to nombre sprite i sprite_file_load i,"submarine.bmp" gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else y=32+(32*caseY) x=32+(32*caseX) sprite_position i,y,x message "Position: ("+str$(sprite_x_position(i))+","+str$(sprite_y_position(i))+")" tableau(caseY,caseX)=1 end_if next i
| |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 20:32 | |
| En fait j'ai choisi dorénavant de mettre la valeur 1 trois fois de suite à des positions aléatoires dans un tableau à deux dimensions de 5x5 cases, ce sera la position des sprites sur la map de 5x5 cases, puis de lire le tableau afin d'afficher réellement les sprites sur la map : A savoir : je réserve la premiere ligne et colonne pour l'affichage des lettres et chiffres qui indiquent les cases de la map, car c'est un jeu de bataille navale donc par exemple la case A4. c'est pour ça que je fais afficher le sprite en position 32x32 et non pas en 0x0 car chaque case de la map fait 32 pixel de coté. C'est une façon plus propre de programmer et qui m'arrange bien mais maintenant je me retrouve avec parfois un seul sprite affiché et parfois deux, jamais trois. J'aimerais bien savoir pourquoi, et là j'affiche leur positions avec le str$(). - Code:
-
i=0 while i<=nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
i=1 for lig=0 to taille-1 for col=0 to taille-1 if (tableau(lig,col)=1) sprite i sprite_file_load i,"submarine.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print print "position map : "+str$(y)+" "+str$(x) print i=i+1 end_if next col next lig
En attendant je regarde ton code. EDIT : J'ai inséré la ligne : message "Position: ("+str$(sprite_x_position(i))+","+str$(sprite_y_position(i))+")" après le dernier print et panoramic ne me l'affiche pas, d'ailleurs il ne m'affiche meme pas mon print position map pour le deuxieme sprite, quand au troisieme sprite il n'est jamais affiché ni meme sa position. | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 20:48 | |
| Rectification, cette fois, sans rien changer ça a bien affiché la ligne message() mais bon le contenu est le meme que ma ligne print position map. EDIT :Heu on dirait que c'est aléatoire :/ Et le probleme en tous cas est que le troisieme sprite n'est jamais affiché ni meme sa position. Ni meme la position map du deuxieme sprite. Voici l'image quand ça n'affiche qu'un seul sprite : Voici l'image quand il affiche deux sprites : En fait j'ai l'impression que dés que le dernier sprite est affiché, il n'affiche pas sa position map, seulement sa position tableau, et pour lui le dernier sprite ça peut etre un seul sprite comme deux, mais jamais trois. A savoir que pour moi la case A1 signifie la position 0,0 dans la tableau de sprites. EDIT : Le code complet actuel pour mieux comprendre le truc : - Code:
-
label attaque label repos label bonus label petit label moyen label grand label tests label hasard
dim energie,tours dim sonar,canon,mouvement dim nombre,i,y,x,map dim caseY,caseX,lig,col dim taille
scene2d 1
' Pour tester les touches clavier timer 2 timer_interval 2,1 on_timer 2, tests
' pour définir la dimension de la map gosub petit
' place 1 aléatoirement (trois fois) dans le tableau virtuel de 5x5 cases ' nombre=3 donc : trois fois. i=0 while i<nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
' lit le tableau pour afficher sur la map un sprite à la place de 1 lu dans le tableau. i=1 for lig=0 to taille-1 for col=0 to taille-1 ' if (tableau(lig,col)=1) sprite i sprite_file_load i,"submarine.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print ' message "Position: ("+str$(sprite_x_position(i))+","+str$(sprite_y_position(i))+")" i=i+1 ' end_if next col next lig
end
attaque: return
repos: return
bonus: return
' fixe la taille de la map à 5x5 petit: taille=5 dim tableau(5,5) map=192 left 1,200 top 1,200 width 1,map height 1,map file_load 1,"grille05.bmp" nombre=3 return
moyen: taille=10 dim tableau(10,10) map=352 left 1,100 top 1,100 width 1,map height 1,map file_load 1,"grille10.bmp" nombre=5 return
grand: taille=20 dim tableau(20,20) map=672 left 1,0 top 1,0 width 1,map height 1,map file_load 1,"grille20.bmp" nombre=8 return
tests: if scancode=27 then terminate return
' détermine la position aléatoire dans le tableau virtuel. hasard: caseY=int(rnd(taille-1)) caseX=int(rnd(taille-1)) return
Dans ce code actuel j'ai mis la condition "if" en REM pour afficher tout le contenu du tableau virtuel afin de tester ce que contient réellement le tableau (juste un test). EDIT : heu non je lis même pas le tableau, lol bon je vais voir tout ça... EDIT: bizarre car avec le "if" en REM ça devrait m'afficher 25 sprites (toute la map), hors cela m'affiche aléatoirement 1 à 3 sprites et tous positionnés dans la même premiere colonne : 0,0 le premier 0,1 le deuxieme quand il est affiché. 0,2 le troisieme quand il est affiché. EDIT : Je crois avoir cerné le problème, on dirait que panoramic se fiche pas mal que les deux boucles for next soient imbriquées, il n'exécute que la boucle intérieure.
EDIT : Bizarre, pour m'en assurer j'ai simplement remplacé la premiere boucle for par une boucle while et le résultat est le même, pas de changement, ça n'affiche que 1 à 3 sprites selon le cas, et pas 25 sprites (toute la map) : - Code:
-
' lit le tableau pour afficher sur la map un sprite à la place de 1 lu dans le tableau. i=1 lig=0 while lig<taille-1 for col=0 to taille-1 ' if (tableau(lig,col)=1) sprite i sprite_file_load i,"submarine.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print i=i+1 ' end_if next col lig=lig+1 end_while
j'essaie de m'assurer en afficher les 25 sprites que le systeme de mes deux boucles fonctionne ensuite je reviendrais à mon principal probleme qui est que je veux afficher mes trois sprites alors que ça n'en affiche qu'entre 1 et 3 aléatoirement. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 23:08 | |
| Tu ne donnes que des codes partiels, ce qui rend les tests difficiles. J'ai essayé de composer un programme complet afin de pouvoir tester. Déjà une première remarque: à quelle place tu mets la scene2d ? Si tu la mets en haut à gauche de la form, tu ne verras jamais l'affichage de tes print, puisqu'ils vont dans le canvas de la form qui se trouve SOUS tous les autres objets. J'ai donc décalé la scene2d, et comme par magie, les print apparaissent. Et ils sont tous là - j'ai fait l'essai pour nombre=1,2 3 et 4. Essaie chez toi avec ton image sprite. Ah oui, j'oubliais: j'ai ajouté un DISPLAY afin de donner le temps à Panoramic de finir son affichage avant de passer à la suite - c'est important. Voici mon code: - Code:
-
label hasard dim i,nombre,tableau(5,5),taille,lig,col,x,y,caseX,caseY
taille = 5 nombre = 3 scene2d 10 : top 10,10 : left 10,300
i=0 while i<=nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
i=1 for lig=0 to taille-1 for col=0 to taille-1 if (tableau(lig,col)=1) sprite i sprite_file_load i,"submarine.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x display print "position tableau : "+str$(lig)+" "+str$(col) print "position tableau : ("+str$(sprite_x_position(i))+","+str$(sprite_y_position(i))+")" print "position map : "+str$(y)+" "+str$(x) print i=i+1 end_if next col next lig
end
hasard: caseY=int(rnd(taille)) caseX=int(rnd(taille)) return | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Ven 10 Déc 2010 - 23:19 | |
| Je t'ai mis le code complet regarde bien Je vais voir ton code. Merci Maitre klaus EDIT : J'ai essayé ton code en supprimant la condition if afin d'afficher 5 x 5 sprites et en effet ça fonctionne bien, donc il faut que je vois quelle est la différence avec mon code. PS: en gardant la condition "if", il affiche 4 sprites alors qu'il en faut 3, cette quantité est décidée par la variable "nombre=3" J'ai essayé avec et sans display, display n'a pas d'effet dans ce cas présent. Dans la partie bug du forum j'expose le probleme, j'ai une partie du code qui fonctionne bien quand il est seul c'est la partie boucle for mais ça ne marche pas quand cette partie est dans mon programme. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 0:25 | |
| Bizarre. Avec le code suivant, j'ai bien 3 sprite, pas 4 (j'ai changé le nom du fichier parce que je n'avais pas le tien): - Code:
-
' pour définir la dimension de la map gosub petit
' place 1 aléatoirement (trois fois) dans le tableau virtuel de 5x5 cases nombre=3 : ' donc : trois fois. i=0 while i<nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
' lit le tableau pour afficher sur la map un sprite à la place de 1 lu dans le tableau. i=1 lig=0 taille=5 for lig=0 to taille-1 for col=0 to taille-1 if tableau(lig,col)=1 sprite i sprite_file_load i,"test_x.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print i=i+1 end_if next col next lig
end
| |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 0:37 | |
| Effectivement cela fonctionne tel que je le souhaite Mais je vois pas la différence avec mon programme, je parle là seulement de la partie while, car les boucles for je les ai modifiées pour test, il faut que je remette la condition if à l'intérieur. - Code:
-
label attaque label repos label bonus label petit label moyen label grand label tests label hasard label debut
dim energie,tours dim sonar,canon,mouvement dim nombre,i,y,x,map dim caseY,caseX,lig,col dim taille
scene2d 1
' Pour tester les touches clavier timer 2 timer_interval 2,1 on_timer 2, tests goto debut
end
debut: ' pour définir la dimension de la map gosub petit
' place 1 aléatoirement (trois fois) dans le tableau virtuel de 5x5 cases nombre=3 i=0 while i<nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
' lit le tableau pour afficher sur la map un sprite à la place de 1 lu dans le tableau. i=1 for lig=0 to taille-1 for col=0 to taille-1 sprite i sprite_file_load i,"submarine.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print i=i+1 next col next lig
return
attaque: return
repos: return
bonus: return
' fixe la taille de la map à 5x5 petit: taille=5 dim tableau(5,5) map=192 left 1,200 top 1,200 width 1,map height 1,map file_load 1,"grille05.bmp" nombre=3 return
moyen: taille=10 dim tableau(10,10) map=352 left 1,100 top 1,100 width 1,map height 1,map file_load 1,"grille10.bmp" nombre=5 return
grand: taille=20 dim tableau(20,20) map=672 left 1,0 top 1,0 width 1,map height 1,map file_load 1,"grille20.bmp" nombre=8 return
tests: if scancode=27 then terminate return
' détermine la position aléatoire dans le tableau virtuel. hasard: caseY=int(rnd(taille-1)) caseX=int(rnd(taille-1)) return
Ce programme ne fonctionne pas, il affiche une premiere colonne de 3 sprites et c'est tout. Je suis sûr que le probleme réside dans les boucles mais je vois pas pourquoi car les boucles prises seules fonctionnent très bien comme je l'ai indiqué dans le topic "bug" du forum. Bon je vais tout remettre en ordre d'aprés tes dernieres indications sur le topic bug et voir ce que ça donne je te tiens au courant
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 0:50 | |
| C'est toujours pareil: tu n'est pas en mode évènementiel, et le timer perturbe le fonctionnement. La preuve: le code suivant marche bien: - Code:
-
label attaque label repos label bonus label petit label moyen label grand label tests label hasard label debut
dim energie,tours dim sonar,canon,mouvement dim nombre,i,y,x,map dim caseY,caseX,lig,col dim taille
scene2d 1
' Pour tester les touches clavier ' timer 2 ' timer_interval 2,1 ' on_timer 2, tests goto debut
end
debut: ' pour définir la dimension de la map gosub petit
' place 1 aléatoirement (trois fois) dans le tableau virtuel de 5x5 cases nombre=3 i=0 while i<nombre gosub hasard if (tableau(caseY,caseX)=1) gosub hasard else tableau(caseY,caseX)=1 i=i+1 end_if end_while
' lit le tableau pour afficher sur la map un sprite à la place de 1 lu dans le tableau. i=1 for lig=0 to taille-1 for col=0 to taille-1 sprite i sprite_file_load i,"test_x.bmp" y=32+(32*lig) x=32+(32*col) sprite_position i,y,x print "position tableau : "+str$(lig)+" "+str$(col) print i=i+1 next col next lig
end return
attaque: return
repos: return
bonus: return
' fixe la taille de la map à 5x5 petit: taille=5 dim tableau(5,5) map=192 left 1,200 top 1,200 width 1,map height 1,map ' file_load 1,"grille05.bmp" nombre=3 return
moyen: taille=10 dim tableau(10,10) map=352 left 1,100 top 1,100 width 1,map height 1,map ' file_load 1,"grille10.bmp" nombre=5 return
grand: taille=20 dim tableau(20,20) map=672 left 1,0 top 1,0 width 1,map height 1,map ' file_load 1,"grille20.bmp" nombre=8 return
tests: if scancode=27 then terminate return
' détermine la position aléatoire dans le tableau virtuel. hasard: caseY=int(rnd(taille-1)) caseX=int(rnd(taille-1)) return
| |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 0:58 | |
| C'est bizarre qu'il marche bien puisque il y a le goto début qui empeche de lire le end oO Sinon c'est bon Maitre klaus, grace à ton aide j'ai enfin mon programme qui fonctionne, le principal problème était justement que je ne fonctionnais pas en mode évènementiel comme tu me l'a dit dans le topic "bug". Donc je te remercie, je vais pouvoir continuer plus loin ce programme sympa Heureusement que tu est là | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 1:21 | |
| Prends garde quand-même ! La modif que j'ai faite, c'est la suppression du timer. Donc, plus d'interruption, plus de problème. Mais le programme reste en mode linéaire, pas en mode évènementiel. Et c'est bien le problème: si plus tard, dans l'écriture de ton jeu, tu as besoin d'interaction avec l'utilisateur, ou d'un timer pour gérer un déplacement, par exemple: tu auras exactement le même problème ! Regarde bien mon (très long) exposé sur l'autre fil de discussion: dès que tu veux gérer une interface visuelle autre que simplement print/input comme sur un ruban papier, tu DOIS passer en mode évènementiel ! Sinon, ça coincera toujours à un endroit ou un autre, et ce sera très difficile à débugger - le comportement sera certainement aléatoire du fait de la gestion des files d'attente des messages que l'on ne maîtrise absolument pas. | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 1:35 | |
| OUi je comprend, de toutes façons je vais rester tout le temps en mode evennementiel sous panoramic, c'est son mode de fonctionnement le mieux adapté à ce que je fais (gestion d'évennements dans les jeux).
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 1:35 | |
| D'ailleurs, si tu ne veux pas de mon idée du bouton pour passer en mode évènementiel, voici une astuce de passage automatique via un timer qui ne servira qu'une seule fois: - Code:
-
label debut, fermer
button 1 : top 1,100 : left 1,10 : caption 1,"Fermer" on_click 1,fermer
print "ici, mode linéaire"
timer 10 : timer_interval 10,100 on_timer 10,debut timer_on 10
end
debut: timer_off 10 print "ici, on est en mode évènementiel"
' placer ici le code du jeu
' passer ici si 'on veut terminer return
fermer: terminate
| |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 1:42 | |
| C'est vrai que l'idée du bouton déroute un peu mais je pense qu'il y a toujours moyen de cliquer quelque part pour aller en mode evennementiel, pas necessairement sur un bouton, donc on est sauvé, le bouton peut être remplacé par une image, un menu, etc... Dans mon cas par exemple le jeu débute en proposant à l'utilisateur le choix entre 3 tailles de map pour jouer à la bataille navale (version perso), donc l'utilisateur n'a plus qu'à cliquer sur l'un des trois choix proposés pour lancer le jeu et donc passer en mode évennementiel.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un end_if en trop ? Sam 11 Déc 2010 - 1:45 | |
| Eh bien, tu as ton point d'entrée tout trouvé... | |
| | | Contenu sponsorisé
| Sujet: Re: un end_if en trop ? | |
| |
| | | | un end_if en trop ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |