Random 触摸Lua';s绘制库基础
警告:此问题仅适用于已购买并了解Draw库的Touch Lua用户 请参阅此问题的底部以查看完整程序。我在开头使用的代码片段是该程序的一部分(NUMPAD.LUA) 好的,现在来回答问题: •在“b”和“x”之间使用“.”有什么用?还是“b”和“draw”?等等 •桌子如何设置按钮?请说得非常具体 •为什么第7行和第8行中有“+”、“*”和“(j-1)”字样 •那里的高度和宽度是什么?我以为只有x和yRandom 触摸Lua';s绘制库基础,random,lua,draw,Random,Lua,Draw,警告:此问题仅适用于已购买并了解Draw库的Touch Lua用户 请参阅此问题的底部以查看完整程序。我在开头使用的代码片段是该程序的一部分(NUMPAD.LUA) 好的,现在来回答问题: •在“b”和“x”之间使用“.”有什么用?还是“b”和“draw”?等等 •桌子如何设置按钮?请说得非常具体 •为什么第7行和第8行中有“+”、“*”和“(j-1)”字样 •那里的高度和宽度是什么?我以为只有x和y function createButtons() buttons = { } lo
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
最后,参考整个程序。。。
•点击按钮时,按钮如何知道?具体来说,代码行是什么,它是如何工作的?(顺便说一句,我对轨道接触的理解很模糊)
功能数字化(按钮)
如果string.len(display.title)<16,则
系统警报(“tock”)
如果display.started,那么
display.title=display.title。。按钮标题
其他的
如果button.title~=“0”,则
display.title=按钮.title
display.start=true
结束
结束
其他的
系统警报(“叮当声”)
结束
结束
功能点操作(按钮)
如果string.find(display.title,'.',1,true),则
系统警报(“叮当声”)
其他的
display.title=display.title...”
display.start=true
系统警报(“tock”)
结束
结束
功能clearAction(按钮)
系统警报(“tock”)
display.title='0'
display.start=false
结束
函数createDisplay()
显示={}
显示x=60
显示y=100
显示宽度=200
显示高度=40
display.title='0'
display.color=draw.red
display.start=false
结束
函数createButtons()
按钮={}
局部c=1
对于i=1,则为4
对于j=1,3 do
局部b={}
b、 x=80+60*(j-1)
b、 y=160+60*(i-1)
b、 宽度=40
b、 高度=40
b、 颜色=draw.blue
b、 draw=drawButton
b、 动作=数字化
按钮[c]=b
c=c+1
结束
结束
按钮[1]。标题='7'
按钮[2]。标题='8'
按钮[3]。标题='9'
按钮[4]。标题='4'
按钮[5]。标题='5'
按钮[6]。标题='6'
按钮[7]。标题='1'
按钮[8]。标题='2'
按钮[9]。标题='3'
按钮[10]。标题=“0”
按钮[11]。标题='
按钮[11]。操作=点操作
按钮[12]。标题='C'
按钮[12]。颜色=draw.orange
按钮[12]。操作=清除操作
结束
函数drawDisplay()
draw.setfont('Helvetica',20)
draw.setlinestyle(2,‘对接’)
本地x1,y1=显示.x,显示.y
本地x2,y2=x1+显示宽度,y1+显示高度
draw.roundedrect(x1、y1、x2、y2、10,显示颜色)
局部w,h=draw.stringsize(display.title)
局部x=x2-10-w
本地y=y1+(显示高度-h)/2
draw.string(display.title、x、y、draw.black)
结束
功能按钮(b)
draw.setfont('Helvetica',18)
draw.setlinestyle(2,‘对接’)
局部x1,y1=b.x,b.y
局部x2,y2=x1+b.宽度,y1+b.高度
绘制圆形图(x1、y1、x2、y2、10、b颜色)
局部w,h=图纸stringsize(b.标题)
局部x=b.x+(b.width-w)/2
局部y=b.y+(b.高度-h)/2
draw.string(b.title,x,y,draw.black)
结束
函数drawButtons()
对于i=1,#按钮可以
按钮[i]。绘制(按钮[i])
结束
结束
函数查找按钮(x,y)
对于i=1,#按钮可以
本地b=按钮[i]
如果x>b.x和xb.y和y
非常感谢您提供的任何帮助!我知道这是很多问题,但这些知识真的可以帮助我前进 这个程序特别使用表格来表示按钮,它这样做是为了使它更易于管理。高度和宽度是相同的。如果您是绘图库的新手,那么查看这样的代码只会让您感到困惑。你的大多数问题实际上都是关于OOP的
而且这个问题现在可能不适合堆栈溢出。如果您需要有关此主题的帮助/小教程,请随时在Touch Lua论坛上PM我,我的用户名是warspyking,但目前您需要修改或删除此问题。此程序特别使用表格表示按钮,这样做是为了使其更易于管理。高度和宽度是相同的。如果您是绘图库的新手,那么查看这样的代码只会让您感到困惑。你的大多数问题实际上都是关于OOP的 而且这个问题现在可能不适合堆栈溢出。如果您需要关于这个主题的帮助/小教程,请随时在Touch Lua论坛上PM我,我的用户名是warspyking,但目前您需要修改或删除此问题 警告:此问题仅适用于已购买Touch Lua的用户 并对绘图库有一定的了解 从什么时候开始,你必须购买一些东西来回答编程问题?你所有的问题都是关于Lua的基础知识 “b”和“x”之间的“.”有什么用?还是“b”和“draw”?等等 点运算符用于索引表成员。因此
b.x
将为您提供属于表b
中键“x”
的值。它的语法是b[“x”]
这部电影怎么样
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()