警告:この質問は、ドローライブラリを購入し、知っているTouch Luaユーザーのみに適用されます。タッチルアの描画ライブラリの基礎
この質問の末尾に、完全なプログラムを参照してください。質問のために今、私はそのプログラム(NUMPAD.LUA)の一部であるBEGINNINGで使用するスニペット
さて、:
の使用は何•「」 「b」と「x」の間?または "b"と "draw"?その他...
•テーブルはどのようにボタンを設定しましたか?超限定的でお願いしますか?
•7,8行目に "+"、 "*"、 "(j-1)"があるのはなぜですか?
•高さと幅は何ですか?私はxとyしかないと思った。あなたはそれをタップしたときに
function createButtons()
buttons = { }
local c = 1
for i = 1, 4 do
for j = 1, 3 do
local b = { }
b.x = 80 + 60 * (j-1)
b.y = 160 + 60 * (i-1)
b.width = 40
b.height = 40
b.color = draw.blue
b.draw = drawButton
b.action = digitAction
buttons[c] = b
c = c + 1
end
end
buttons[1].title = '7'
buttons[2].title = '8'
buttons[3].title = '9'
buttons[4].title = '4'
buttons[5].title = '5'
buttons[6].title = '6'
buttons[7].title = '1'
buttons[8].title = '2'
buttons[9].title = '3'
buttons[10].title = '0'
buttons[11].title = '.'
buttons[11].action = dotAction
buttons[12].title = 'C'
buttons[12].color = draw.orange
buttons[12].action = clearAction
end
は
最後には、全体としてプログラムを参照する...• はどのボタンが知っているのですか?具体的にはどのようなコード行で、どのように動作しますか? (私はトラックの非常にかすかな理解がところで触れてい)
function digitAction(button)
if string.len(display.title) < 16 then
sys.alert('tock')
if display.started then
display.title = display.title .. button.title
else
if button.title ~= '0' then
display.title = button.title
display.started = true
end
end
else
sys.alert('tink')
end
end
function dotAction(button)
if string.find(display.title, '.', 1, true) then
sys.alert('tink')
else
display.title = display.title .. '.'
display.started = true
sys.alert('tock')
end
end
function clearAction(button)
sys.alert('tock')
display.title = '0'
display.started= false
end
function createDisplay()
display = { }
display.x = 60
display.y = 100
display.width = 200
display.height = 40
display.title = '0'
display.color = draw.red
display.started = false
end
function createButtons()
buttons = { }
local c = 1
for i = 1, 4 do
for j = 1, 3 do
local b = { }
b.x = 80 + 60 * (j-1)
b.y = 160 + 60 * (i-1)
b.width = 40
b.height = 40
b.color = draw.blue
b.draw = drawButton
b.action = digitAction
buttons[c] = b
c = c + 1
end
end
buttons[1].title = '7'
buttons[2].title = '8'
buttons[3].title = '9'
buttons[4].title = '4'
buttons[5].title = '5'
buttons[6].title = '6'
buttons[7].title = '1'
buttons[8].title = '2'
buttons[9].title = '3'
buttons[10].title = '0'
buttons[11].title = '.'
buttons[11].action = dotAction
buttons[12].title = 'C'
buttons[12].color = draw.orange
buttons[12].action = clearAction
end
function drawDisplay()
draw.setfont('Helvetica', 20)
draw.setlinestyle(2, 'butt')
local x1, y1 = display.x, display.y
local x2, y2 = x1 + display.width, y1 + display.height
draw.roundedrect(x1, y1, x2, y2, 10, display.color)
local w, h = draw.stringsize(display.title)
local x = x2 - 10 - w
local y = y1 + (display.height - h)/2
draw.string(display.title, x, y, draw.black)
end
function drawButton(b)
draw.setfont('Helvetica', 18)
draw.setlinestyle(2, 'butt')
local x1, y1 = b.x, b.y
local x2, y2 = x1+b.width, y1+b.height
draw.roundedrect(x1, y1, x2, y2, 10, b.color)
local w, h = draw.stringsize(b.title)
local x = b.x + (b.width - w)/2
local y = b.y + (b.height - h)/2
draw.string(b.title, x, y, draw.black)
end
function drawButtons()
for i = 1, #buttons do
buttons[i].draw(buttons[i])
end
end
function lookupButton(x, y)
for i = 1, #buttons do
local b = buttons[i]
if x > b.x and x < b.x+b.width and y > b.y and y < b.y+b.height then
return b
end
end
return nil
end
function drawScreen()
draw.beginframe()
draw.clear()
drawDisplay()
drawButtons()
draw.endframe()
end
function touchBegan(x, y)
local b = lookupButton(x, y)
if b then
b.action(b)
end
end
function touchMoved(x, y)
end
function touchEnded(x, y)
end
function init()
draw.setscreen(1)
draw.settitle('Num Pad')
draw.clear()
draw.tracktouches (touchBegan, touchMoved, touchEnded)
createButtons()
createDisplay()
end
function mainloop()
while true do
draw.doevents()
drawScreen()
draw.sleep(30)
end
end
function main()
init()
mainloop()
end
-- start program
main()
は、あなたが提供することができます任意の助けをありがとうございました!私はこれがたくさんの質問であることを知っていますが、この知識は本当に私を推進するのに役立ちます!
私は私の人生でタッチルアを見たことがありません。しかし私はルアを知っているので、私はあなたの質問にすべて答えることができました。私はそれがあなたに少し動機を与えることを願っています:) – Piglet
ありがとうございました!私はこれをさらに分析するにつれて疑問が増えますが、これで十分です。答えの最後の段落で言及したように、「Luaチュートリアル」ではどこでこれを見つけることができますか?私はLuaのウェブサイトを使用することしかできませんでした。私の知る限り、ドローライブラリチュートリアルはありませんでした(私はこれを調べます)。私が参照しなければならなかったのは、コマンドのリストとアプリで何をしたのかということでした。 –
ドローライブラリのチュートリアルは必要ありませんが、Luaのことを明らかにしていないので、Luaチュートリアルが必要です。 Luaを十分に理解すれば、コードを読んだり理解したり、ライブラリを効果的に使うことができます。そのようなテキストを読む。あなたがすべての単語を知っていない場合、あなたは意味を取得しません。あなたの場合、あなたはすべての文字を知らない。あなたが読むことができなければ、あなたは書くのに苦労するでしょう。 – Piglet