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 Oczywi?cie jak zrobi? backspace przy okazji te? si? przyda. Dacie rad? jako? naprowadzi?? Z G?ry dzi?kuje za pomoc
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
iloscZnakow=1
tabela ={}
str=""
function pobierzKlawisz(button,press)
if (press) then
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
iloscZnakow=1
tabela ={}
str=""
function pobierzKlawisz(button,press)
if (press) then
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(" ")
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