Win3x.Org

Windows & DOS Community

Gauvain OS

Répondre   Page 7 sur 31  [ 308 messages ]
Aller sur la page « 15 6 7 8 931 »
Auteur Message
corwintirnanog
Sujet du message :
Publié : 03 nov. 2007 19:26
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
...c'est pour les performance.
Qb dispose d'une instruction toute prete qui impriment des variable precedemment remplient avec GET a l'ecran
On fait un PUT (x,y),Variable.

C'est bien car sa economise beaucoup de performance que de réécrire la bitmap. Ainsi on fait un :

Dim background(307200)

WritteBmp(Conf$(4)) 'on ecrit la bitmap a l'écran
GET(0,0)-(640,480),Background 'on remplie la variable avec l'image.
et au besoin :
PUT(0,0),Background 'pour ecrire la bitmap extremement plus rapidement qu'avec la fonction WritteBmp

Le bleme, c'est que un tableau de 307200 (640x480) variable ne peut etre declaré.
.
Euh...
je ne suis pas sûr de comprendre mais j'ai l'impression que c'est ta méthode qui est lente:
Il faut éviter de réserver des grands tableaux à chaque instant, ni de les envoyer à l'écran simplement pour changer un bit.

En fait il faut gérer plusieurs écrans en mémoire dans des tableaux (l'écran n et n+1, le fond et le premier plan etc) et c'est seulement quand le tableau contient un écran complet prêt à afficher que tu fais le
WritteBmp. Relis aussi mon post précédent.

En résumé fait le moins de réservation possible de tableau et le moins possible de transfert de ces tableaux vers l'écran et tout ira beaucoup plus vite ;-)


Haut
Profil Citer
victornement
Sujet du message :
Publié : 03 nov. 2007 20:03
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Et !! tu semble croire que gauvain est perfectionné corwintirnanog, mais quant je te dit que faire une interface graphique pas perfectionné du tout est facile, c'est pas pour rien.
Jete donc un coup d'oeil au sources de Gauvain et Flowers.
En faite, je ne stocke rien en memoire.
Mais pour ta comprension (tu connais pas QB), je vais schématiser :

1] On fait appel à des tas de fonctions qui dessinent sur l'ecran.
2]Une fois l'ecran pret et bien dessiné, on fait une boucle qui surveille la position et l'etat de la souris + le clavier.
3](si on detecte un clic) on appel la fonction correspondante.
4]La fonction fait appel a d'autres fonctions qui dessines l'ecran.
5]La fonction fait une boucle pour gerer les evenement.

Donc en fait rien n'est guardé en memoire, on ecrit l'interface en dur depuis le programme.
(enfin... on fait quant meme varié des valeur selon le contenu des fichiers de config)

Donc gauvain, flowers, apopis sont tres simples a programmer, lourd, et le code est nul :lol:

_________________

Salut


Haut
Profil Citer
Nnay
Sujet du message :
Publié : 04 nov. 2007 17:20
 
 
Ma fonction PHP pour sortir des noms au pif (j'ai fait un petit moteur de rpg et j'ai fait en sorte que ça propose un nom aléatoire à chaque personnage) :
function nom_a_la_con() {
        $voyelles = array ("a", "e", "i", "o", "u", "y");
        $accents = array("é", "è");
        $accents_majuscules = array ("É", "È");
        $consonnes = array ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z");
        $nom = "";
        $mode = rand(1,2);
        $n = rand(3,7);
        $debut = 1;
        for($i=1;$i<=$n;$i++) {
                if($mode == 1) {
                        if(rand(1,10) == 10) {
                                if($debut == 1) { # Les accents ne passent pas à strtoupper
                                        $lettre = $accents_majuscules[rand(0,1)];
                                        $debut = 0;
                                } else {
                                        $lettre = $accents[rand(0,1)];
                                }
                        } else {
                                $lettre = $voyelles[rand(0,5)];
                        }
                        $mode = 2;
                } else {
                        $lettre = $consonnes[rand(0,19)];
                        $mode = 1;
                }
                if($debut == 1) {
                        $lettre = strtoupper($lettre);
                        $debut = 0;
                }
                $nom .= $lettre;

        }
        return $nom;
}


Haut
Citer
victornement
Sujet du message :
Publié : 04 nov. 2007 17:36
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Citation :

Ajezew;Egy;Ebasyf;Rém
Ilitak;Bypéq;Babyqa;Ciguny
Dukewak;Piqélo;Ixeqoce;Esywym
Urew;Yjè;Ana;Jèga
Vosaxe;Onenyje;Osixi;gim
Avin;Rat;Èrod;Idegy
Tyvez;Éséq;Fowix;Ifib
Onabyzo;Sym;Ruda;Tyfo
Véfut;Uwewu;Èvihege;Umu
Utenowa;Dajize;Vih;Wajere
Hofyqil;Egixofa;Iwuz;Dowot
Otys;Ézel;Céxugo;Lebe
Uzo;Cyl;Ygylu;Fus
Osedudo;Halobaq;Fix;Ytu
Quj;Duroji;Xobasut;Ocaluto
Èjufybi;Nylydet;Hyduqop;Ywujaf
Lim;Yticy;Zez;Zufyt
Byf;Labu;Aqig;Lerej
Qèg;Enokyzu;Penev;Falusy
Cequ;Baj;Qèlo;Sovel
Kybéji;Oqyr;Uruwite;Equj
Afama;Wamokif;Èqu;Oxykéfé
88 petits noms.. :)
Personnellement, j'ai toujours eu du mal à trouver des nom sans rien.

_________________

Salut


Haut
Profil Citer
Maxoul
Sujet du message :
Publié : 06 nov. 2007 01:21
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 179
Inscription : 05 juil. 2004 11:17
 
Nan.. jusqu'a la version 3.0 ou 3.1, l'affichage était lent parceque je retracé a chaque fois le BMP. Et aprés j'ai eu THE revelation ! ^^
C'est a dire que je stockais l'image de fond d'écran via je sais plus quelle commande et je la reaffichais en 1/100eme de seconde !

Pour sa part Flowers OS compte 2087 ligne de code tapé avec les pieds, mal optimisé, rempli de GOTO, d'étiquette incompréhensible, ainsi qu'une absence quasi-total de ligne de commentaire :lol:


Haut
Profil Citer
Dr Frankenstein
Sujet du message :
Publié : 24 nov. 2007 20:40
Membre d'honneur
Hors-ligne
 
Messages : 418
Inscription : 28 oct. 2004 01:31
 
victornement a écrit :
Citation :

Ajezew;Egy;Ebasyf;Rém
Ilitak;Bypéq;Babyqa;Ciguny
Dukewak;Piqélo;Ixeqoce;Esywym
Urew;Yjè;Ana;Jèga
Vosaxe;Onenyje;Osixi;gim
Avin;Rat;Èrod;Idegy
Tyvez;Éséq;Fowix;Ifib
Onabyzo;Sym;Ruda;Tyfo
Véfut;Uwewu;Èvihege;Umu
Utenowa;Dajize;Vih;Wajere
Hofyqil;Egixofa;Iwuz;Dowot
Otys;Ézel;Céxugo;Lebe
Uzo;Cyl;Ygylu;Fus
Osedudo;Halobaq;Fix;Ytu
Quj;Duroji;Xobasut;Ocaluto
Èjufybi;Nylydet;Hyduqop;Ywujaf
Lim;Yticy;Zez;Zufyt
Byf;Labu;Aqig;Lerej
Qèg;Enokyzu;Penev;Falusy
Cequ;Baj;Qèlo;Sovel
Kybéji;Oqyr;Uruwite;Equj
Afama;Wamokif;Èqu;Oxykéfé
88 petits noms.. :)
Personnellement, j'ai toujours eu du mal à trouver des nom sans rien.
T'es pas seul.
Maxoul a écrit :
Nan.. jusqu'a la version 3.0 ou 3.1, l'affichage était lent parceque je retracé a chaque fois le BMP. Et aprés j'ai eu THE revelation ! ^^
C'est a dire que je stockais l'image de fond d'écran via je sais plus quelle commande et je la reaffichais en 1/100eme de seconde !
Double-buffer ?

_________________

Introducing Windows 95.
It lets you use more than eight characters to name your files. Imagine that. ~Apple.


Haut
Profil Citer
victornement
Sujet du message :
Publié : 24 nov. 2007 22:27
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Nan, il stocke dans un fichier binaire l'image bitmap (c'est bien plus rapide que de réafficher la bitmap en la decodant).

On définit l'offset et le segment a la position ou l'image va etre eneregistrer (dans la ram) et on l'y charge a partir de la fonction pres integré load ou je sais plus quoi.
Et apres c simplement que la variable qui contient l'image a changer de valeur, mais on la fait a la main. Apres, on appel la fonction Put (X,Y),Variable image qui affiche l'image a l'ecran.

Note : et oui ! on peut jouer avec les offset et les segments en Quick Basic.

_________________

Salut


Haut
Profil Citer
Dr Frankenstein
Sujet du message :
Publié : 24 nov. 2007 22:36
Membre d'honneur
Hors-ligne
 
Messages : 418
Inscription : 28 oct. 2004 01:31
 
victornement a écrit :
Nan, il stocke dans un fichier binaire l'image bitmap (c'est bien plus rapide que de réafficher la bitmap en la decodant).

On définit l'offset et le segment a la position ou l'image va etre eneregistrer (dans la ram) et on l'y charge a partir de la fonction pres integré load ou je sais plus quoi.
Et apres c simplement que la variable qui contient l'image a changer de valeur, mais on la fait a la main. Apres, on appel la fonction Put (X,Y),Variable image qui affiche l'image a l'ecran.

Note : et oui ! on peut jouer avec les offset et les segments en Quick Basic.
O_o je croyais que le QB était plus... basique...

_________________

Introducing Windows 95.
It lets you use more than eight characters to name your files. Imagine that. ~Apple.


Haut
Profil Citer
victornement
Sujet du message :
Publié : 25 nov. 2007 09:24
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Ben en faite je pense que QB est mal conçut.
Les fonction préintrégré ont toute une synthaxe differente de celles qu'on créé.
Les variable ont une definission du type particuliere :
dim A as string
dim A$

Ici A et A sont deux variables de type chaine.
Mais il y a des fonction graphique qui permettent de faire des petit jeu extrement sympa. (Line, Get, Put, Circle, paint, color.....).
Et il y en a une dont je ne me souvient plus le nom qui est tres perfectionner et trace tout ce qu'on lui demmande.
D'aillleur, je pense qu'on peut manipuler offset et segment pour companser la lenteur normale de QB.
Quoi qu'il en soit, jouer avec offset et segment peut permettre de se familiariser avec et de passer a des truc de moins haut niveau.

_________________

Salut


Haut
Profil Citer
Maxoul
Sujet du message :
Publié : 01 déc. 2007 10:19
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 179
Inscription : 05 juil. 2004 11:17
 
Dr Frankenstein a écrit :
victornement a écrit :
Nan, il stocke dans un fichier binaire l'image bitmap (c'est bien plus rapide que de réafficher la bitmap en la decodant).

On définit l'offset et le segment a la position ou l'image va etre eneregistrer (dans la ram) et on l'y charge a partir de la fonction pres integré load ou je sais plus quoi.
Et apres c simplement que la variable qui contient l'image a changer de valeur, mais on la fait a la main. Apres, on appel la fonction Put (X,Y),Variable image qui affiche l'image a l'ecran.

Note : et oui ! on peut jouer avec les offset et les segments en Quick Basic.
O_o je croyais que le QB était plus... basique...
C'est avec un projet comme Flowers OS que je voulais justement briser cette idée reçu !


Haut
Profil Citer
Afficher : Trier par : Ordre :
Répondre   Page 7 sur 31  [ 308 messages ]
Revenir à « Projets abandonnés » | Aller sur la page « 15 6 7 8 931 »
Aller :