usleep在Lua中的语法代码是什么?

我想在我的代码中加入一些睡眠时间,但是我不知道正确的语法。我想把它放在TouchMove中,以便每个像素的移动都有一定数量的睡眠时间,然后再移动到另一个像素。

--这个程序会为x,y选择随机位置,并向下滑动5个像素

--定义部分
local iX
local iY
local iLoop

--初始化变量
--随机化变量
iX=40
iY=math.random(100,150)

--触摸下降
--执行触摸向上移动

print("TouchDown ".. "(" .. iX .. "," .. iY .. ")" )

--触摸移动
--向下滑动5个像素

for iLoop = 1,5 do
  --计算下一个像素
  iX= iX - 1

  --执行触摸移动
  print("TouchMove ".. "(" .. iX..","..iY .. ")" )
end

--收起手指

--执行触摸向上移动

print("TouchUp " .. "(" .. iX .. "," .. iY .. ")" )
点赞
用户3782904
用户3782904

Sleep Function

原文地址:http://lua-users.org/wiki/SleepFunction

许多程序员都希望他们的 Lua 脚本暂停若干微妙,若干毫秒,甚至若干秒。然而,传统地,Lua 没有这个功能。本文将提供实现这个想法的方法。

sleep 函数的定义

function sleep(n)
   os.execute("sleep " .. tonumber(n))
end

sleep 函数可以暂停若干秒。

usleep 函数的定义

在 POSIX 系统中:

#include <unistd.h>
unsigned int usleep(unsigned int useconds);

usleep 函数可以暂停若干微秒。

Windows

在 Windows 下可以使用 Sleep 函数,将等待时间以毫秒为单位传给函数。

这里是一个使用 C 语言写的实现:

#ifdef _WIN32

#include <windows.h>

void sleep(unsigned int milliseconds) {
    Sleep(milliseconds);
}

#endif

实例

以下是一个例子,演示如何在 C 中定义一个 msleep() 函数。

#include <lua.h>
#include <lauxlib.h>

#ifdef _WIN32

#include <windows.h>

void msleep(unsigned int milliseconds) {
    Sleep(milliseconds);
}

#else

#include <unistd.h>

void msleep(unsigned int milliseconds) {
    usleep(milliseconds * 1000);
}

#endif

static int msleep_lua(lua_State* L) {
    unsigned int milliseconds = (unsigned int)luaL_checknumber(L, 1);
    msleep(milliseconds);
    return 0;
}

int luaopen_msleep(lua_State* L) {
    luaL_checkversion(L);
    luaL_Reg l[] = {
        { "msleep", msleep_lua },
        { NULL, NULL },
    };
    luaL_newlib(L, l);
    return 1;
}

使用 luaopen_msleep() 函数声明 msleep 函数。在 Lua 脚本中可以如下使用:

require "msleep"

msleep.msleep(100)
2014-11-22 08:13:03