Forum Liberty Basic France

Discussion Générale » Quelques propos..... Sur: Les exemples
Le 10/03/2012 à 08h39

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Salut Cassiope.Puisque ce forum n'est pas trés encombré, j'en profite pour faire un peu de littérrature.Dans mon dernier post, je citais l'exemple donné pour eval$. Aujourd'hui je tombe sur: "démo sprite". Démo, de 'démontrer'. En effet ce petit programme démontre parfaitement les possibilités du langage et de son éditeur. Mais il n'est didactique en aucune façon.Pour qu'un apprentissage soit agréable, il faut qu'il soit ludique, et que la progression soit effective.Or, contrairement au langage dit "procédural",dans lequel un programme bancal fonctionnait jusqu'à la première bavure, et qui avait mème la courtoisie de te renvoyer l'état des variables aprés avoir digéré la partie commestible. Les langages dits "objets",ne fonctionnent que lorsque tout est parfaitement au point, genre horlogerie. Et c'est ce qui les rends difficile d'accés. Tu as trés bien pressenti le problème, puisque tu parle de proposer des exemples.C'est bien cela qu'il faut faire, avec de tout petits programmes fonctionnels du genre:Exemple a):On ouvre une fenetre, on pose dedans une fenetre graphique et on s'arrete là. Puis exemple b): on y pose un sprite, en exposant les deux options: importation ou fabrication de l'image. Dans deux exemples séparés.Et non pas deux sprites animés, avec en prime des fonts différents,eux memes animés.Et ne nous plaignons pas, ils auraient pu y mettre une bonne 'différencielle', histoire de montrer qu'ils étaient bons en math. Allez tonton paye ton petit exemple, cela prends moins de temps que de monter un jeu de billes.Tiens, en passant, je suis allé sur le site anglais voir le niveau. Il s'avère, qu'avec tes billes, tu es une sacré pointure en programation.Pendant que tu fait les exemples (dont j'ai grand besoin).Je continue la traduction.Je conserve le texte anglais comme cela les jeunes feront de la programation et de l'anglais.Pour aller faire fortune aux Staytes'. Bon j'arrete. Le Modo va gueuler pour ses octets de mem'. Respects du matin ! A +



Edité par Roland Le 11/03/2012 à 12h26
____________________
Roro

   
Le 10/03/2012 à 09h47

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Eh pépère, tu arrètes un peu de critiquer un peu tout et tout le monde !
Tu n'arrète pas d'écrire ce qu'il faut faire sans jamais montrer ce que toi tu fais.

Je sais bien que chez les gens du sud le plus important est de parler et non de se faire comprendre, m'enfin quand même...

Carl n'a pas spécialement pensé à toi ni aux francophones en créant ce langage !

Les gens de ce forum se sont cassé la tête à écrire un tuto pour les gens qui partent de rien ou presque : eux oui, ils ont pensés à toi !

Darwin nous à appris que ceux qui gagnent (survivent) ne sont pas les plus forts mais ceux qui s'adaptent le plus facilement...

Alors tu prend ton neurône, tu l'éguises, et tu t'en sert. Sinon tu te trouves un autre langage ailleurs qui te conviendra mieux, mais crois moi, c'est pas plus facile ailleurs...

Si tu connais les langages orientés objets, JB/LB qui n'en sont pas devraient être un jeu d'enfant pour toi....

Par ailleurs les répertoires d'installations de JustBasic et aussi de LibertyBasic contiennent déjà beaucoup de petits fichiers *.bas qui sont autant de petits exemples didactiques et qui sont là pour ça.

Partage donc tes traductions avec le plus grand nombre, puis pose des questions plus précises sur un pb sur lequel tu butes en montrant ce que tu fait, et avec de la patience et de la persévérence tu y arriveras...

Je ne suis pas une "sacré pointure" cela fait simplement beaucoup d'année que je m'amuse avec le basic en observant et en m'appuyant sur ce que d'autres ont fait et partagés, c'est tout.

Je t'ai montré le jeux de billes uniquement pour que tu te fasse une petite idée de ce que JustBasic permet de faire, pas forcément pour que tu cherches à faire pareil tout de suite si tu débutes... bien que ce ne soit pas si compliqué...

A mon avis, personne ici n'a encore compris ce que tu veux exactement tant tu parts dans des digressions confuses et disparates. Un coup c'est l'ouverture des fichiers externes à JB, un coup c'est des méthodes de traductions directe des chm, un coup c'est un projet de jeu que personne ne comprend, un coup c'est les sprites...........

Ouvre donc un sujet dans la bonne rubrique du forum avec un but précis et peut-être que tu trouveras ton bonheur.
Je veux bien t'aider pour ton jeux (encore faut-il que tu le veuilles) mais je ne te ferai jamais un cours magistral et exhaustif sur JB et chacune de ses commandes et fonctions !!!
Personne ne fera ton programme à ta place... ( je ne bois pas de champagne, ni autre alcool d'ailleurs ! )



Edité par cassiope01 Le 10/03/2012 à 10h40
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 12h19

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Ho! la! la! Faut pas s'ennerver. C'est vrai que je pose différentes questions. Mais tiens, tu vas savoir ou j' en suis, et comprendre l'ampleur de mon désarroi. Et pourtant, j'en ai fait, mais c'était du basic ancestral.
Code VB :
 
 
 WindowWidth = 400
  WindowHeight = 400
  nomainwin
  'loadbmp "arrow", "bmp\arrwbttn.bmp"
  'loadbmp "blue", "bmp\bluebttn.bmp"
  x1=1:x2=42:y1=42:y2=42
 
  [aff]
  bmpbutton #main.button1, "a.bmp", [ton1Click], UL,x1, y1
  bmpbutton #main.button2, "a.bmp", [ton2Click], UL, x2, y2
  open "untitled" for graphics as #main
  print #main, "trapclose [quit]"
  print #main, "down ; fill yellow; flush"
 
 'wait here for input events
  wait
 
[ton1Click]
  for d=1 to  300
  y=y+2
  if y>=150 then y=150:goto[aff]
  next d
 
[quit]
  close #main
  end
 
 
____________________
Roro

   
Le 10/03/2012 à 12h26

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Tu vois, c'est pas brillant...Je pense qu'il y a dans ce langages des subtilités qui mériteraientde bonnes explications. A part ça si je suis là, c'est que j'ai calé sur le python,et je sais pourquoi. Ne vois pas dans mes propos, des critiques, mais un essai d'analyse des difficultés. Cordialement...
____________________
Roro

   
Le 10/03/2012 à 13h23

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Je suis très loin d'être énervé.
Je suis simplement un garçon plutôt direct et franc.

Ah oui ! effectivement c'est pas très bien partie ;) mais rien de rédibitoire.
Dès que tu vas comprendre quelques bases, le reste ira tout seul...
Crois moi, JustBasic n'est pas si éloigné du basic ancestral comme tu dis !
Tu peux même écrire comme avant avec les numéro de lignes et ça marchera !

Que voulais-tu faire exactement avec ce bout de code ?

Moi c'est sur Delphi que j'ai buté et je sais aussi pourquoi ;)

Cordialement.



Edité par cassiope01 Le 10/03/2012 à 13h26
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 13h48

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Avec des bouts de code j'essaie de comprendre le fonctionnement de la bete.Dans celui là tout allait bien j'usqu'à ce que je tente le 'for next.' Dans mon esprit cela aurait du fonctionner, et ce qui m'agace c'est ne pas comprendre pourquoi non.J'ai bossé sur des trucs hyper complexes (radars télemétriques et autres). Et de buter sur un truc pareil, ça me mets en rage. Déja que le # avait du mal à passer ! Mais pour les exemples qui sont des démonstrations non exploitables par un débutant, je persiste et signe.



Edité par Roland Le 10/03/2012 à 13h51
____________________
Roro

   
Le 10/03/2012 à 14h10

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Et de buter sur un truc pareil, ça me mets en rage.

ça va être ça ton problème, ainsi qu'apparament un gros manque de patience.

le # est passé ?



La commande 'open' (peut-être la plus importante de JB/LB) ouvre le 'support' de ton programme, en l'occurence ici une fenêtre graphique.
Il est rarement nécessaire d'en ouvrir plusieurs encore moins dans une boucle.

# suivit du nom que tu lui as donné au départ, sert à désigner tous les 'objets' ou 'controles' de JB (fenêtres, bouttons, textbox, fichiers, port com, etc...) sur lesquels tu peux appliquer un tas de paramètres prévus par JB.

Tu ne dis toujours pas ce que tu as voulu faire avec LE bout de code que tu donnes ??????




Roland:
Mais pour les exemples qui sont des démonstrations non exploitables par un débutant, je persiste et signe.

Comment fait le reste du monde ???



Edité par cassiope01 Le 10/03/2012 à 14h18
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 14h31

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Avec les bouts , je teste. J'ai du mal à croire que tu n'a pas vu au premier coup d'oeil ce que fait ce code. Il place un bouton en haut, et au clic,"y" est incrémenté, ce qui devrait l'afficher un peu plus bas à chaque boucle, jusqu'au test : 'y>= 'pour pas qu'il tombe par terre.! Hé bé ça marche pas. Quand je clique, j'ai un message "#handle". je ne sais pas si utiliser une mise en mouvement de boutons, ce qui me parait gérable; ou si utiliser des spites, dont la manipulations parait plus complexe, bien que plus adaptée. Donc je fait deux programmes en parralle. Sur celui en bouton j'ai le probleme évoqué plus haut, et sur celui en sprite, j'arrive à afficher un sprite fabriqué sur place, mais je n'arrive pas à en importer un de l'étranger.



Edité par Roland Le 10/03/2012 à 15h53
____________________
Roro

   
Le 10/03/2012 à 16h04

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Les bouttons ne sont pas du tout fait pour ça.

Si tu ne veux pas utiliser de sprite, il y a aussi la commande 'drawbmp' qui te permet d'afficher une image où tu veux et autant de fois que tu veux.
Si tu prends soin d'effacer sa précédente position, puis de l'afficher à sa nouvelle position, tu le verras bouger...
Mais il te faut rester dans la fenêtre que tu as ouverte et nommée (#main) au départ.

Je ne risque pas de lançer le bout de code que tu donnes : je n'ai pas le fichier "a.bmp" sur mon PC !!!

Quant au 'click' déclencheur regarde la commande graphique 'when' qui te permet entre autre d'utiliser la position de la souris ou les touches du clavier...

Les sprites s'importent de la même façon que les autres fichiers image bmp. Simplement ils ont une autre tronche... ouvre l'un des fichiers de mes billes, tu verras.



Edité par cassiope01 Le 10/03/2012 à 18h15
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 16h48

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Vois ce qu'on peut même faire sans sprites...

Code VB :
'You can mess with the variables that have comments after them.
    nomainwin
    WindowWidth=500
    WindowHeight=500
    obX=250
    obY=250
    numberChasers=10 'This changes the number of things chasing you
    moveCo=.04 'The things will move faster if this number is greater. Above about .1,
'they will catch your mouse almost immediately. Don't make it negative or they will
'run away and leave the screen!
    moveFrict=.4 'If this number is lower, they will have less inertia. If it is higher,
'they will have more. If it's above 1, they will actually accelerate, and if it's negative
'the inertia will constantly reverse itself. Negative inertia is very strange!
    gravity=1 'Obviously, this is gravity.
    frameDelay=10
    dim chasing(numberChasers-1, 4)
    open "Mouse Chaser" for graphics as #a
    print #a, "home; down; trapclose [quit]"
 
[main]
    print #a, "when mouseMove [next]"
    timer 10, [next]
    wait
 
[next]
    frame=frame+1
    if frame/frameDelay=int(frame/frameDelay) then
        chasers=chasers+1
        if chasers>numberChasers-1 then
            chasers=numberChasers-1
            goto[skip]
        end if
        chasing(chasers, 1)=250
        chasing(chasers, 2)=250
    end if
 
[skip]
    print #a, "fill white"
    timer 0
    curXIn=curXIn*moveFrict
    curYIn=curYIn*moveFrict
    xChan=(MouseX-obX)*moveCo+curXIn
    yChan=(MouseY-obY)*moveCo+curYIn
    angle=getAng(MouseX-obX, MouseY-obY)
    oldX=obX
    oldY=obY
    obX=obX+xChan
    obY=obY+yChan
    curXIn=curXIn+obX-oldX
    curYIn=curYIn+obY-oldY+gravity*1.5
    call drawOb obX, obY, angle
    for i=1 to chasers
        curXInc=chasing(i, 3)*moveFrict
        curYInc=chasing(i, 4)*moveFrict
        if i>1 then
            xChang=(chasing(i-1, 1)-chasing(i, 1))*moveCo+curXInc
            yChang=(chasing(i-1, 2)-chasing(i, 2))*moveCo+curYInc
        end if
        if i=1 then
            xChang=(obX-chasing(i, 1))*moveCo+curXInc
            yChang=(obY-chasing(i, 2))*moveCo+curYInc
        end if
        angle=getAng((xChang-curXInc)/moveCo, (yChang-curYInc)/moveCo)
        oldX=chasing(i, 1)
        oldY=chasing(i, 2)
        chasing(i, 1)=chasing(i, 1)+xChang
        chasing(i, 2)=chasing(i, 2)+yChang
        chasing(i, 3)=curXInc+chasing(i, 1)-oldX
        chasing(i, 4)=curYInc+chasing(i, 2)-oldY+gravity*1.5
        call drawOb chasing(i, 1), chasing(i, 2), angle
    next
    goto[main]
 
[quit]
    close #a
    end
 
function getAng(xChan, yChan)
    if xChan>0 and yChan>0 then
        getAng=180-atn(xChan/yChan)*57.29577951
    end if
    if xChan<0 and yChan>0 then
        getAng=180+atn(abs(xChan)/yChan)*57.29577951
    end if
    if xChan>0 and yChan<0 then
        getAng=atn(xChan/abs(yChan))*57.29577951
    end if
    if xChan<0 and yChan<0 then
        getAng=360-atn(abs(xChan)/abs(yChan))*57.29577951
    end if
    if xChan<0 and yChan=0 then getAng=270
    if xChan>0 and yChan=0 then getAng=90
    if xChan=0 and yChan>0 then getAng=180
end function
 
sub drawOb xpos, ypos, rot
    print #a, "north"
    print #a, "place ";xpos;" ";ypos;"; turn ";rot
    print #a, "turn 160; go 6; posxy urx ury; go 14; posxy lrx lry; turn 180"
    print #a, "go 20; turn 220; go 6; posxy ulx uly; go 14; posxy llx lly"
    print #a, "turn 160; down; color black; line ";xpos;" ";ypos;" ";llx;" ";lly
    print #a, "line ";xpos;" ";ypos;" ";lrx;" ";lry
    print #a, "line ";urx;" ";ury;" ";llx;" ";lly;"; line ";ulx;" ";uly;" ";lrx;" ";lry
    print #a, "turn ";360-rot
end sub
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 17h25

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Merci, grand merci. Tes billes j'ai été les voir, et j'ai bien vu qu'il y avait une magouille pour effacer la position précedente. Je sais que faire avec des boutons ce serait barbare, mais si j'arrive à faire bouger des boutons. Je serai quand meme content. Puisque j'aurai compris le probleme de mon "for next". Pour la "bmp" du bouton, j'ai compris qu'il faut que je trouve tout seul. Tu as raison, donc je creuse....je creuse....Si je me trompe tu peut modifier les deux lignes:

bmpbutton #main.button1, "a.bmp", [ton1Click], UL,x1, y1 Par
--------- ---- ----"b------ ---- ------ ---
button #main, "a", [ton1Click], UL,x1, y1 et ......#main,"b" ...... ça, je sais que tu le sais. Si tu collectione les "merci," prepare un grand sac .....



Edité par Roland Le 10/03/2012 à 17h50
____________________
Roro

   
Le 10/03/2012 à 18h12

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Whoaoooh! le texte ! Y a du physicien la derriere. Mais v'la les 'frames' qui débarquent. Il ne manquait plus qu'elles. Tu veux me faire péter le cerveau...
____________________
Roro

   
Le 10/03/2012 à 19h53

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Encore un fois, les boutons ne sont pas prévus en JB, pour être utilisé comme des objets mobiles...

Voilà à quoi peut servir un bouton par exemple : (met le fichier Orange.bmp de mes billes dans le même répertoire que ce fichier de code .bas )

Code VB :
 nomainwin
 
    WindowWidth = 415
    WindowHeight = 470
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    MapWidth = 400
    MapHeight = 400
    BUTTON #w.grid, "GO", [fall], UL, WindowWidth/3, 5, 50, 25
    graphicbox #w.map, 5, 40, MapWidth, MapHeight
    open "    TEST..." for window_nf as #w  'graphics_nf_nsb
    #w "trapclose [quit]"
 
    loadbmp "Boule1","Orange.bmp"
 
    #w.map "down; fill black"
    #w.map "getbmp Backgrd 0 0 ";MapWidth;" ";MapHeight  'crée le background nécessaire au sprite
    #w.map "addsprite Boule1 Boule1"          'crée le sprite
    #w.map "spritexy Boule1 100 10"           'le positionne à l'écran (la fenêtre graphique)
    #w.map "background Backgrd; drawsprites"  'l'affiche

   ' #w.map "when leftButtonDown [fall]"

    wait
 
    [fall]
        for yb1 = 10 to MapHeight-42
            #w.map "spritexy Boule1 100 ";yb1
            #w.map "drawsprites"
            t=0 :while t<500 :t=t+1 :wend   'petite pause
        next
    wait
 
    [quit]
        close #w
        end
    wait




Edité par cassiope01 Le 11/03/2012 à 09h17
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/03/2012 à 21h41

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Super.! c'est juste l'option que j'ai commencée et pour laquelle je n'arrivais pas à afficher le sprite. Je ne risque pas de m'ennuyer ces temps ci. Je vais essayer de me glisser dans ton code sans faire trop de dégats. C'est déja un beau morceau à ronger. Je vais te laisser tranquille un moment......Mais je reviendrai.....Merci a toi. Moi non plus je ne bois pas d'alcool.C'est pas bon.
____________________
Roro

   
Le 10/03/2012 à 22h44

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Je suis aveuuuuugle....Avec ton code,... Ma connerie m'a sauté à la figure. J'en ai pleuré de rire. Ca fait du bien. Je vais me régaler. (pendant quelques temps...Parceque je commence à entrevoir le volume final, et quelques menues difficultés....On a rien sans rein..A +.............et Merci.!
____________________
Roro

   
Le 11/03/2012 à 09h04

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Très heureux que cela te soit utile...!

Voici la même chose SANS utiliser de sprite (sauf le fichier bmp pour copier la boule) :
Code VB :
 nomainwin
 
    WindowWidth = 415
    WindowHeight = 470
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    MapWidth = 400
    MapHeight = 400
    BUTTON #w.grid, "GO", [fall], UL, WindowWidth/3, 5, 50, 25
    graphicbox #w.map, 5, 40, MapWidth, MapHeight
    open "    TEST..." for window_nf as #w  'graphics_nf_nsb
    #w "trapclose [quit]"
 
    loadbmp "Boule","Orange.bmp"
 
    #w.map "down; fill black"
    #w.map "drawbmp Boule 100 10"            'affiche le bmp tel quel
    #w.map "getbmp Boule1 100 52 42 42"      'fabrique une image avec juste la boule
    #w.map "backcolor black; color black"
    #w.map "place 100 10; boxfilled 142 52"  'efface la partie masque (puisque j'ai utilisé le bmp du sprite Orange.bmp)
    #w.map "getbmp cache 100 10 42 42"       'fabrique une image : un carré noir pour effacer la boule à l'écran

    #w.map "when leftButtonDown [fall]"    'actionne le mouvement aussi avec un clic de souris dans la fenêtre.

    wait
 
    [fall]
        for yb1 = 52 to MapHeight-42
            #w.map "posxy oldX oldY"           'récupère la position actuelle du pointeur (dernier endroit où la boule était affichée)
            #w.map "drawbmp cache 100 ";oldY   'efface cet endroit
            #w.map "drawbmp Boule1 100 ";yb1   'affiche la boule à la nouvelle position
            t=0 :while t<500 :t=t+1 :wend      'petite pause
        next
        #w.map "discard; flush"    'ménage dans la mémoire (les segments d'affichage)
    wait
 
    [quit]
        close #w
        end
    wait


Plus de 'background' à gérer (bien que ce ne soit pas bien compliqué)
Par contre une image dans ce cas est toujours carrée.

Voilà, à toi de jouer...

Cordialement.

PS: déjà qu'avec rien c'est pas facile, mais sans rein ça doit pas être cool du tout... :nex



Edité par cassiope01 Le 11/03/2012 à 09h20
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 11/03/2012 à 12h28

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Bonjour Cassiope.Merci et re-re-merci. Juste un petit mot pour te signaler que j'ai rectifié mon message du 04 03 sans en altérer le sens, pour ne pas rendre ta réponse incohérente. Bien que nouveau venu dans ce monde étrange, je note qu'il est difficile, sur le web, de faire de l'humour sans que cela ne parte en vrille,ou sans etre taxé d'hurluberlisme. Etrange...non ? Tu me dira: ici c'est un forum "informatique", c'est sérieux. Je te réponds: on est dans: "discussion de tout et de rien", et paf !. En ce moment, je visite la fabrique de billes. Y'a des "chaines" qui pendent. Faut faire attention. (humour, ou poésie.?..c'est con, je ne peux pas m'en empecher.)PS: Ne m'envoie pas 25Ko sur "rnd".
____________________
Roro

   
Le 11/03/2012 à 13h30

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Hé!...ça viens pas du forum anglais ça ! Mollo! mollo! mollo! J'ai changé des noms pour m'y retrouver. Si tu veux voir, il faut mettre la boule dans un dossier "img". Les boutons du haut pour choisir la boule, ceux de dessous pour choisir la colonne.L'espace vide au dessus de la boule est la ligne dans laquelle les boules générées doivent apparaitre. Au clic du haut 'G' , les deux boules descendent d'une ligne, une nouvelle boule apparait sur la première ligne. Au clic du bas 'H', la boule choisie se déplace jusqu'à la colonne du bouton 'H' (si c'est trop compliqué, elle disparaitra et réapparaitra sous le bouton 'H'). Au laché de bouton la boule tombe (pas facile de décrire un processus qui n'est pas encore précisément défini !).Bien que le but soit fixé et clair. Cela fait des années que je n'ai pas 'écrit', en plus comme j'ai essayés plusieurs autre langages, il me faut m'adapter à la synthaxe....sans parler du #.

Code VB :
 
 
nomainwin
 
    WindowWidth = 415
    WindowHeight = 600
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    MapWidth = 400
    MapHeight = 520
    BUTTON #w.grid, "G1", [fa1], UL,5,3,50, 20
    BUTTON #w.grid, "G2", [fa2], UL,55,3,50, 20
    BUTTON #w.grid, "G3", [fa3], UL,105,3,50, 20
    BUTTON #w.grid, "G4", [fa4], UL,155,3,50, 20
    BUTTON #w.grid, "G5", [fa5], UL,205,3,50, 20
    BUTTON #w.grid, "G6", [fa6], UL,255,3,50, 20
    BUTTON #w.grid, "G7", [fa7], UL,305,3,50, 20
    BUTTON #w.grid, "G8", [fa8], UL,355,3,50, 20
    BUTTON #w.grid, "H1", [ha1], UL,5,23,50, 20
    BUTTON #w.grid, "H2", [ha2], UL,55,23,50, 20
    BUTTON #w.grid, "H3", [ha3], UL,105,23,50, 20
    BUTTON #w.grid, "H4", [ha4], UL,155,23,50, 20
    BUTTON #w.grid, "H5", [ha5], UL,205,23,50, 20
    BUTTON #w.grid, "H6", [ha6], UL,255,23,50, 20
    BUTTON #w.grid, "H7", [ha7], UL,305,23,50, 20
    BUTTON #w.grid, "H8", [ha8], UL,355,23,50, 20
 
    graphicbox #w.map, 5, 45, MapWidth, MapHeight
    open "    TEST..." for window_nf as #w  'graphics_nf_nsb
    #w "trapclose [quit]"
 
    loadbmp "Boule1","img\Bleu.bmp"
    loadbmp "Boule2","img\Jaune.bmp"
    loadbmp "Boule3","img\Orange.bmp"
    loadbmp "Boule4","img\Rose.bmp"
    loadbmp "Boule5","img\Rouge.bmp"
    loadbmp "Boule6","img\Vert.bmp"
    loadbmp "Boule7","img\VertC.bmp"
    loadbmp "Boule8","img\Violet.bmp"
 
    'global x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8
    x1=5:y1=40:x2=5:y2=40:x3=5:y3=40:x4=5:y4=40
    x5=5:y5=40:x6=5:y6=40:x7=5:y7=40:x8=5:y8=4
 
    #w.map "down; fill black"
    #w.map "getbmp Backgrd 0 0 ";MapWidth;" ";MapHeight  'crée le background nécessaire au sprite

    #w.map "addsprite Ble Boule1"          'crée le sprite
    #w.map "spritexy Ble ";x1;" ";y1 'ATTENTION ";";et pas de;"a la fin!          'le positionne à l'écran (la fenêtre graphique)

    #w.map "background Backgrd; drawsprites"  'l'affiche

   ' #w.map "when leftButtonDown [fall]"

    wait
 
    [fa1]
        for yb1 = y1 to MapHeight-42
            #w.map "spritexy Ble x1 ";yb1
            #w.map "drawsprites"
            t=0 :while t<500 :t=t+1 :wend   'petite pause
        next
    wait
 
    [quit]
        close #w
        end
    wait
 
 
____________________
Roro

   
Le 11/03/2012 à 14h35

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2150
Merci pour ce texte, qui est un bijou de pédagogie. Mais qui me met face à un dilemne. Je suis contraint aux sprites qui ont: "collide" (qui soulage d'un bataillon de tests de coordonnées). La gestion des masques m'effraie. Comme tu as utilisé le sprite masqué, j'ai tendance à penser que la gestion des masques est 'transparente'(implicite). (tant que le déplacement est vertical, d'ou mon doute pour le déplacement horizontal). Aurait tu un conseil sur le choix: Avec ou sans masque. J'aurais aussi une question à tiroirs.
#w.map "addsprite Be Boule1"
Dans cette ligne je voudrais remplacer: 'Boule1' par une chaine qui sera crée ailleurs, les questions;
--Vais-je avoir un probleme de #
--Puis-je créer la chaine dans une sub et la rapatrier
--Dans un gosub je pense pouvoir la rapatrier
--Quelle synthaxe pour intégrer la chaine dans la ligne
--Est-ce possible
----Je vois que tu crée une 'coul$' dans la fenetre principale du programe principal, et qu'en suite cette 'coul$' réapparait avec un #a.1 en tete de ligne. Peut tu m'expliquer ce mystère.
fin des ? Il y a une chose qui ne doit pas etre évidente, c'est de faire un petit code qui mette en lumièrele fonctionnement du........#..... je confirme: L'empirisme ne paye pas....Il est tard...alors Bonsoir...



Edité par Roland Le 12/03/2012 à 01h53
____________________
Roro

   
Le 12/03/2012 à 10h27

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Prends le temps de comprendre comment fonctionne un forum.

Ne modifie pas un message pour continuer une discussion: crée juste un nouveau message.
Dans le bandeau en haut de la page il y a "derniers messages lus" et "derniers messages non lus", qui permettent de suivre un peu les sujets qui intéressent... si tu modifies tes message à chaque fois ont ne peut plus le savoir.

D'autre part, il faut vraiment que tu fasses un effort pour être compris et suivi par le plus grand nombre... c'est un des buts d'un forum !

Si tu fais référence à quelque chose, un message précédent par exemple : place un lien qui y mène... sinon c'est impossible à retrouver, si c'est autre chose comme la variable coul$ : explique mieux de quoi tu parles parce qu'elle n'existe pas dans les 2 exemples que j'ai écrit pour toi au dessus par exemple...! (même si moi seul ai fini par comprendre que tu parlais de mon programme de billes...)

Pour ton Jeu, tu devrais poster un nouveau sujet dans la rubrique "Débutant" ou "Jeux" par exemple... la structure des rubriques existe pour une meilleure organisation des sujets et que le plus grand nombre s'y retrouve un peu....

Ton projet :

Je te conseille fortement de te mettre de côté et même de te les imprimer, 3 rubriques essentielles à mon avis, dans l'aide de JustBasic :

- tape "view" dans la recherche, puis sélectionne la rubrique "(View Graphics Window Commands)" : cette page entière contient à peu près tout ce qui te permettra d'avancer avec les # graphiques.

- tape "Sprite Commands" en respectant les majuscules, puis sélectionne la rubrique "Sprite Commands" : là aussi tu trouveras quasiment tout ce qu'il faut sur les sprites.

- tape "Controls", puis sélectionne la rubrique "Controls - Menus, Buttons, Etc." : là aussi tu peux te le mettre de côté pour l'avoir toujours sous la main...


Il n'y a aucun masque à gérer avec JB/LB. Ils sont simplement dessinés dans les BMP comme tu l'as remarqué.
Tu confonds peut-être avec le background pour l'utilisation des sprites.

La commande "spritexy" a comme paramètre le x et le y, donc couvre toute directions ou positions possibles et imaginables.

Cesse de te biler au sujet des # : c'est juste une syntaxe.

Sert toi bien de l'aide.

Ce que tu voudrais faire au sujet de - #w.map "addsprite Be Boule1" - est parfaitement possible, je te prépare un autre petit bout de code pour te montrer.



@+



Edité par cassiope01 Le 12/03/2012 à 14h57
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Discussion Générale » Quelques propos..... Sur: Les exemples  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie