Programmer avec le langage Linotte

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Programmer avec le langage Linotte

Besoin d'un conseil sur la programmation en Linotte ?

Le Deal du moment :
Converse : -30% de remise sur tout le site !
Voir le deal

3 participants

Greffon Image 0.8

admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty Greffon Image 0.8

Message par admincpc Jeu 2 Fév - 16:44

Le greffon Image propose les mêmes fonctionnalités que l'espèce Graphique.

Il ajoute des fonctionnalités manquantes à l'espèce Graphique comme :
- la possibilité de demander à l'utilisateur de sélectionner l'image depuis le disque,
- extraction de la largeur de l'image,
- extraction de la hauteur de l'image.
- possibilité de coller l'image présente dans le presse-papier
- possibilité d'enregistrer l'image (à améliorer)
- possibilité de récupérer le code couleur d'un pixel de l'image

[php]
Greffon Image :

Principal :
Actions :
~greffon 1 image 0.8 "http://abaque.googlecode.com/files/Image.zgl"
Va vers traitement

Traitement :
Rôles :
d :: image, x vaut 230, y vaut 322, transparence vaut 90, taille vaut 20
e :: toile, couleur vaut "bleu"
Actions :
efface la toile
projette d&e
évoque d.sélectionneretouvrir()
("Il faut attendre que l'image soit chargée :")
attends .5 seconde
affiche "Chemin de l'image : " + image@d
affiche "Largeur de l'image : " + d.largeur()
affiche "Hauteur de l'image : " + d.hauteur()
tant que vrai, lis
tourne à droite d de 1
attends 0.01 seconde
ferme
[/php]

Ce deuxième exemple affiche des sprites qui ont été extraits d'une image contenant une collection de sprites :
(l'image everything.png est disponible [url=ici][/url])
[php]
Sprites :
grands rôles :
positions_bomberman :: casier de nombre <
- 8, 32, 56, 80, 104, 128, 152, 176, 200, 224, 248, 272, 296, 320, 344, 368, 392

Principal :
Actions :
~greffon 1 image 0.8 "http://abaque.googlecode.com/files/Image.zgl"
Va vers traitement

Traitement :
Rôles :
§map :: image, image vaut "everything.png"
§sprites :: casier de image vide
Actions :
efface la toile
pour chaque 8, lis
ajoute #map dans sprites
dy@(sprites{joker}) vaut 8
dy@(sprites{joker}) vaut 10 + 32*joker
y@(sprites{joker}) vaut hasard(400) + 20
x@(sprites{joker}) vaut hasard(400) + 20
hauteur@(sprites{joker}) vaut 23
largeur@(sprites{joker}) vaut 18
attache habillage à sprites{joker}
ferme
pour chaque sprites, projette joker
tant que vrai, lis
("On boucle sur les 17 positions possibles :")
pour chaque 17, lis
§index <
- joker
pour chaque sprites, lis
évoque joker.habillage(index)
ferme
attends 200 millisecondes
ferme
ferme

Habillage :
Rôles :
*moi :: image
*numéro :: nombre
Actions :
dx@moi vaut positions_bomberman{numéro}
retourne vrai
[/php]

Ce troisième exemple récupère une image de presse papier et l'enregistre :
[php]
Copier/Coller de la toile dans une image :

Principal :
Actions :
~greffon 1 image 0.8 "http://abaque.googlecode.com/files/Image.zgl"
va vers traitement

Traitement :
Rôles :
source :: image, x vaut 0, y vaut 0, transparence vaut 90, taille vaut 1, angle vaut 0
toile :: toile, couleur vaut "bleu"
presse :: pressepapier
Actions :
efface la toile
projette source & toile
évoque source.coller()
évoque source.sélectionneretenregistrer()
[/php]


Ce n'est que le début. D'autres fonctionnalités sont prévues comme :
- gestion du presse papier,
- effets comme : négatif, éclaircir, foncer.
- etc etc.

Le greffon peut-être téléchargé manuellement ici : http://abaque.googlecode.com/files/Image.zgl
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.1

Message par Wam Jeu 2 Fév - 22:53

Excellent ce greffon !
Merci beaucoup <img src=" title="Smile" />

Par contre on est obligé de projeter l'image avant de l'ouvrir.
Serait-il possible de pouvoir faire l'inverse ?
Pour deux raisons :

- après l'avoir ouverte je vérifie sa taille et si elle ne correspond pas, j'affiche un message d'erreur et je l'efface. Or, l'image à déjà eu le temps de s'afficher sur mon quadrillage.

- grâce à d.largeur() et d.hauteur(), je peux désormais centrer mon image dans les cases. Or, l'image s'affiche d'abord dans le coin de la case puis vient se positionner au centre.

Ou alors, il faudrait que je puisse rendre mon image invisible, le temps de faire les ajustements.

Sinon pour les fonctionnalités de prévues, pourrait-on ajouter la sélection simultanée de plusieurs images ?
Car on ouvre les images une par une, mais si on en à vingt à ouvrir...

Enfin, j'ai trop hâte à la gestion des sprites <img src=" title="Smile" />

Merci encore pour ce beau greffon <img src=" title="Smile" />
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.2

Message par admincpc Ven 17 Fév - 14:25

Le greffon est passé en version 0.2.
Il peut maintenant gérer les sprites !
J'ai ajouté un exemple dans le premier post.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.3

Message par admincpc Lun 20 Fév - 12:30

Le greffon est passé en 0.3
Il est plus rapide et moins consommateur de mémoire que le précédent pour afficher les sprites.
L'exemple est modifié. Il est complexe.... mais en même temps, il montre une façon intelligente de gérer les sprites.
Bonne programmation.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.1

Message par admincpc Mar 21 Fév - 9:00

Wam a écrit:
Par contre on est obligé de projeter l'image avant de l'ouvrir.
Serait-il possible de pouvoir faire l'inverse ?

Le bogue est corrigé est sera disponible dans la version 1.7 :
http://code.google.com/p/langagelinotte ... tail?id=54
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.3

Message par Wam Mer 22 Fév - 15:46

Heu, depuis l'installation du greffon image 0.3, je ne peut plus afficher d'image :/
Soit il s'agit d'un bogue, soit il faut mettre le premier exemple à jour.
avatar
zamirh
Senior Member


Messages : 340
Date d'inscription : 31/08/2010

Greffon Image 0.8 Empty RE: Greffon Image 0.3

Message par zamirh Mer 22 Fév - 15:55

Le premier exemple marche pas chez moi non plus.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.4

Message par admincpc Mer 22 Fév - 16:49

Oups, corrigé !
Une version 0.4 est disponible !
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.4

Message par Wam Jeu 23 Fév - 16:03

Depuis l'installation du greffon image 0.4, hauteur() et largeur() affiche -1 quand on charge l'image depuis un chemin d'accès (sans passer par sélectionneretouvrir() ).
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.5

Message par admincpc Jeu 23 Fév - 16:55

ça fonctionne chez moi.
Le chemin du fichier est bien valide ?
(ps, une version 0.5 est maintenant disponible)
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.5

Message par Wam Jeu 23 Fév - 17:22

Oui le chemin est bien valide.
Je poste la partie du code qui fait défaut :
Code:

Affichage_tiles :

Rôles :

§ tile est une image, position vaut 5
§ x_tile est un nombre <
- x de bordure_gauche
§ y_tile est un nombre <
- y de bordure_gauche
xx est un nombre
yy est un nombre
hors_champ_x est un nombre <
- 100
hors_champ_y est un nombre <
- 100
Actions :

("on vérifie si un quadrillage a été créé")
Si nombre_case == 0 alors lis
numéro_avertissement = 1
Tu vas vers fenêtre_avertissement
Reviens
ferme

incrémente index
Si index >
1 alors lis
x_tile = xx
y_tile = yy
ferme

ajoute tile dans casier_tiles

("si on charge une carte, on utilise le chemin d'accès sauvegardé")
Si sauvegarde_on == vrai alors lis
image de (casier_tiles{index - 1}) = chemin_tile
ferme
("si on ne charge pas de carte alors on laisse l'utilisateur choisir un tile")
Si sauvegarde_on == faux alors lis
évoque (casier_tiles{index - 1}).
sélectionneretouvrir()
ferme
("on projette le tile en dehors de la fenêtre, le temps de faire les vérifications")
déplace casier_tiles{index - 1} vers hors_champ_x et hors_champ_y
Projette casier_tiles{index - 1}
("Il faut attendre que l'image soit chargée :
")
attends 0.
1 seconde

largeur_tile = (casier_tiles{index - 1}).
largeur()
hauteur_tile = (casier_tiles{index - 1}).
hauteur()

("on vérifie que l'image ne dépasse pas de la case")
Si largeur_tile >
taille_case alors lis
Efface casier_tiles{index - 1}
tu ôtes casier_tiles{index - 1} de casier_tiles
numéro_avertissement = 2
Tu vas vers Fenêtre_avertissement
Tu reviens
ferme
Si hauteur_tile >
taille_case alors lis
Efface casier_tiles{index - 1}
tu ôtes casier_tiles{index - 1} de casier_tiles
numéro_avertissement = 2
Tu vas vers Fenêtre_avertissement
Tu reviens
ferme

("on déplace l'image au milieu de la case")
xx = x_tile + ((taille_case - largeur_tile) / 2)
yy = y_tile + ((taille_case - hauteur_tile) / 2)
déplace casier_tiles{index - 1} vers xx et yy

("quand on arrive à la dernière case du mini quadrillage, on affiche le tile suivant par dessus le premier tile")
Si index >
nombre_case2 alors lis
incrémente index_2
Si index_2 >
nombre_case2 alors index_2 = 1
Efface (casier_tiles{index_2 - 1})
casier_tiles{index_2 - 1} vaut tile
ferme

("on positionne les images suivantes")
x_tile = x_tile + taille_case
si x_tile est plus grand que (x de bordure_gauche) + (largeur de bordure_gauche - 1) - taille_case alors lis
x_tile = x de bordure_gauche
y_tile = y_tile + taille_case
ferme
si y_tile est plus grand que entier (nombre_case2 / ligne_complète) * taille_case alors lis
y_tile = y de bordure_gauche
ferme
xx = x_tile
yy = y_tile

drop_valide = vrai

Fais réagir casier_tiles{index - 1} à "clic souris" pour Drag

Si sauvegarde_on == vrai alors tu reviens


Il y a deux erreurs :
- si je charge mon image grâce au chemin enregistré dans un fichier, hauteur() et largeur() sont à -1. L'image ne se positionne donc pas au bon endroit.
Je n'ai pas cette erreur quand je charge mon image avec sélectionneretouvrir()

- dans les deux cas, mon image ne réagit pas au clic souris.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.5

Message par admincpc Ven 24 Fév - 9:39

Bonjour Wam,

Je viens de mettre à disposition cette première beta 1.7 :

Peux-tu l'installer :
https://langagelinotte.googlecode.com/f ... e_beta.zip

Puis de récupérer la version 0.6 du greffon Image.

Cpc
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.6

Message par Wam Ven 24 Fév - 15:57

Heu... Je n'arrive pas à installer correctement la version beta car je n'arrive pas à désinstaller Linotte 1.6. Maintenant quand je clique sur l'atelier, il m'ouvre le dossier compresser du désinstalleur avec winrar O_o
Je peux ouvrir l'atelier beta mais je suis obligé de passer par le fichier de commande debug.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.6

Message par admincpc Ven 24 Fév - 16:15

avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.6

Message par Wam Ven 24 Fév - 16:28

La version bêta est installée !
Par contre j'ai du supprimer les raccourcis de la version 1.6 car en essayant de la désinstaller, tous les raccourcis Linotte menait au fichier .rar du désinstalleur.

En tous cas, cette version bêta corrige les bogues rapportés hier, merci <img src=" title="Smile" />
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.6

Message par Wam Lun 12 Mar - 15:26

Bonjour,
n'ayant pas de nouvelles je re-signale l'erreur interne au greffon de sélectionneretouvrir().
Merci.
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.6

Message par admincpc Lun 12 Mar - 16:32

Bonjour Wam,

tu as la version 0.7 du greffon ?

Je ne rencontre pas de problème lors de mes tests.

cpc
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par Wam Lun 12 Mar - 17:17

Oui, j'ai même le problème avec l'exemple :
Code:

Copier/Coller de la toile dans une image :


Principal :

Actions :

~greffon 1 image 0.
7 "http:
//abaque.
googlecode.
com/files/Image.
zgl"
va vers traitement

Traitement :

Rôles :

source :
:
image, x vaut 0, y vaut 0, transparence vaut 90, taille vaut 1, angle vaut 0
toile :
:
toile, couleur vaut "bleu"
presse :
:
pressepapier
Actions :

efface la toile
projette source & toile
évoque source.
sélectionneretouvrir()
évoque presse.
copierzonetoile(10,10,50,50)
évoque source.
coller()
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par admincpc Mar 13 Mar - 10:00

Je n'arrive pas à reproduire ton bogue... étrange...
Peux-tu partager l'image que tu veux charger ?
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par Wam Mar 13 Mar - 13:33

L'image c'est celle de zamirh pour le bombernotte : "everything".
J'ai l'erreur avec toutes mes images, elle sont toutes au format PNG.
Voici le message d'erreur :
La valeur est incorrecte : Erreur interne au greffon !java.lang.NoSuchMethodError: org.linotte.imaginarium.ImageX.setAttribute(Ljava/lang/String;
Ljava/lang/String;
)V
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par admincpc Mar 13 Mar - 13:56

OK... c'est plus clair maintenant !
Il faut que tu télécharges la dernière beta !
http://langagelinotte.free.fr/forum/sho ... 20#pid5920
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par Wam Mar 13 Mar - 15:41

Je l'ai déjà téléchargé et installé mais visiblement l'ancienne version est toujours active.
Je voudrais donc désinstaller Linotte pour réinstaller proprement cette version bêta.
Hors, Linotte n'apparaît pas dans la liste des logiciels installés.
Le désinstalleur Linotte m'ouvre son archive .rar et ne désinstalle pas.
J'ai supprimé le dossier Linotte dans Program Files et l'atelier s'ouvre toujours.

Faut-il que je passe par l'éditeur de registre pour pouvoir supprimer Linotte ?
admincpc
admincpc
Site Admin


Messages : 1050
Date d'inscription : 03/11/2011

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par admincpc Mar 13 Mar - 15:51

dans le menu "démarrer" , tu dois avoir un desinstalleur.
Le problème, c'est que tu dois avoir les fichiers .jar associés au programme RAR.

Normalement, tu peux installer une version de Linotte par dessus l'autre sans problème....
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par Wam Mar 13 Mar - 16:07

C'est bon, ça fonctionne. Merci.
avatar
Wam
Senior Member


Messages : 585
Date d'inscription : 11/01/2012

Greffon Image 0.8 Empty RE: Greffon Image 0.7

Message par Wam Lun 26 Mar - 23:36

J'aurais besoin d'une fonction pour éclaircir/assombrir une image.
Sa me permettra de mettre l'image sélectionnée en surbrillance (ou la griser, je ne sais pas encore).
Merci.

Contenu sponsorisé


Greffon Image 0.8 Empty Re: Greffon Image 0.8

Message par Contenu sponsorisé


    La date/heure actuelle est Mar 30 Nov - 6:01