lua 的 break】的更多相关文章

break   ,退出最近的一层循环 return   , 一般用于函数,会直接退出所有的循环,或者判断,返回参数 ,,,} for key,value in pairs(tb) do while(true) do == key then ") return else print("break") break end end print("out while") end print("out for") 结果: breakout whi…
循环中内嵌一个循环,然后将具体的逻辑放在内嵌循环中去处理,在内嵌循环的开始,添加一个判断语句,满足条件就跳出内嵌循环. 示例代码如下: tab = {,,,,} ,#tab do while true do then break end print(tab[i]) break end end 运算结果: 切记,内嵌循环中两个地方需要break!!!    内嵌循环中两个地方需要break!!!   内嵌循环中两个地方需要break!!!…
Lua模拟器js方案 1.语法级模拟lua与js语言差异 1.1注释 js 为//,lua为--. 1.2变量js利用val来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local声明则为局部变量. 1.3运算符js + - * / % ++ --= += -= *= /= %=支持字符串 +txt1 = "what a very";txt2 = "nice day";txt3 =txt1 " " +txt2;打印txt3输出…
Lua与javascript的差异 2010-03-08 Lua模拟器js方案 1.语法级模拟 lua与js语言差异 1.1注释 js 为//,lua为--. 1.2变量 js利用var来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local声明则为局部变量. 1.3运算符 js + - * / % ++ -- = += -= *= /= %= 支持字符串 + txt1 = "what a very"; txt2 = "nice day"; tx…
Lua 是什么? Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发. 设计目的 其设计目的是…
我们来看看lua vm在解析下面源码并生成bytecode时的整个过程: foo = "bar" local a, b = "a", "b" foo = a 首先我们先使用ChunkySpy这个工具来看看vm最终会具体生成什么样的vm instructions 在这里,开头为[数字]的行是vm真正生成的字节码,我们看到一共生成了六行字节码.首先loadk将常量表中下标为1的常量即"bar"赋给寄存器0:然后setglobal将…
怎么调试lua性能 我们的游戏使用的是Cocos2dx-lua 3.9的项目,最近发现我们的游戏.运行比较缓慢.想做一次性能优化了.其实主要分为GPU.CPU的分别优化.GPU部分的优化.网上有很多优化措施.但是CPU因为是每个项目都不一样所以也没有什么特别的通用的优化手段.软件运行的速度毕竟跟你的代码质量是直接挂钩的.常规的Lua优化方式.也就是很多地方在提的公共函数的本地化.比如说`local type = type`这种.不过在后来的调查中发现这种方式对于lua5.1效果比较明显.至于5.…
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出Excel为Lua/Json/Xml实例教程(三):终极需求 一.Why 无论做什么事,一定有个理由,所以第一步,我来简述一下Why,为什么会有这个需求. 做过游戏的朋友应该知道,游戏当中很多的数据都是通过策划配置在…
Unity里能创建 c#脚本模板,但是如果我想创建Lua脚本模板怎么办呢?拓展一下编辑器吧. 设置一下Lua脚本的模板地址 :  Assets/Editor/Lua/Template/lua.lua using UnityEngine; using UnityEditor; using System; using System.IO; using System.Text; using UnityEditor.ProjectWindowCallback; using System.Text.Reg…
#include "lua.hpp" #include <iostream> using namespace std; #pragma comment(lib, "lua5.1.lib") struct lua_guard{ lua_State *pL; lua_guard(lua_State *s) :pL(s){} ~lua_guard(){ lua_close(pL); } }; int main(){ lua_guard g(lua_open()…
协同程序与线程thread差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和命令指针,同时又与其他协同程序共享全局变量和其他大部分东西.从概念上讲线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行.也就是说多个协同程序在任意时刻只能运行一个协同程序,只有当正在运行的协同程序显式的要求挂起时,它的执行才会暂停.   一.协同程序coroutine        Lua将所有关于协同程序的函数放置在一个名为“coroutine”的table…
//顶 - - - //顶 #include <stdio.h> #include <string.h> extern "C"{ #include <lua.h> #include <lauxlib.h> #include <lualib.h> } #pragma comment(lib,"lua.lib") void stackDump(lua_State* L) { int i; int top = l…
在很多游戏中,脚本语言是不可或缺的一部分,很多游戏都使用到了Lua,js,python一类的脚本,脚本语言可以在很多方面给开发进程带来帮助.脚本语言可以作为初始化文件读入变量和游戏数据的一个快速而方便的方法.它们通常因为具有节省编译时间提高生产效率.提高创造性和拓展性的有点而受到众多游戏开发厂商的青睐.在本篇博客中,马三将和大家一起学习一下Lua这门脚本语言. 一.搭建Lua运行环境 学习任何一门编程语言恐怕都是要先搭建起来它的开发环境,这样才能多写代码多练习.Lua有一个交互的解释程序(lua…
1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string.rep(s,n) 返回字符串s重复n次的结果:    3). string.lower(s) 返回s的副本,其中所有的大写都被转换为了小写形式,其他字符不变:    4). string.upper(s) 和lower相反,将小写转换为大写:    5). string.sub(s,i,j) 提取字符串s的第i个到第j个字符.Lua中,第一…
quick-cocos2d-x 实现在lua里面完成android支付宝的接入 一.支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程.然后下载他们的sdk-WS_SECURE_PAY_SDK. 二.开始集成. 1.在eclipse里面导入alipay的工程库 WS_SECURE_PAY_SDK/paydemo/Android_SDK/alipay_lib 然后在自己的项目里面引用一下. 2.写自己的java类.keys.java ? 1 2 3 4 5 6 7 8 9 1…
#include <stdio.h> #include <string> #include <direct.h> #include <windows.h> #include <io.h> extern "C" { #include "D:\myPath\lua\5.3\include\lua.h" #include "D:\myPath\lua\5.3\include\lauxlib.h"…
设计一个简单的事件派发器,个人觉得最重要的一点就是如何保证事件派发过程中,添加或删除同类事件,不影响事件迭代顺序和结果,只要解决这一点,其它都好办. 为了使用pairs遍历函数,重写了pairs(lua 5.2以上版本不需要): stdext.lua local _ipairs = ipairs function ipairs(t) local mt = getmetatable(t) if mt and mt.__ipairs then return mt.__ipairs(t) end re…
Lua的标识符包含数字,字母以及下划线,数字不能作为标识符的开头. and break do else elseif end false for function goto if in local nil not or repeat return then true until while 以上不能作为关键字,和java不同的有goto,local,nil,repeat,until. Lua区分大小写.按照惯例,下划线开头,后跟大写字母为Lua的保留字. + - * / % ^ # == ~=…
前言 由于之前有c/c++.javascript基础,所以学Lua的时候喜欢拿来和前面的语言比较,这里主要和C比较 1.if...else Lua的if语句格式: if 条件 then 条件成立,运行的程序块 else 条件失败,运行的程序块 end Lua没有大括号来表明程序块,所以,后面要加上end来表明if语句已经结束,同样,嵌套if时,通过elseif和else  if来区分 2.while 格式: while 表达式 do --body end 注意:Lua并没有像其他语言那样提供类似…
这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实际上也是一种把业务分离,用脚本控制的架构,可能有些人把这种脚本叫做业务引擎,工作流等. 为什么选择lua? 因为它是一个能和C/C++结合得很紧的脚本语言,而我们的程序是用VC++ 写的:另外一点是因为它的名气,连WOW都用lua来提供API让玩家修改其游戏行为,那我是找不到什么理由拒绝它了. Lu…
在lua脚本调用中,如果我们碰到一种不好的脚本,例如: do do end 那我们的程序主线程也会被阻塞住.那我们如何防止这种问题呢?下面就给出一个解决的办法. 首先为了不阻塞主线程,那我们就要开一个线程,把处理脚本的操作都放在这个新开的工作线程里.(要详细了解工作线程和界面线程的区别和管理,请参看大神的一篇文章BLOG下Windows编程里的<Windows 线程漫谈——界面线程和工作者线程>). 总体思路: 1.开线程来执行脚本解析,下面是StartRun() 2.导出一个判断是否结束函数…
--利用lua中的table是哈希表这一点进行计算 function lua_distinct_union (union_t1,union_t2) if(union_t2==nil) then union_t2={}; end; local result={}; for k,v in pairs(union_t1) do result[v]=v; end; for k,v in pairs(union_t2) do if result[v] ==nil then result[v]=v; end…
提到C++与lua互调,不可不提栈. 栈是C++和Lua相互通讯的一个地方. 首先这个栈并不是传统意义上的栈(传统的栈需要放同一种数据类型,但在网上的某些资料说,每个栈元素是一个联合体). 栈从上向下分别是-1,-2,-3... ; 从下向上分别是1,2,3... 这也就是lua_gettop为什么可以获得栈中总元素数的原因.因为lua_gettop()获得的是从下向上栈顶的索引,因为从1开始,栈顶的索引也即是总元素数. 1. lua_getglobal(L,“lua变量名"); 这个函数会将l…
Lua字符串库小集 1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string.rep(s,n) 返回字符串s重复n次的结果:    3). string.lower(s) 返回s的副本,其中所有的大写都被转换为了小写形式,其他字符不变:    4). string.upper(s) 和lower相反,将小写转换为大写:    5). string.sub(s,i,j) 提取字符串s的第i个到第j个…
                               好的       小巧: 20000行C代码 可以编译进182K的可执行文件 (Linux下).       可移植: 只要是有ANSI C 编译器的平台都可以编译. 你可以看到它可以在几乎所有的平台上运行:从 microcontrollers Lego Minstorms NXT, 到 移动平台, 到 游戏主机,甚至 浏览器 (翻译成JavaScript). 作为一个嵌入式可扩展语言 提供了简单直接的 C/C++交互接口.     …
-- Desc :实现在LUA_PATH中的lua文件中遍历寻找没用到PNG_PATH路径下的png图片,并将其打印出来. -- Date :12:49:28 2014-09-04 1 print("Lua Script Start") function getFileName( path ) len = string.len(PNG_PATH); ) --  remove "/" end function isInIt( file,name ) --print(f…
require"lfs" --[[Desc:在B路径D文件中下 搜寻A路径下的没用到的C类文件: 并且将没用到的B类文件名称打印出来: 设置好路径拖到lua自带编辑器中即可运行之;]] --目标所在路径(A)(eg:png所在路径) PNG_FILE_PATH = "E:/Resource/images" --目标所寻路径(B)(eg:lua所在路径) LUA_FILE_PATH = "E:/Resource/scripts" --搜寻目标后缀c…
按:最近看到了依云的文章,一方面,为Lua被人误解而感到十分难过,另一方面,也为我的好友, 依云没有能够体会到Lua的绝妙和优雅之处而感到很遗憾,因此我写了这篇文章,逐条款地说明了 依云理解中出现的一些问题.希望能够帮助到大家!   1. 协程只能在Lua代码中使用     是的,协程在当你需要挂起一个C函数的时候无法使用.但是,在提出这个缺陷的时 候,是不是应该想一想:为什么Lua会有这个缺陷?       原因很简单:这一点完全避不开,这是C的问题,C无法保存函数执行的某个现场用于 返回这个…
首先Lua执行的每一段代码都称之为“程序块”,一个程序块也就是一连串的语句或命令,例如一个源码文件或一行代码.Lua语句之间并不需要分隔符,如代码中的换行就不起任何作用,当然为了养成编码习惯当两条或者多条语句并列时最好使用分隔符进行分隔,如以下的四种都是合法的.      x = 1; y = 2        x = 1 y = 2         x = 1;      y = 2;        x = 1      y = 2   一.标识符规范      Lua中的标识符可以是由任意字…
这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实际上也是一种把业务分离,用脚本控制的架构,可能有些人把这种脚本叫做业务引擎,工作流等.http://hovertree.com/ 为什么选择lua? 因为它是一个能和C/C++结合得很紧的脚本语言,而我们的程序是用VC++ 写的:另外一点是因为它的名气,连WOW都用lua来提供API让玩家修改其游戏…