Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-08-06, 14:20


DJglizdek

Uczeń LUA






Wiek: 24
Na forum: 4168 dni
Posty: 75
Nick w MP: DJglizdek

Piwa: 5

Respekt: 60

Cze??! Tak jak w temacie, zastanawia mnie jak stworzy? jakiego? stringa ??cz?c literki ze sob? :) Dla przyk?adu mam na my?li takie co? - mamy klawiatur? z przycisk?w zrobion? w GUI i przy jej pomocy (wciskanie myszk? na poszczeg?lny przycisk) napisanie jakiego? s?owa :P Oczywi?cie jak zrobi? backspace przy okazji te? si? przyda. Dacie rad? jako? naprowadzi?? Z G?ry dzi?kuje za pomoc :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-08-06, 15:51


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

tworzysz event z klikaniem button?w, 2 arg to resourceRoot, i wk?adasz funkcj? (t? w evencie) w p?tl? while, warunek to np klikni?cie na klawiaturze "z" - oczywi?cie tej realnej xd, podczas tej p?tli gdy klikasz jaki? przycisk w tym gui to pobierasz tego text oraz umieszczasz go w tablicy

[ Dodano: 2017-08-06, 15:57 ]
no i jak chcesz backspace to robisz zmienna kt?r? przy ka?dym klikni?ciu gui podnosisz o 1 i je?eli gracz kliknie backspace to w zale?no?ci od tej zmiennej (ona reprezentuje teraz ilo?? znak?w w tablicy) usuwasz warto?? o indeksie tej zmiennej np.
n=5 (nasza zmienna)
gracz klika backspace
table.remove(tablica,n)

oczywi?cie je?eli klikasz backspace to nie inkrementujesz tej zmiennej

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
DJglizdek
Wysłany: 2017-08-06, 17:56


eject

kurdebele






Wiek: 30
Na forum: 3659 dni
Posty: 182
Nick w MP: EjecT

Piwa: 2456

Respekt: 85,8

Ostrzeżeń: 60%

local str "" -- Aktualny string
local str_table={}
function initString()
str ""
for i=1,#str_table do
str str..str_table[i]
end
end
function addLiterka(literka)--addLiterka("A") <- przyklad
str_table[#str_table] = literka
initString()
end
function removeLiterka() -- Jesli gracz nacisnie backspace
if #str_table < 0 then return end
str_table[#str_table] = nil
initString()
end



Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
DJglizdek
Wysłany: 2017-08-06, 18:22


DJglizdek

Uczeń LUA






Wiek: 24
Na forum: 4168 dni
Posty: 75
Nick w MP: DJglizdek

Piwa: 5

Respekt: 60

eject, Tak potestowa?em to co napisa?e? i metod? pr?b i b??d?w doszed?em do tego, ?e w linijce

str_table[#str_table] = literka

musi to wygl?da? tak bo inaczej nie dzia?a:

str_table[#str_table+1] = literka

W ka?dym razie ju? rozumiem o co chodzi i dzi?ki wam za pomoc :) ?apcie po piwku!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-08-06, 18:26


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466


iloscZnakow=1
tabela ={}
str=""
function pobierzKlawisz(button,press)
    if (pressthen 
        if button=="enter" or button=="num_enter" then
            return false
        else
            return true
        end
    else
        return true
    end
end
addEventHandler("onClientKey",getRootElement(),pobierzKlawisz)

addEventHandler("onClientGUIClick",resourceRoot,function()

    while(pobierzKlawisz()==true) do
    
        local litera guiGetText(source)
    
        if litera=="BackSpace" then
            if #tabela < 0 then
                break
            else
                table.remove(tabela)
                break
            end
        end
        
        table.insert(tabela,iloscZnakow,litera)
        iloscZnakow++
    end
end)

function pokazText()
    for i,iloscZnakow do
        str=str..tabela[i]
    end
end

nie wiem czy b?dzie dzia?a?, co do spacji to mo?esz doda? nowy if kt?ry sprawdza: je?eli litera=="Spacja" to wtedy dajesz tam jakis specjalny znam z tablicy ASCII i p??niej konwertujesz ten napis bez tego znaku w funkcji pokazText

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-08-06, 19:57


eject

kurdebele






Wiek: 30
Na forum: 3659 dni
Posty: 182
Nick w MP: EjecT

Piwa: 2456

Respekt: 85,8

Ostrzeżeń: 60%
"amited" napisał/a:


iloscZnakow=1
tabela ={}
str=""
function pobierzKlawisz(button,press)
    if (pressthen 
        if button=="enter" or button=="num_enter" then
            return false
        else
            return true
        end
    else
        return true
    end
end
addEventHandler("onClientKey",getRootElement(),pobierzKlawisz)

addEventHandler("onClientGUIClick",resourceRoot,function()

    while(pobierzKlawisz()==true) do
    
        local litera guiGetText(source)
    
        if litera=="BackSpace" then
            if #tabela < 0 then
                break
            else
                table.remove(tabela)
                break
            end
        end
        
        table.insert(tabela,iloscZnakow,litera)
        iloscZnakow++
    end
end)

function pokazText()
    for i,iloscZnakow do
        str=str..tabela[i]
    end
end

nie wiem czy b?dzie dzia?a?, co do spacji to mo?esz doda? nowy if kt?ry sprawdza: je?eli litera=="Spacja" to wtedy dajesz tam jakis specjalny znam z tablicy ASCII i p??niej konwertujesz ten napis bez tego znaku w funkcji pokazText



local str "" -- Aktualny string
local str_table={}
function initString()
str ""
for i=1,#str_table do
str str..str_table[i]
end
end
function addLiterka(literka)--addLiterka("A") <- przyklad
str_table[#str_table+1] = literka
initString()
end
function removeLiterka() -- Jesli gracz nacisnie backspace
if #str_table < 0 then return end
str_table[#str_table] = nil
initString()
end

Poprostu po nacisnieciu spacji wystarczy addLiterka(" ")

Postaw piwo autorowi tego posta
 

 
Tagi: tworzenie :: stringa
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Tworzenie stringa Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku