Jump to content

Aiuto!


Recommended Posts

Posted

Ho 5 parole da disegnare nello schermo tramite funzioni Dx, e finora sono riuscito a fare questo:

http://imageshack.us/photo/my-images/849/xmhl.png

usando questo codice:

local screenX,screenY = guiGetScreenSize() 
      
    local widthRec = screenX 
    local heightRec = 0 
    local startXrec = 0 
    local startYrec = screenY 
    local alpha = 0 
    local offsetY = 90 
    local offsetX = 90 
    local startXlbl = 0 
    local startYlbl = screenY 
      
    local statsLabelDatas = {text = "#236B8E[#FFFFFFStats#236B8E]", x = startXlbl, y = startYlbl} 
    local shoponeLabelDatas = {text = "#236B8E[#FFFFFFShop #D9D919##FFFFFF1#236B8E]", x = startXlbl, y = startYlbl} 
    local shoptwoLabelDatas = {text = "#236B8E[#FFFFFFShop #D9D919##FFFFFF2#236B8E]", x = startXlbl, y = startYlbl} 
    local rankingLabelDatas = {text = "#236B8E[#FFFFFFRanking#236B8E]", x = startXlbl, y = startYlbl} 
    local settingLabelDatas = {text = "#236B8E[#FFFFFFSettings#236B8E]", x = startXlbl, y = startYlbl} 
      
    function fadeInGui() 
        heightRec = heightRec - 2 
        alpha = alpha + 7 
        if offsetY >= 25 then 
            offsetY = offsetY - 2 
            offsetX = offsetX - 2 
        end 
    end 
      
    function fadeOutGui() 
        heightRec = heightRec + 2 
        alpha = alpha - 7 
        if offsetY <= 90 then 
            offsetY = offsetY + 2 
            offsetX = offsetX + 2 
        end 
    end 
      
    function drawDxGuiBase() 
        dxDrawRectangle(startXrec, startYrec, widthRec, heightRec ,tocolor(0,0,0, alpha), false) 
        
        local items = {statsLabelDatas, shoponeLabelDatas, shoptwoLabelDatas, rankingLabelDatas, settingLabelDatas} 
        local offset = ((screenX-offsetX) / tonumber(#items)) 
      
        for i=1, #items do 
            if i == #items then 
                dxDrawText ( items[i].text:gsub('#%x%x%x%x%x%x', '') , items[i].x + (offset*i) + 1, items[i].y - offsetY + 1, items[i].x + (offset*i) + 1, items[i].y - offsetY + 1, tocolor(0,0,0, alpha), 1.01, "bankgothic", "center", "center", false, false, false, true) 
                dxDrawText ( items[i].text , items[i].x + (offset*i), items[i].y - offsetY, items[i].x + (offset*i), items[i].y - offsetY, tocolor(0,0,0, alpha), 1, "bankgothic", "center", "center", false, false, false, true) 
            else 
                offset = offset - string.len(items[i+1].text:gsub('#%x%x%x%x%x%x', '')) 
                dxDrawText ( items[i].text:gsub('#%x%x%x%x%x%x', '') , items[i].x + (offset*i) + 1, items[i].y - offsetY + 1, items[i].x + (offset*i) + 1, items[i].y - offsetY + 1, tocolor(0,0,0, alpha), 1.01, "bankgothic", "center", "center", false, false, false, true) 
                dxDrawText ( items[i].text , items[i].x + (offset*i), items[i].y - offsetY, items[i].x + (offset*i), items[i].y - offsetY, tocolor(0,0,0, alpha), 1, "bankgothic", "center", "center", false, false, false, true) 
            end 
        end 

Però, come potete vedere non sono sparsi nel rettangolo in modo omogeneo, come posso fare ciò?

Posted

Dubito che l abbia fatto tu questo codice.

Anyway puoi usare gui editor per prendere le "relative" position e convertirle per dx

Posted

Fidati, l'ho fatto io.

In ogni caso non voglio usare il gui editor, voglio imparare a usare il dxDrawText e company.. (intendo imparare bene a calcolare le coordinate)

Posted

Probabilmente sono cieco ma non vedo il problema.

Se vuoi ti posso dire se ho capito.

La distanza tra una parola e l'altra non e la stessa.

Prova a fare cosi:

Prendi ogni singola parola. Calcoli da larghezza in pixel.

Poi sommi le lunghezze, prendi la larghezza dello schermo e ci vai a sottrarre la somma.

Di quello che ti rimane lo dividi per 2x numero di parole.

Il valore ottenuto dovrebbe essere la distanza da destra e da sinistra di ogni parola.

Inoltre si dovrebbe adattare ad ogni schermo.

Se ho detto una cazzata perdonami ma non ho capito il problema.

Posted

Non ti ho detto di usare il Gui editor in senso di usare Gui elements,ma di usare Gui editor solo per le coordinate relative.

Ad esempio tu hai bisogno di 5 testi dx,fai 5 Gui label e gli setti relative position e poi fai output code.

Una volta avuto i valori hai finito.

Esempio:

I valori della label sono 0.1 , 0.1 , 0,1 , 0,1

Quindi:

local X,Y = guiGetScreenSize()

A = 0.1

B = 0.1

C = 0.1

D = 0.1

dxdrawtext (testo, A*X, B*Y, C*X, D*Y,

Ecco la conversione dx relative

Posted

Credo di saper parlare e di capire abbastanza bene l'italiano...

Non voglio usare il GUIEDITOR per avere direttamente le coordinate relative!

Voglio ricavarle usande guiGetScreenSize()

Posted

Ti ho solo mostrato come assegnare relative position agli elementi dx.

Un metodo facile e veloce,senza usare tutte quelle cazzate no sense che hai messo.

A volte (sempre) la miglior soluzione è sempre la più semplice.

Posted

Si beh, alla fine metti caso che uno scripter sa fare tutto ma non un cosa del genere, sbaglio o non è uno scripter completo?

Posted

Se metti in dubbio la mia esperienza per me non ci sono problemi.

Ognuno ha i suoi metodi di scrittura.

Per me puoi usare anche 200 righe per creare 5 testi,ma è tutto tempo perso che potresti usare per altre funzioni.

Posted
Si beh, alla fine metti caso che uno scripter sa fare tutto ma non un cosa del genere, sbaglio o non è uno scripter completo?

Prima di tutto se voglio lo faccio,ma io non "lavoro" in questo modo perche per me è tutto tempo sprecato.

Seconda cosa qui nessuno e superiore ad un altro.

Che ne dici di fare tasto destro del mouse "ripristina versione precedente" e facciamo finta che non sia successo nulla?

Già questo subForum e poco frequentato,se ci mettiamo a discutere anche su questo è finita.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...