• 18 Avril 2024, 09:40:28


Auteur Sujet: [Résolu]Image pour toute les résolutions  (Lu 3043 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne ~CG~FatalTerror

  • *
  • Criminel
  • Messages: 41
    • Voir le profil
[Résolu]Image pour toute les résolutions
« le: 01 Juin 2011, 14:12:36 »
Bonjour,
Me revoilà  :-\

Voila mon problème:

Je fessait un userpanel entièrement fait en images. Et je me suis rendu compte grâce a des joueurs que il avait des positions très étranges.
Y a des scripters qui m'ont dit qu'il fallait faire un calcule pour l'afficher correctement avec toute les résolutions.
Je suis allait chercher sur le wiki et j'ai trouvé ceci: guiGetScreenSize () ( http://wiki.multitheftauto.com/wiki/GuiGetScreenSize )

Ils me disent de faire une soustraction, moi j'ai fait le gui comme sa.
Citer
guiCreateStaticImage(1204,642,154,119,"images/fr.png",false)

J'ai fait ceci:

Left position value is 1204, 1024-1204= -180
Top position value is 642, 768-642 = 126
Right position values is 154, 1024-154 = 870
Bottom position value is 119, 768-119 = 649

(Je l'ai fait avec la calculatrice)

Citer

function imageShow ()
local sWidth,sHeight = guiGetScreenSize() -- The variables
guiCreateStaticImage(sWidth--180,sHeight-126,sWidth-870,sHeight-649,"images/fr.png",false)
end
 
addEventHandler ( "onClientResourceStart", getRootElement(), imageShow)


Et cela ne marche pas :/
Soit mon ordi est tellement vieux qu'il a fait une erreur de calcule ou je sais pas.
Merci de bien vouloir m'aider (encore une fois  ::) )

« Modifié: 18 Juin 2011, 23:04:31 par ~CG~FatalTerror »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #1 le: 01 Juin 2011, 14:44:04 »
Héhé, j'avais eu le même problème sur le serveur MTA que je code actuellement, bah en gros je t'explique.

Tu fais ton image pour du 1920*1080, ensuite tu prend la taille de l'écran du client, et tu fais ça


local x, y = getScreenSize( )
local rateX, rateY = x/1920, y/1080

guiCreateStaticImage(1204,642,154*rateX,119*rateY,"images/fr.png",false)


edit: sWidth--180 c'est pas bon vu que tu as deux -, et en lua deux - c'est pour commenter une ligne ^^

ensuite pour faire en sorte que les positions soit bonne il faut que tu débrouille :D, ça part du même principe ^^
« Modifié: 01 Juin 2011, 15:24:47 par Ssk »



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Image pour toute les résolutions
« Réponse #2 le: 01 Juin 2011, 18:06:00 »
Salut,
Alors il faut savoir qu'en relatif ( de 0 à 1 ) ça marche pour toutes les résolutions donc si on place une image à 50% ( = milieu ) d'un écran avec une résolution de 800*600, l'image sera aussi située au milieu sur un écran avec une résolution de 1366*768. Logique non ? :happy
Donc le but c'est d'afficher l'image en relatif et non pas en relatif.
D'après ce que j'ai compris, tu es en 1024*768.
/?\ Mais 1204, ça fait combien en pourcentage /?\
Et bien c'est tout simple, il suffit de diviser le nombre par la résolution du jeu.
Donc si en 1024*768, il suffit de faire: 1204/1024=1.17 (  ??? Il y a un problème là, ça ne devrai pas dépassé 1 sinon il sera placé en-dehors de l’écran ! )
Il me faut la résolution de MTA pour laquelle l'image est bien placée.
Voici le code final:
Code: (lua) [Sélectionner]
function imageShow ()
----------- METRE EN RELATIF -------------
local px, py = AbsoluteToRelative( 1204, 642 ) -- mettre la position en relatif
local sx, sy = AbsoluteToRelative( 154, 119 ) -- mettre la size en relatif
----------------- AFFICHER ---------------
guiCreateStaticImage(PX,PY,SX,SY,"images/fr.png",true)
end
addEventHandler ( "onClientResourceStart", getRootElement(), imageShow)

function AbsoluteToRelative( x, y )
local X = x/1024
local Y = y/768
return X,Y
end
Par contre tu dois remplacer 1024 et 768 par la résolution de ton MTA.
Après ça c'est tout bon  :king
The rEvolution is coming ...

Hors ligne MK

  • *
  • Gangster
  • Messages: 1844
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #3 le: 03 Juin 2011, 22:28:06 »
J'ai le même probléme que fatalterror et
j'ai utilisé ta méthode:

Code: ("Lua") [Sélectionner]
function imageShow ()
----------- METRE EN RELATIF -------------
local px, py = AbsoluteToRelative( 1200, 0 ) -- mettre la position en relatif
local sx, sy = AbsoluteToRelative( 450, 100 ) -- mettre la size en relatif
----------------- AFFICHER ---------------
guiCreateStaticImage(px,py,sw,sy,"image.png",true)
end
addEventHandler ( "onClientResourceStart", getRootElement(), imageShow)

function AbsoluteToRelative(x,y)
local x, y = getScreenSize( )
local X = x/1680
local Y = y/1050
return X,Y
end

j'ai modifier pour essayer de le faire marcher, mais aucune image n'était visible

merci de m'aider

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Image pour toute les résolutions
« Réponse #4 le: 03 Juin 2011, 23:22:32 »
Salut MK,
Es-tu sûr que c'est ma méthode ? Regarde bien :happy
Cette ligne n'a pas lieu d'être:
Code: (lua) [Sélectionner]
local x, y = getScreenSize( )car là tu essayes de mettre en relatif ta résolution d'écran  :lmao
donc cette fonction revoie toujours 1, 1 si tu es en 1680*1050
Il te suffit juste de supprimer cette ligne et ça marchera  :closedeyes

Cordialement,
Citizen
The rEvolution is coming ...

Hors ligne MK

  • *
  • Gangster
  • Messages: 1844
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #5 le: 04 Juin 2011, 19:25:11 »
même rien ne se passe

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Image pour toute les résolutions
« Réponse #6 le: 04 Juin 2011, 20:42:50 »
Ok donne moi ton guiCreateStaticImage et la résolution de ton MTA pour laquelle l'image est bien placé et de la bonne taille.
Je te ferais le code et tu pourras voir comment j'ai fait.
The rEvolution is coming ...

Hors ligne MK

  • *
  • Gangster
  • Messages: 1844
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #7 le: 04 Juin 2011, 21:27:56 »
function imageShow ()
----------- METRE EN RELATIF -------------
local px, py = AbsoluteToRelative( 1200, 0 ) -- mettre la position en relatif
local sx, sy = AbsoluteToRelative( 450, 100 ) -- mettre la size en relatif
----------------- AFFICHER ---------------
guiCreateStaticImage(px,py,sw,sy,"image.png",true)
end
addEventHandler ( "onClientResourceStart", getRootElement(), imageShow)

function AbsoluteToRelative(x,y)
local X = x/1680
local Y = y/1050
return X,Y
end

résolution: 1680x1050
taille image: 450x100
position: 1200 - 0 ? (normalement elle devrait être en haut à gauche)

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Image pour toute les résolutions
« Réponse #8 le: 05 Juin 2011, 11:42:40 »
Ok d'accord j'ai fait une erreur: tu aurais pu me dire que qu'il y avait une erreur, sw n'est pas définie ( nil value ) remplace sw par sx faute de frappe désolé  :lmfao
Pour les erreurs côté client, les erreurs ne se trouve pas dans la console ( comme pour les erreurs du côté serveur )
Tu as 2 solutions:
1) taper /debugscript3 ( tu verras toutes les erreurs clients et serveur )
2) Aller dans C:\....\MTA San Andreas\MTA\clientscript.log pour les erreurs côté client seulement.

l'image devrait apparaître ( mais 1200, 0 c'est en haut à droite et pas à gauche  :happy)
The rEvolution is coming ...

Hors ligne MK

  • *
  • Gangster
  • Messages: 1844
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #9 le: 05 Juin 2011, 11:44:08 »
je suis complétement soul moi, en effet j'avais pas vu la fautes, pourtant je suis repassé trois fois dessus.
merci!


Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Image pour toute les résolutions
« Réponse #10 le: 05 Juin 2011, 12:51:14 »
Pas de souci et désolé pour cette faute de frappe ( qui a fait perdre pas mal de temps  :dry )
The rEvolution is coming ...

Hors ligne ~CG~FatalTerror

  • *
  • Criminel
  • Messages: 41
    • Voir le profil
Re : Image pour toute les résolutions
« Réponse #11 le: 18 Juin 2011, 23:04:13 »
Probleme de maikill résolu, le mien aussi :D

Merci a vous !