【问题标题】:Lua tables and screen coordinates. For every {x} at y doLua 表和屏幕坐标。对于 y 处的每个 {x}
【发布时间】:2016-03-08 11:10:12
【问题描述】:

我现在对编程的艺术有点好奇。我想在我的 iOS 上编写 Autotouch 应用程序的脚本,以便在另一个应用程序中生成像素艺术。

我之前是通过输入代码在屏幕上的一个坐标处点击来执行此操作的,我这样做了 2000 多次,它完成了工作。但应该有更好、更聪明的方法来完成它。

我的测试图像将非常对称,以使事情变得简单。 Lua 应用程序中有一个代码,我用它来简单地点击屏幕,

tap(x, y)

但我想这样设置:

tap({xTable}, y)

但我不确定这是否会“点击”我为 y 变量列出的每个 x 坐标。

我想在一个非常特定的坐标处绘制一个像素,然后走 5 个像素并绘制下一个,然后重复此过程直到行尾。

这完全可能还是我超出了语言能力?

编辑:由于某种原因,当我提出问题时,我的手机没有阻止代码,如果有人看到这个并想要编辑,我将不胜感激。

【问题讨论】:

  • tap 是您编写的函数还是来自应用程序的函数?您是否只是在寻找如何编写一个简单的循环来增加 +5 并再次调用 tap
  • 点击是应用程序中的一项功能。它会在特定的 (x, y) 处模拟屏幕上的触摸

标签: ios lua autotouch


【解决方案1】:

这完全可能还是我超出了语言能力?

甚至没有接近。我建议你阅读Programming in Lua

 tap({xTable}, y)   

但我不确定这是否会“点击”我为 y 变量列出的每个 x 坐标。

你为什么不确定?你没写吗?如果没有,你可以自己写给tap

function tapxs(xs, y)
    for i,x in ipairs(xs) do
        tap(x,y)
    end
end

...

tapxs({10,20,30,40}, 10) -- tap at 10,10; 20,10; 30,10; etc.

我想在一个非常特定的坐标处绘制一个像素,然后走 5 个像素并绘制下一个,然后重复此过程直到行尾。

什么是“线”?是纯横向的吗?你可以写:

function tapHorizontally(startX, maxX, y, increment)
    for x=startX,maxX,increment do
        tap(x,y)
    end
end

...

tapHorizontally(10,100,20,5) -- tap from 10,20 to 100,20 in 5 pixel increments

当然,这是一个奇怪的特定功能。您通常会编写一些带有起始 x,y 和结束 x,y 并在它们之间绘制的东西,因此您可以使用相同的功能支持水平线、垂直线、对角线,但这需要 more math

底线是:Lua 是一种成熟、强大、高级的编程语言。它可以用来编写你正在点击的应用程序,或者你用来生成点击的应用程序,因此限制将是你对编程/算法/数学/等的了解。

【讨论】:

  • tapHorizo​​ntally() 完全符合我的好奇心,它比在表格中列出要容易得多。我在这里和那里自学一点点 Lua,但我仍在努力理解你可以在代码中输入的单词并不意味着英语单词。就像我知道的增量是一个词,但是当 Lua 读取它时,它会计算一些完全数学的东西。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 2017-08-09
相关资源
最近更新 更多