Petite question Glulx

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Petite question Glulx

Messagepar JB le Lun Mai 26, 2008 7:56 pm

Hello,

Pourriez vous m'aider avec ceci ?

Cette fonction :

glk_image_draw(gg_mapwin, 1, 0, 0);

permet d'afficher une image (notée 1) dans la fenêtre idoine.

Est il possible que les dimensions de l'image occupent 100% de la fenêtre ?

Merci d'avance pour vos réponses.

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar Otto Grimwald le Lun Mai 26, 2008 8:43 pm

désolé, je n'ai jamais utilisé cela. Mais cela m'intéresserait de savoir, car on pourrait utiliser cela pour "lieux communs", on a d'ailleurs un effet similaire dans "city of secrets" car cela affiche toujours le menu graphique sur la gauche à la hauteur maximale, en rééchantillonnant dans une bonne qualité les images.
Peut-être une piste ici ?

http://www.eblong.com/zarf/glk/glk-spec-070_7.html#s.2
(ou plus haut dans la page)

Je vois également que cette page
http://members.aol.com/doepage/glkdunces2.htm

présente une fonction qui pourrait correspondre : glk_image_draw_scaled

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Petite question Glulx

Messagepar JB le Lun Mai 26, 2008 9:04 pm

Yes !

Ok, alors on peut afficher des images scaled, ce qui nous permet d'avancer d'un pas.

Ce qu'il faudrait donc c'est récupérer la taille de la fenetre actuelle et faire un ratio avec la dimension de l'image.

Donc, la question du moment est donc : comment connaître la taille de la fenêtre ?

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar JB le Lun Mai 26, 2008 9:07 pm

Ok j'ai ma réponse :

glk_window_get_size

Donc, on a de quoi faire le nécessaire :-) merci Eric

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar JB le Lun Mai 26, 2008 9:49 pm

Et comme chuis cool :

[Affiche k graph_width graph_height;
if (gg_mapwin) {} else {
gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Proportional),100, wintype_Graphics, GG_MAPWIN_ROCK); }
!glk_image_draw(gg_mapwin, k, imagealign_InlineCenter, 0);
glk_window_get_size(gg_mapwin, gg_arguments,
gg_arguments+WORDSIZE);
graph_width = gg_arguments-->0;
graph_height = gg_arguments-->1;

glk_image_draw_scaled(gg_mapwin, k, 0, 0,graph_width,graph_height);
];

Affiche(k); pour afficher vos images en pleine fenetre, quelque soit la taille de votre lecteur :)
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar JB le Mar Mai 27, 2008 10:30 pm

Un petit résultat sympa :

http://ginko968.free.fr/paris.blb

Il suffit de cliquer sur l'image pour la changer.

Vous pouvez redimensionner l'interpreteur et cliquer, et hop, l'image revient à nouveau en pleine fenetre !

JB

ps : je ne suis pas sur une version images de filaments :)
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar Yoruk le Mer Mai 28, 2008 7:04 am

JB a écrit:http://ginko968.free.fr/paris.blb

Il suffit de cliquer sur l'image pour la changer.



Whaou ! Moi qui désespère de trouver comment utiliser la souris sous glulxe.... Peux-tu m'expliquer comment tu as fait ? merci
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Petite question Glulx

Messagepar Otto Grimwald le Mer Mai 28, 2008 7:06 am

pas mal du tout !

Reste à faire :
- s'arranger pour que l'image garde le bon ratio, en effet si on étire de trop l'interpréteur, l'image sera déformée.
- éventuellement faire un redimensionnement dynamique de l'image, qui se déclenche dès que l'on a fini de changer la taille de l'interpréteur (on a cela dans "city of secrets")
- nous fournir le détail du code de cette merveille :)

ps : j'espérais que c'était des photos d'une autre "Paris" ;)
ps2 : en fait non je n'espérais pas, mais si on veut que le grand public apprenne à installer lui-même un interpréteur il faut les motiver...

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Petite question Glulx

Messagepar JB le Mer Mai 28, 2008 9:55 pm

Voici la source :

http://ginko968.free.fr/paris.inf

En ce qui me concerne, je suis arrivé à faire ce dont j'avais besoin pour MON PROJET SECRET. Donc j'en coderai pas plus pour le moment dans ce sens là.

Concernant la conservation du ratio, c'est assez simple en récupérant la taille de l'image et en faisant un ratio.

Concernant le réarrangement dynamique, je pense à une solution efficace mais un peu brutale pour un enfant du "tour par tour" comme moi : tout simplement on active une fonction Glulx de temps réel et on lance "Affiche();" en permanence.

En marge de MON PROJET SECRET j'aimerais développer un petit kit de développement qui permettrait de faire faceilement des jeux genre Myst et avec tout ca on a presque l'essentiel.

A+

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar JB le Mer Mai 28, 2008 9:57 pm

J'ajoute une petite précision pour Yoruk : la souris ne fonctionne que dans des fenêtres graphiques (ou d'un autre type, mais en tout cas, pas dans la fenêtre d'input) - et hop, tu as gagné 3 heures de vie.

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar JB le Mer Mai 28, 2008 10:23 pm

Bon en fait c'est plus simple que ca, il vous suffit dans le code source fourni de remplacer la routine suivante :

[ HandleGlkEvent ev context abortres newcmd cmdlen;
switch (ev-->0) {
evtype_MouseInput:
glk_request_mouse_event(gg_mapwin);

if (ev-->2 >= 0 && ev-->2 < 1000
&& ev-->3 >= 0 && ev-->3 < 1000) {
glk_cancel_line_event(gg_mainwin, 0);
newcmd = "n";
cmdlen = PrintAnyToArray(abortres+WORDSIZE,
INPUT_BUFFER_LEN-WORDSIZE, newcmd);
abortres-->0 = cmdlen;
return 2;

}
if (ev-->2 >= 1 && ev-->2 < 2
&& ev-->3 >= 1 && ev-->3 < 2) {
glk_cancel_line_event(gg_mainwin, 0);
newcmd = "choix2";
cmdlen = PrintAnyToArray(abortres+WORDSIZE,
INPUT_BUFFER_LEN-WORDSIZE, newcmd);
abortres-->0 = cmdlen;
return 2;
}
evtype_Redraw, evtype_Arrange:
Affiche(1);
}
];


A la place de Affiche(1); à la fin, il faut mettre Affiche(k) avec k correspondant à l'image en cours.

Je vous uploade à nouveau le paris.blb si vous voulez une démo

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Petite question Glulx

Messagepar Yoruk le Jeu Mai 29, 2008 7:08 am

JB a écrit:En marge de MON PROJET SECRET j'aimerais développer un petit kit de développement qui permettrait de faire faceilement des jeux genre Myst et avec tout ca on a presque l'essentiel.


:D :D :D :D

Une des raisons pour laquelle je souhaiterait coder une aventure point and click sous Inform, c'est que je vais pouvoir profiter de la bonne gestion des lieux et objets (programmation facilitée, pas besoin d'apprendre à utiliser un autre logiciel) d'Inform. De plus, les jeux Inform sont compatibles avec toutes les plateformes existantes, ce qui est assez intéressant. Pour finir, je n'avais pas trouvé de logiciel qui me plaise pour créer de bonnes aventures.
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron