Forum Liberty Basic France

Annonces » Made in Japan Type de codage à éviter
Le 24/04/2012 à 15h10

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Cassiope, regarde un peu ce qu'on est obligé de faire, quand on arrive pas à dompter les sprites, et que le timer fait des caprices: InJapan.zip
J'ai réduit au maxi la taille et le nombre des images (bmp oblige...) et le prog' a été écrit par un type épuisé par l'extraction, la conversion, la réduction, la modification et le renommage de 200 images (le tout fait 250Mo); suivi d'un combat épique contre une armée de sprites en furie, et un timer issu tout droit du monde quantique.
Les boutons sont à utiliser en partant de la gauche.(codage porçin)
Les images sont tirées d'une anime en "swf" que tu peux trouver sur:"dagobah.net", et qui est vraiment géniale.
En bas à gauche: la signature de l'artiste (Japonais)
NOTA: N'ouvre pas le dossier "bmp" avant d'avoir fait tourner le prog... ça gache l'effet .
____________________
Roro

   
Le 24/04/2012 à 17h48

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Si il te viens des idées, il reste des images en stock.
Et une petite question: J'ai essayé d'emboiter des graphicsbox les unes dans les autres; ça n'a pas l'air évident.
Est-ce que je ne serais pas encore en train de chercher des oeufs dans la poche d'un kangourou ?



Edité par Roland Le 24/04/2012 à 18h06
____________________
Roro

   
Le 24/04/2012 à 18h51

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Et une petite question: J'ai essayé d'emboiter des graphicsbox les unes dans les autres; ça n'a pas l'air évident.
Est-ce que je ne serais pas encore en train de chercher des oeufs dans la poche d'un kangourou ?


Si si, comme d'habitude ;)

Roland:
Si il te viens des idées, il reste des images en stock.


Je voudrais juste savoir comment as-tu extrait les bmp du fichier swf ?

Le soucis c'est qu'il n'y a aucun sprite dans le code que tu donnes.
Je ne comprend pas ce que les commandes de Background et Drawsprites viennent faire là !!?
Il ne s'agit là que d'afficher des images bmp à une certaine cadence...!
De plus, tel que c'est écrit, la vitesse d'affichage dépendra du PC sur lequel le code sera lancé, alors qu'il vaudrait mieux n'utiliser que des Timer normalement assez indépendant de la puissance du PC.

A mon humble avis, ce n'est vraiment pas un exemple de code à suivre pour faire ça !


@+
____________________
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 24/04/2012 à 19h22

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Dans le code, il n'y a pas de sprite, mais j'en ai douze grand sacs poubelle dans mon entrée.
Les drawsprites, ils proviennent d'un bout de programme qui m'a servi d'amorce.
Tu n'a pas lu le sous titre du post ? Ce code a éte produit sur un coup de colère, et au copié/collé.
Pour récupérer les bmp du swf:
a)- A l'aide de: "freeScreenRecorder", j'ai capturé l'anime (avi), puis à l'aide d' "ImageGrab" j'ai capturé les images différentes (140). Avec: " PhotoScape", j'ai fais des "gifs" pour trier les images déterminantes. Avec: "11View", j'ai mis en "bmp", ce que j'aurais pu faire avec: "PicSizer", qui m'a servi à redimentionner.
Et je ne devrais pas te le dire, mais mon but réel, était de titiller ton perfectionnisme, pour voir ce que tu ferais de ce code. Mais tu me semble pris par d'autres occupations. Vivement que tu arrete de bosser, pour enfin employer ton intelligence à de vraies conneries.. ;) ..Salut du soir...
____________________
Roro

   
Le 24/04/2012 à 19h42

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Outch !

Je n'avais surtout pas compris que c'était toi qui avait écrit ce code ! :siffle :siffle

Scuses.
____________________
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 24/04/2012 à 19h58

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
C'est vraiment dommage qu'on soit limité par le volume, parce que cette anime m'inspire à bloc, mais pour faire quelque chose de bien, il faut compter un mini de vingt Mo. A moins bien sur de trouver une combine pour limiter le poids des images.
J'avais pensé à faire un ou deux backgrouwnd fixes, et à l'intérieur un petit cadre contenant l'image variable,
sur le meme fond. D'où mes essais de graphicsbox.
____________________
Roro

   
Le 25/04/2012 à 10h33

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Tu peux essayer ça si tu veux.
Sachant que tu peux facilement y ajouter autant d'images que tu veux par séquence, mais aussi d'autres séquences (un peu plus de code à prévoir)

Code VB :
nomainwin
 
    WindowWidth = 300
    WindowHeight = 240
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    mois$ = "Jan Fév Mar Avr Mai Jun Jui Aou Sep Oct Nov Déc"
    today$ = date$("mm/dd/yyyy")
    j = date$(today$)
    jsem$ = word$("Mar Mer Jeu x Ven Sam x Dim Lun",int((j/7-int(j/7))*10)+1)
    date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+"   "+left$(time$(),5)'right$(today$,4)

    GLOBAL ajust$, tir$, sequence
    DIM info$(10,10),sequence$(5)
 
    ajust$ = "0uc 0ub 0ua 0 1da 2db 2dc 2dd"
    tir$ = "3 4 5"
    sequence$(1) = "35a 35b 35c"
    sequence$(2) = "37 38 39 40 43 44 45 46 47 48 "          '
    sequence$(3) = "50 51 52 53 54 55 56 57 58 59 60 61 "    ' groupes d'images qui constituent les animations
    sequence$(4) = "65 66 67 68 69 70 71 72 73 74 75 76 "    '
    sequence$(5) = "81 82 83 84 85 86 87 88 89 90 91 92 "    '

    'charge en mémoire les images d'ajustement du tir
    for i = 1 to 8 :loadbmp "img"+word$(ajust$,i), "bmp\"+word$(ajust$,i)+".bmp" :next
    'charge en mémoire les images du tir
    for i = 1 to 3 :loadbmp "img"+word$(tir$,i), "bmp\"+word$(tir$,i)+".bmp" :next
    'charge en mémoire les images d'attente
    for i = 1 to 3 :loadbmp "img"+word$(sequence$(1),i), "bmp\"+word$(sequence$(1),i)+".bmp" :next
    'charge en mémoire les images d'évitement
    for s = 2 to 5
        nbi = int(len(sequence$(s))/3)
        for i = 1 to nbi :loadbmp "img"+word$(sequence$(s),i), "bmp\"+word$(sequence$(s),i)+".bmp" :next
    next
 
    graphicbox #w.g, 10, 10, 241, 137
   ' button #w.b, "Start",[start],UL, 10, 160
   ' button #w.b, "Arm",[arm],UL, 60, 160
    button #w.b, "Tir",Tir,UL, 100, 160
    button #w.b1, "+3",ajusteTir,UL, 260, 10
    button #w.b2, "+2",ajusteTir,UL, 260, 36
    button #w.b3, "+1",ajusteTir,UL, 260, 62
    button #w.b4, "00",ajusteTir,UL, 260, 88
    button #w.b5, "-1",ajusteTir,UL, 260, 114
    button #w.b6, "-2",ajusteTir,UL, 260, 140
    button #w.b7, "-3",ajusteTir,UL, 260, 166
    open "In Japan..."+space$(10)+date$ for window_nf as #w
    #w "trapclose quit"
    #w.g "down"
 
    call attente
 
    WAIT
 
    sub attente
        sequence = 1
        DO
            call anime sequence
            call pause 250
        LOOP UNTIL sequence <> 1   'sequence est modifié dès qu'on presse un bouton...
    end sub
 
    sub Tir handle$
        if sequence = 1 then sequence = 4  'si aucun bouton d'ajustement n'a été pressé...
        for i = 1 to 4
            #w.g "drawbmp img";word$("0 3 4 5",i);" 0 0"  'séquence de tir.
            call pause 200
        next
        call anime sequence    'lancement de la sequence d'évitement
        call pause 1000
        call attente      'retour à la sequence d'attente
    end sub
 
    sub ajusteTir handle$  ' réglage de la mire ;)
      'affiche une image et sélectionne une séquence en fonction du bouton pressé.
        image = val(right$(handle$,1))
        #w.g "drawbmp img";word$(ajust$,image);" 0 0"
        select case image
        case 1,2
            sequence = 2
        case 3
            sequence = 3
        case 4,5
            sequence = 4
        case 6,7
            sequence = 5
        end select
    end sub
 
    sub anime seq       ' routine générique d'animation
        nbi = int(len(sequence$(seq))/3)
        for i = 1 to nbi
            #w.g "drawbmp img";word$(sequence$(seq),i);" 0 0"
            call pause 100
        next
    end sub
 
    sub pause temp   'pause en millisecondes
        timer temp, [temps]
        wait
        [temps]
        timer 0
    end sub
 
    sub quit handle$
        for i = 1 to 8 :unloadbmp "img"+word$(ajust$,i) :next
    'décharge les images du tir
        for i = 1 to 3 :unloadbmp "img"+word$(tir$,i) :next
    'décharge les images d'attente
        for i = 1 to 3 :unloadbmp "img"+word$(sequence$(1),i) :next
    'décharge les images d'évitement
        for s = 2 to 5
            nbi = int(len(sequence$(s))/3)
            for i = 1 to nbi :unloadbmp "img"+word$(sequence$(s),i) :next
        next
        close #handle$
        END
    end sub


Bon il reste un petit bug que je ne parviens pas à résoudre pour l'instant, mais j'ai fait ça à l'arrache comme d'hab !

@+



Edité par cassiope01 Le 25/04/2012 à 11h31
____________________
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 25/04/2012 à 13h29

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Punaise ! ça déménage !
Dis donc, les sub's, tu les a au prix de "gros". ;)
Moi qui les crains comme la peste, ce coup-çi, soit je guérri, soit je crève.

Ce qui me trouble (en première lecture), c'est que dans: "sub anime seq", 'anime seq' a l'air de n'etre qu'un nom, pendant que dans: "sub anime sequence", 'anime' est un nom et: 'sequence', est un paramètre.

Dans: "sub pause temp", 'temp', est un paramètre, et: 'pause' a l'air d'etre le nom du paramètre.

Dans "jeuRoland" call cascade bx, by on prend deux variables présentes localement que l'on place dans le (sac que tient 'cascade'). A l'arrivée: (sub cascade) on prend ce qui est dans le sac, et on peut en changer le nom.
En résumé: "call" et "sub" sont composées de deux choses: un nom et un sac ( dans lequel on peut mettre soit des variables présentes localement, (ou non?) soit une valeur 'autoritaire'( call pause 1000).
Si tu arrive à remettre tout cela dans l'ordre, donne moi ton avis sur ma compréhension de la chose.
Tu n'a pas dis comment le "bug" se manifeste. :miam
____________________
Roro

   
Le 25/04/2012 à 13h50

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 203
Salut !

Roland:
Dans: "sub pause temp", 'temp', est un paramètre, et: 'pause' a l'air d'etre le nom du paramètre.


La syntaxe d'une procédure, c'est :
sub nom_de_la_procedure parametre_1, parametre_2, ..., parametre_n

Ensuite, si tu veux utiliser ta procédure dans le programme, il faut l'appeler comme ceci :
call nom_de_la_procedure parametre_1, parametre_2, ..., parametre_n

Dans la création, les paramètres sont toujours des variables locales
Dans l'appel, les paramètres sont soit des variables, soit des valeurs directement.

Petit tuto sur les fonctions et procédures : http://libertybasic.fr/pages/partie-i-6-les-fonctions-et-les-sub


++
Black Templar

Mail MSN Web    
Le 25/04/2012 à 14h12

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Donc, j'ai bon.
Le tuto, je l'ai sur mon disque, mais je reconnais que je n'ai lu qu'une seule fois, voila ou est l'erreur. ;)
____________________
Roro

   
Le 25/04/2012 à 15h14

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Merci Black ;)

Décidément Roland perçoit JB toujours bien plus compliqué que ça ne l'est en réalité :siffle

Roland:
Tu n'a pas dis comment le "bug" se manifeste. :miam

Si tu ne l'as pas vu, c'est qu'il n'est peut-être pas bien grave :siffle :top



Edité par cassiope01 Le 25/04/2012 à 15h18
____________________
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 25/04/2012 à 17h52

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Quand on les a comprises, les choses sont simples; avant, beaucoup moins, et quand j'ai lu le tuto pour la première fois, j'étais loin de m'inquiéter des sub's.
Le bug, je ne l'ai pas vu parce que je n'ai pas trop fait tourner le prog. Je suis trop occupé avec le code.
A ce propos, ton "arrache" est drolement efficace, c'est la grande classe ce code. :top
Je me suis inscrit chez les anglais (américains?) Juste pour avoir deux putains de licences. Le bazard a pas l'air d'etre au point.
Aprés m'avoir annoncé deux fois "error occured", j'ai reçu deux mails me confirmant deux inscriptions, avec un password différent de celui que j'ai donné ?!?
Par le "Reply" de leur mail, j'ai envoyé mes désirs en "frangloiin" Mais je ne crois pas que le "reply" de la Gbox fonctionne, je l'ai utilisé plusieurs fois, je n'ai jamais eu de réponse.
Toi qui est branché avec eux, tu pourrait peut etre me relayer. La question est:
-Quel nom mettre pour le bénéficiaire du mandat international ? ......a+.....
____________________
Roro

   
Le 26/04/2012 à 18h47

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Comme je ne l'ai pas encore fait, je te remercie pour cette belle horlogerie. :top
Je ne suis pas encore tout à fait capable de l'exploiter dans son ensemble, mais plusieurs engrenages ont rejoints ma reserve, et les sub's sortent du brouillard plus prometteuses que jamais....à suivre....Good long.
____________________
Roro

   
Annonces » Made in Japan Type de codage à éviter  

 |  |

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