精华内容
下载资源
问答
  • --移动文件 File.Move("/var/touchelf/scripts/1.lua","/var/touchelf/res/1.lua"); --复制文件 File.Copy("/var/touchelf/scripts/1.lua","/var/touchelf/res/1.lua"); --创建文件夹 File.NewFolder("/var/...
    File = {
        Remove = (function(path)
            return exec("rm -rf "..path);
        end),
        List = (function(path)
            return exec("ls "..path);
        end),
        Find = (function(path)
            return exec("find "..path.." -prune");
        end),
        Move = (function(path,to)
            return exec("mv "..path.." "..to);
        end),
        Copy = (function(path,to)
            return exec("cp -rf "..path.." "..to);
        end),
        NewFolder = (function(path)
            return exec("mkdir "..path);
        end),
        NewFile = (function(path)
            return exec("touch "..path);
        end),
        Info = (function(path)
            local _ = {};
            function _:chmod(mode)
                if mode then
                    return exec("chmod "..mode.." "..path);
                else
                    return string.sub(exec("ls -l "..path),2,10);
                end
            end
            function _:chown(mode)
                if mode then
                    return exec("chown "..mode.." "..path);
                else
                    return string.match(exec("ls -l "..path),string.rep("[^ ]+[ ]+",2).."([^ ]+)");
                end
            end
            function _:size()
                return string.match(exec("ls -l "..path),string.rep("[^ ]+[ ]+",4).."([^ ]+)");
            end
            function _:time()
                return string.match(exec("ls -l "..path),string.rep("[^ ]+[ ]+",5).."("..string.rep("[^ ]+[ ]+",3)..")");
            end
            return _
        end),
        Read = (function(path)
            local f = io.open(path,"r");
            if f then
                local ret = f:read("*all");
                f:close();
                return ret;
            else
                return "";
            end
        end),
        ReadToTable = (function(path)
            local t = {};
            local f = io.open(path,"r");
            if f then
                for l in f:lines() do
                    l = string.gsub(l, "\r", "")
                    l = string.gsub(l, "\n", "")
                    table.insert(t,l)
                end
                f:close();
            end
            return t;
        end),
        Write = (function(path,info)
            info = type(info) == "table" and table.concat(info,"\r\n") or info
            local f = io.open(path,"w+")
            if f then
                f:write(info)
                f:close()
            end
        end)
    
    }
    
    function exec(command)
        local res = io.popen(command);
        if res then
            local ret = res:read("*a");
            res:close();
            return ret;
        else
            return -1;
        end
    end
    
    function main()
        --删除文件或文件夹
        File.Remove("/var/touchelf/log/log.txt");
        --遍历文件
        res = File.List("/var/touchelf/scripts/");
        logDebug(res);
        --查找文件,支持*通配符
        res = File.Find("/var/touchelf/scripts/*.lua");
        logDebug(res);
        --移动文件
        File.Move("/var/touchelf/scripts/1.lua","/var/touchelf/res/1.lua");
        --复制文件
        File.Copy("/var/touchelf/scripts/1.lua","/var/touchelf/res/1.lua");
        --创建文件夹
        File.NewFolder("/var/touchelf/test");
        --创建文件
        File.NewFile("/var/touchelf/scripts/test.lua");
        --查看&修改文件信息
        file = File.Info("/var/touchelf/scripts/1.lua");
        file:chmod(666)--修改文件权限
        file:chown('root')--修改文件所有者
        logDebug(file:chmod())--显示文件权限
        logDebug(file:chown())--显示文件所有者
        logDebug(file:size())--显示文件大小
        logDebug(file:time())--显示文件修改
        --读取文件
        ret = File.Read("/var/touchelf/log/log.txt")
        logDebug(ret)
        --读取文件,转成table
        ret = File.ReadToTable("/var/touchelf/log/log.txt")
        logDebug(ret[1])
        --写入文件
        table.remove(ret,1)--移除数组中第一个元素
        File.Write("/var/touchelf/log/log.txt",ret)
    end

     

    展开全文
  • 触动精灵,触摸精灵-lua脚本入门,哪吒游戏网给大家带来详细的触动精灵,触摸精灵-lua脚本入门介绍,大家可以阅读一下,希望这篇触动精灵,触摸精灵-lua脚本入门可以给你带来参考价值。触动精灵,触摸精灵最近比较火,...

    触动精灵,触摸精灵-lua脚本入门,哪吒游戏网给大家带来详细的触动精灵,触摸精灵-lua脚本入门介绍,大家可以阅读一下,希望这篇触动精灵,触摸精灵-lua脚本入门可以给你带来参考价值。

    触动精灵,触摸精灵最近比较火,可是没有lua脚本基础的人可能上手有点难触动精灵脚本,这篇经验就介绍一下lua的入门。

    lua的入口函数在哪里?lua没有入口函数,按照顺序 从上到下 执行暴漏在function以外的语句

    c6bb5d09cb8e2fccda4990054ce414a0.png

    知道了所谓的入口函数,那这里介绍经典程序 “hello world!”内容如下:print("hello world!"); --我是执行的第一条语句

    83bbded7226f32f10b17c4d1905fe38d.png

    注释应该怎么用1、单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。2、多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/*...*/"。在注释当中,"[["和"]]"是可以嵌套的(在lua5.1中,中括号中间是可以加若干个"="号的,如 [==[ ... ]==]),见下面的字符串表示说明。

    30f390c80c22288b1a4bef0202152e2c.png

    全局变量,局部变量怎么用默认情况下,变量总是认为是全局的。假如需要定义局部变量触动精灵脚本,则在第一次赋值的时候,需要用local说明。比如:local a,b,c = 1,2,3-- a,b,c都是局部变量

    92657a950a26400fb2b7995c72096ab0.png

    Lua 有好几种程序控制语句if,while,repeat,for 和C语言相比使用方法有些不同

    870c5d53f74462222bc3ccb620ada2a5.png

    4d01f93694aeccaeb61e8ddf03c31007.png

    7f386470119f7000e9b96965eb29f1d5.png

    6a2187b83fca6004b7a9fb272a5fa13e.png

    语句块语句块在C中是用"{"和"}"括起来的,在Lua中,它是用do 和 end 括起来的。比如:do print("Hello") end可以在 函数 中和 语句块 中定局部变量。

    其他有意思的地方(相比C语言)赋值语句在Lua被强化了,可以同时给多个变量赋值。例如:a,b,c,d=1,2,3,4甚至是:a,b=b,a-- 很方便的交换变量功能。

    总结:以上内容就是针对触动精灵,触摸精灵-lua脚本入门详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,触动精灵,触摸精灵-lua脚本入门部分内容转载自互联网,有帮助可以收藏一下。

    展开全文
  • lua 支持多点触摸例子

    千次阅读 2014-11-04 16:21:46
    local layer=CCLayer:create() ...--多点触摸事件回调函数 local function onTouchsEvent(eventType,touchs) --[[ eventType:触摸事件类型. touchs:多点触摸的数组表,它的大小=n点触摸*3 ]] if eve

    local layer=CCLayer:create()
    
    
    --多点触摸事件回调函数
    local function onTouchsEvent(eventType,touchs)
            --[[
                eventType:触摸事件类型.
                touchs:多点触摸的数组表,它的大小=n点触摸*3
            ]] 
            if eventType=="began" then --手指开始触摸屏幕
               for i=1,#touchs,3 do
                   local x,y,id=touchs[i],touchs[i+1],touchs[i+2]--从touchs中获取一点触摸的坐标和id
                   local sprite=CCSprite:create("CloseNormal.png")--创建精灵
                   sprite:setTag(id+100)--根据触摸id设置精灵的标签
                   sprite:setPosition(x,y)--根据触摸坐标设置精灵的位置
                   layer:addChild(sprite)--增加精灵到layer
               end
            elseif eventType=="moved" then --手指一直触摸着屏幕移动
               for i=1,#touchs,3 do
                  local x,y,id=touchs[i],touchs[i+1],touchs[i+2]
                  local sprite=layer:getChildByTag(id+100)--根据触摸id,寻找精灵
                  sprite:setPosition(x,y)--根据触摸坐标设置精灵的位置
               end
            elseif eventType=="ended" then --手指一直触摸着屏幕放开后
               for i=1,#touchs,3 do
                  local id=touchs[i+2]--获取触摸id
                  layer:removeChildByTag(id+100,true)--根据触摸id,从layer中删除精灵
               end
            end  
    end
    
    
    layer:setTouchEnabled(true)
     
    layer:registerScriptTouchHandler(onTouchsEvent,true)--设置支持多点触摸
    
    
    return layer

    来源:点击打开链接




    展开全文
  • 在C++中写的方法,如果需要传递函数,当绑定到lua时,genbinding.py生成的绑定类会直接return 0,是的lua无法设置回调函数,但是widget子类,如button,sprite确能设置点击事件,触摸事件,所以我看了下cocos2dx自己的...

    在C++中写的方法,如果需要传递函数,当绑定到lua时,genbinding.py生成的绑定类会直接return 0,是的lua无法设置回调函数,但是widget子类,如button,sprite确能设置点击事件,触摸事件,所以我看了下cocos2dx自己的绑定方式,发现用的是ScriptHandlerMgr::getInstance()->addCustomHandler方法实现,如此,我们就直接拿来用吧

     

    核心代码只有几行

    1 hpp,cpp

    
    
    #ifndef SDKManager_h
    #define SDKManager_h
    
    #include"cocos2d.h"
    
    typedef std::function<void(int ,std::string)> sdkCallFunc;
    class SDKManager    {
        SDKManager(){};
        ~SDKManager(){};
        
    private:
        sdkCallFunc sdkCallfunc;
    public:
        static SDKManager* getInstance();
        
        int test(int number);
        void setCallback(const sdkCallFunc& callfunc);  
    
    };
    
    
    #endif /* SDKManager_h */
    
    
    #include "SDKManager.hpp"
    
    #include "scripting/lua-bindings/manual/CCLuaEngine.h"
    SDKManager* g_instance = nullptr;
    SDKManager* SDKManager::getInstance()
    {
        if (g_instance == nullptr) {
            g_instance = new SDKManager();
        }
        
        return g_instance;
        
    }
    
    int SDKManager::test(int v)
    {
        if (this->sdkCallfunc) {
            this->sdkCallfunc(v,"setcallback ==== ");
        }
        
    
        return v + 100;
    }
    

    2,修改生成的lua_sdkmanager_auto.cpp文件 

    int lua_sdkmanager_SDKManager_setCallback(lua_State* tolua_S)
    {
        ...
        ...
        argc = lua_gettop(tolua_S)-1;
        if (argc == 1) 
        {
            if(!toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err))
            {
                goto tolua_lerror;
            }
            LUA_FUNCTION handler = (  toluafix_ref_function(tolua_S,2,0));
            
            cobj->setCallback([=](int eventType,const std::string& param1){
                LuaStack* stack = LuaEngine::getInstance()->getLuaStack();
                
                stack->pushInt((int)eventType);
                stack->pushString(param1.c_str());
                
                stack->executeFunctionByHandler(handler, 2);
                stack->clean();
            });
            
            ScriptHandlerMgr::getInstance()->addObjectHandler((void*)cobj, handler, ScriptHandlerMgr::HandlerType::EVENT_CUSTOM_BEGAN);
            return 0;
    //        std::function<void (int, std::basic_string<char>)> arg0;
    //
    //        do {
    //            // Lambda binding for lua is not supported.
    //            assert(false);
    //        } while(0)
    //        ;
    //        if(!ok)
    //        {
    //            tolua_error(tolua_S,"invalid arguments in function 'lua_sdkmanager_SDKManager_setCallback'", nullptr);
    //            return 0;
    //        }
    //        cobj->setCallback(arg0);
    //        lua_settop(tolua_S, 1);
    //        return 1;
        }
        ...
        ...
    }

     

    展开全文
  • cocos2dx+lua 支持多点触摸例子

    千次阅读 2014-04-16 11:48:15
    测试环境:cocos2d-x-2.1.4 MultiTouchesTestLayer.lua代码如下: --[[ author: blog.163.com/mr_zyf/ ]] ...--多点触摸事件回调函数 local function onTouchsEvent(eventType,tou
  • --多点触摸事件回调函数 local function onTouchsEvent(eventType,touchs) --[[ eventType:触摸事件类型. touchs:多点触摸的数组表,它的大小=n点触摸*3 ]] if eventType=="began" then --手指...
  • 本篇博客是描述使用coocs2dx lua 使用触摸事件的演示。关于main.lua的文件,请从同系列的前面文字中寻找。基础的内容将不再讲解,本文将讲述重点的内容。使用步骤 创建需要的监听器(触摸监听器,键盘监听器)。 ...
  • function HpnnView:addCardTouchEvent( sprite ) local function onTouchEnded( touch,event ) ... --触摸处理函数 end local touchListen = cc.EventListenerTouchOneByOne:create() ...
  • PS 这个是我自己用来记录的,有兴趣写游戏脚本的朋友请自动搜索 触动精灵官网 ,下载集成开发环境,手机模拟器,以及学习视频, ...touchDown(0, x , y)–模拟手指触摸位置 点下 mSleep(20) --停止...
  • 这里的函数主要用来做:回调函数。...-- 许多功能需要传入一个 Lua 函数做参数,然后在特定事件发生时就会调用传入的函数。例如触摸事件、帧事件等等。 -- example: local MyScene = class( "MyScene", functio...
  • ImageView可以直接添加触摸/点击监听事件; 3.指针与引用的区别? 指针可能为空,引用不可能为空 指针可以改变指向,引用不能改变引用对象 指针拥有独立的内存,引用和引用对象共享一段内存 指针可以不用初始化,...
  • 5_脚本开发常用函数-触摸函数讲解 6_Lua运算符介绍 7_Lua流程控制讲解 8_Lua循环控制讲解 9_实战1-自己封装FindColor函数 10_实战2-日常活动脚本制作 11_实战3-三界奇缘活动脚本制作 12_实战4脚本功能设计...
  • lua -- handler

    2014-04-06 21:27:00
    在 quick-cocos2d-x 中,许多功能需要传入一个 Lua 函数做参数,然后在特定事件发生时就会调用传入的函数。例如触摸事件、帧事件等等。 local MyScene = class("MyScene", function() re...
  • 到目前为止,我们已经实现了选择植物种类的功能,那么,当植物选择完毕之后,我们点击“一起摇滚吧”按钮,开始游戏,...我们在MainScene类中的showChooseWindow函数中的按钮回调onButtonClicked中添加开始游戏功能:
  • 带有一些附加功能 添加模块 LED 支持WS2812-NeoPixel RGB LED 吨 在4线SPI模式下完全支持基于ILI9341和ST7735的TFT...直接捕获到tft显示(tft.jpgimage(x,y,scale,“ cam”)函数 cjson 快速,符合标准的编码
  • cocos-lua的event事件

    千次阅读 2019-08-16 09:52:05
    1.为每一个 事件注冊回调函数 ...单点触摸 注冊函数为 cc.Handler.EVENT_TOUCH_BEGAN =40 cc.Handler.EVENT_TOUCH_MOVED =41 cc.Handler.EVENT_TOUCH_ENDED =42 cc.Handler.EVENT_TOUCH_CANCELLED =...
  • 这里只针对lua1.为每个关心的事件注册回调函数 具体分为以下几种 1>单点触摸 2>多点触摸
  • cocos2dx 3.x触屏时间分为单点触摸和多点触摸: 单点触摸:(即只有注册的Layer才能接收触摸事件) ... 1.1 基本函数 onTouchBegan 如果返回true:本层的后续Touch事件可以被触发,并...
  • Lua笔记:Button控件按钮创建及使用

    万次阅读 2015-04-20 11:49:27
    --------------------------- Button控件按钮使用 ----------------------------------------- --lua 中 Button按钮... --Button 触摸处理函数 local function TouchDownAction() if self.simulateDataLayer:isVis
  • 实现原理:随着触摸点的移动,通过setBlendFunc函数设置部分区域的颜色混合(将上层图片透明度为0,底层我们想要的图片就显示出来) --橡皮擦功能测试 local function initInfo() local scene = CCScene:create() ...
  • 在C++通过重写ccTouchBegan()、ccTouchMoved()、ccTouchEnded()三个函数来响应触摸事件。 在Lua器中就能够了。 1.先设置该图层能够触摸。然后注冊响应函数onTouch gameLayer:setTouchEnabled(true) ...
  • 1 注意,对外导出的函数,不能设置local 如 fuction c:fun() end 2 layer注册触摸事件,必须setTouchEnabled(true)

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
热门标签
关键字:

lua触摸函数