lua选择框一定需要对齐方式嘛?

1004人阅读
1.进入lua下载页面:http://www.lua.org/download.html
2.在Binaries栏目下选择lua for windows
3.在download栏目下选择download lua_VXXX from Google Code,然后按照提示去下载即可
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:125903次
积分:1651
积分:1651
排名:第13008名
原创:28篇
评论:27条
(1)(1)(1)(7)(4)(5)(3)(3)(2)(4)(1)(1)(1)9332人阅读
本站文章均为原创,转载务必在明显处注明:(作者新浪微博:)&转载自&原文链接:&&&本博客最新动态!及时将最新博文通知您!                 Him 的Cocos2dx-Lua群中有童鞋出现一个问题,问题是当他在Lua项目中利用Lua创建一个局部变量CCSprite或者CCLayer等CCNode,然后在其他的函数中通过其索引取出之前创建过的CCSprite或CCLayer等,取出后进行设置设置透明、坐标、缩放、runAction等大部分几率都出现无法正常缩放、透明等这些操作。群友尝试了很多方式,都没有解决掉。其实对于此种问题很多刚接触Lua开发cocos2dx的开发者都很容易遇到,其实就是个强转的问题,例如:在 cpp中利用getChildByTag 函数获取目标tag的ccnode:12CCSprite* sp =& (CCSprite*)node-&getChildByTag(x);CCLayer* layer =& (CCLayer*)node-&getChildByTag(x)&在Lua中代码如下:12local sp = node:getChildByTag(x)local layer =node:getChildByTag(x)如上的代码一对比很多童鞋就看出来了,Lua形式的并没有强转类型!是的,就是因为没有强转造成。还有一些童鞋该疑惑了“为什么cocos2dx引擎示例中就没有使用强转呢?”原因是由于示例基本都是采用成员变量进行的,局部变量还是有强转的操作的。那么Lua中强转一个类型函数如下:& &tolua.cast(object,”CCSprite”) && & 第一个参数是需要强转的对象 &,&&第二个参数是强转的目标类型例如我们将x 强转 CCSprite,则:&tolua.cast(x,”CCSprite”)&quick-cocos2d-x 与 OpenQuick&OpenQuick:OpenQuick 首页及下载地址: &quick-cocos2d-x :quick-cocos2d-x 首页及下载地址&:&简单的说:&OpenQuick 与&quick-cocos2d-x 都是针对&2D游戏&基于 Lua 的免费开源框架,且都支持c2dx。OpenQuick :主要是将所有的C2dx的类的基础上进行了再次封装成Q开头文件,开发者需在此基础上进行使用开发。quick-cocos2d-x& : 及时与cocos2dx版本匹配更新,另外它框架比较清晰,便于理解和使用。它所做的不是再次封装,然后尽可能契合cocos2dx,在此基础上做Lua的扩展。Himi认为quick-cocos2d-x更适合一些,而且也是当前开发者使用居多的一款,& 当然这大家可以更深入的去研究。&&
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2108242次
积分:19152
积分:19152
排名:第190名
原创:149篇
评论:2851条
移动开发专家,专注于移动开发领域,多年 J2me、Android、iOS 平台游戏开发经验;
CSDN、ITeye、51CTO、eoe-Android、泰然、中国移动开发者社区、微度网等多家技术论坛担任专家与版主;
? 【iOS】(高级群/超级群)
Cocos2d-x @Himi:
? 【Lua】(高级群)
Cocos2d-x-Lua @Himi:
? 【Unity3D】(超级群)
Unity3D @Himi:
文章:62篇
阅读:983433
文章:34篇
阅读:6533521157人阅读
-----------------
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
#ifdef _cplusplus
extern &C&{
#include &lua.h&
#include &lauxlib.h&
#include &lualib.h&
static void checktoptype(lua_State *L){
&&& if(lua_isnumber(L, -1))
&&&&&&& printf(&number&);
&&& else if(lua_isstring(L, -1))
&&&&&&& printf(&string&);
&&& else if(lua_isfunction(L, -1))
&&&&&&& printf(&function&);
&&& else if(lua_isboolean(L, -1))
&&&&&&& printf(&boolean&);
&&& else if(lua_isnil(L, -1))
&&&&&&& printf(&nil&);
&&& else if(lua_istable(L, -1))
&&&&&&& printf(&table&);
&&&&&&& printf(&userdata or thread&);
static int l_print(lua_State *L){
&&& int ress[100];
&&& int i = 1;
&&& int n = 0;
&&& for(; i &= 100; i++){
&&&&&&& if(lua_isnil(L,-1)||!lua_isnumber(L, -1)){
&&&&&&&&&&&
&&&&&&& ress[i-1] = lua_tonumber(L, -1);//获取number,这个函数不删栈元素
&&&&&&& lua_pop(L, 1);
&&&&&&& n++;
&&& //把值传给lua,调用lua中的print
&&& lua_getglobal(L, &print&);//获取函数
&&& for(i = 0; i & i++){
&&&&&&& lua_pushnumber(L, ress[i]);//push参数
&&&&&&& //printf(&stack level = %d, n = %d\n&, lua_gettop(L), n);
& & & & lua_insert(L,2);//调整输出顺序
&&& if(lua_pcall(L, n, 0, 0)){
&&&&&&& printf(&错误,lua_pcall! %s&,
&&&&&&&&&&& lua_tostring(L, -1));
&&&&&&& return 0;
static const struct luaL_Reg l_lib[] = {
&&& {&luaprint&, l_print},
&&& {NULL, NULL}
int luaopen_llib(lua_State* L){
&&& luaL_openlib(L, &llib&, l_lib, 0);//第二个参数,似乎可以随意写什么都行。
&&& //luaL_register(L, &llib&, l_lib);
&&& return 1;
#ifdef _cplusplus
----------------
----------------
f = function(...)
&&& for i,v in pairs(arg) do --另外发现lua5.2中arg失去了保存可变变量的功能
&&&&&&& print(i,v)
llib = require &llib&
llib.luaprint(12,24,36,48,59)
---------------
c动态库编译方法:gcc -fPIC -llua -lm -shared -o llib.so main.c
lua执行命令: lua main.lua
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18314次
排名:千里之外
原创:23篇
(2)(3)(3)(3)(2)(3)(1)(3)(3)(1)(3)(1)(1)local socket = require(&socket.core&) // socket.core?
luasocket.c
& & if (socket_open()) {
& & & & /* export functions (and leave namespace table on top of stack) */
& & & & luaL_openlib(L, &socket&, func, 0);
#ifdef LUASOCKET_DEBUG
& & & & lua_pushstring(L, &_DEBUG&);
& & & & lua_pushboolean(L, 1);
& & & & lua_rawset(L, -3);
& & & & /* make version string available to scripts */
& & & & lua_pushstring(L, &_VERSION&);
& & & & lua_pushstring(L, LUASOCKET_VERSION);
& & & & lua_rawset(L, -3);
& & & & return 1;
& & } else {
& & & & lua_pushstring(L, &unable to initialize library&);
& & & & lua_error(L);
& & & & return 0;
1 When you extend Lua with C functions, it is a good idea to design your code as a C library, even when you want to register only one C function:
Sooner or later (usually sooner) you will need other functions. As usual, the auxiliary library offers a helper function for this job. The luaL_openlib
function receives a list of C functions and their respective names and registers all of them inside a table with the library name.
1 #include &stdio.h&
2 #include &./src/lua.h&
3 #include &./src/lualib.h&
4 #include &./src/lauxlib.h&
6 static int add(lua_State *L)
8 int a,b,c;
9 a = lua_tonumber(L,1);
10 b = lua_tonumber(L,2);
11 c = a+b;
12 lua_pushnumber(L,c);
13 printf(&test hello!!!\r\n&);
14 return 1;
16 static const struct luaL_Reg lib[] =
18 {&testadd&,add},
19 {NULL,NULL}
21 int luaopen_testlib_core(lua_State *L)
// 注意这里的函数写法
23 //luaL_register(L,&testlib&,lib);
24 luaL_openlib(L,&testlib&,lib,0);
25 return 1;
1 #!/usr/bin/env lua
2 require(&testlib.core&)
// 注意这里的调用,和上面的函数写法是相关联的
3 c = testlib.testadd(15,25)
4 print(&The result is &,c);
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1246次
排名:千里之外
(2)(3)(1)(1)(3)(3)收藏,354 浏览
chuck是一个单线程,异步的C网络库.同时导出了lua接口,可以通过lua方便的编写网络应用.
下面演示一下如何使用chuck编写一个简单的echo服务.
local chuck = require("chuck")
local socket = require("distri.socket")
local engine = require("distri.engine")
local signal = chuck.signal
local signaler = signal.signaler(signal.SIGINT)
local clone
= chuck.packet
local server = socket.stream.listen("127.0.0.1",8010,function (s,errno)
if s:Ok(4096,socket.stream.rawdecoder,function (_,msg,errno)
if msg then
s:Send(clone(msg))
s:SetRecvTimeout(5000)
if server then
signaler:Register(engine,function ()
engine:Stop()
chuck.RegTimer(engine,1000,function()
collectgarbage("collect")
engine:Run()
在命令行下输入./lua echo.lua,然后通过telnet连接服务器即可.
chuck提供了面向事件回调的接口,接下来将会使用lua coroutine中对基本的chuck接口进行封装,实现一个同步网络应用开发框架.
下面再看一个http server的示例.
local chuck
= require("chuck")
local Http
= require("samples.lua.http.http")
local signaler = chuck.signal.signaler(chuck.signal.SIGINT)
signaler:Register(Http.engine,function ()
print("recv sigint")
Http.Stop()
local server = Http.HttpServer(function (req,res)
res:WriteHead(200,"OK", {"Content-Type: text/plain"})
res:End("hello world!")
end):Listen("127.0.0.1",8010)
if server then
Http.Run()
我最终希望将chuck变成一个可以使用lua来编写的应用服务器框架,下面是结合使用luasql生成动态页面的示例.
mysql.html
&!DOCTYPE html&&!--STATUS OK--&
local str = [[
&table border="1"&]]
local driver
= require "luasql.mysql"
env = driver.mysql()
conn = env:connect("ias_test","root","802802","127.0.0.1",3306)
conn:execute"SET NAMES GB2312"
cur = conn:execute("select id,UserName from user limit 20")
row = cur:fetch("a")
str = str .. [[
&td&id&/td&
&td&name&/td&
while row do
str = str .. "&tr&&td&" .. row.id .. "&/td&&td&" .. row.UserName .. "&/td&&/tr&"
row = cur:fetch("a")
str = str .. "&/table&
conn:close()
env:close()
return str
这个html文件中通过使用&?lua&标签嵌入了一段lua脚本,当请求这个页面的时候,内嵌的lua脚本将会被执行以生成输出页面.
为了让这个html中的lua脚本得以正确执行,http.lua将被调整成如下形式:
local chuck
= require("chuck")
local Http
= require("samples.lua.http.http")
local signaler = chuck.signal.signaler(chuck.signal.SIGINT)
local Template = require("samples.lua.http.Template")
signaler:Register(Http.engine,function ()
print("recv sigint")
Http.Stop()
--dynamic page
local server = Http.HttpServer(function (req,res)
res:WriteHead(200,"OK", {"Content-Type: text/html"})
res:End(Template.Load("samples/lua/http/index.html"))
end):Listen("127.0.0.1",8010)
if server then
Http.Run()
chuck目前正在开发中,欢迎大家提出宝贵的意见.
你可能感兴趣的文章
3 收藏,3.1k 浏览
不要错过 TA 的任何更新
如果这篇文章对你有帮助,记得点赞收藏哦,你的支持是我们的动力 ^___^
本文隶属于专栏
lua,C/C++,scheme,go,分布式系统
分享到微博?
举报理由:
推广(招聘、广告、SEO 等)方面的内容
带有人身攻击、辱骂、仇恨等违反条款的内容
与已有问题重复(请编辑该提问指向已有相同问题)
内容质量差,或不适合在本网站出现
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:
扫扫下载 App

我要回帖

更多关于 lua 弹出对话框 的文章

 

随机推荐