Cocos2d-X Lua脚本语言简介(一)

Lua脚本语言学习:


(1)

//输出类型:

--[[print(b);
print(type("hello world"));
print(type(4*4));
print(type(print));
print(type(true));
print(type(nil));
print(type(type(x)));
--]]

--[[print(type(a));
a=10;
print(type(a));

(2)
a="one string";
b=string.gsub(a,"one","another");--gsub为一个替换的函数  表示后面的替换前面
print(a);
print(b);--]]


--[[a='liu peng';
b=string.gsub(a,'liu','peng');--gsub为一个替换的函数  表示后面的替换前面
print(a);
print(b);--]]

(3)
--[[print("10"+1);--转化为数字
print("10+2");--字符串
print("3"*"2");--转化为数字
print(123 ..456);--数字转化为字符串 。。为连接符   --]]


--[[line=io.read(); --读取一行
n=tonumber(line);--将行转化为数字
if n==nil then
error(line .."is not a number");
else
print(n*2);
end--]]

(4)
--[[if tostring(10)=="10" then  --将数字转化为字符串
print("my name is lao niu");
print(10 .."10");
else
print("gege");
end--]]

(5)
--[[
--函数调用的实现方法
b=10;
function test()
b=11;--局部变量 或者local b=12; 一般情况下加local,只能在lua文件中使用此变量,在外部无法使用。
print("test");
end


print(b);
test();
--]]

(6)
--[[
function max(a,b)
if(a>b) then--必须有then 否则出错
return a;
else
return b;
end
end
print(max(10,11));
--]]

(7)
--[[
--for语句的使用方法


for i=1,100,2 do   --表示1到100之间的数,阶梯为2即:1,3,5,7.。。。。。
print(i);
end
--]]


(8)
--[[
--表的使用
Config={hello="hello lua",age=50} --表示键值对
Config.world="hello world"; --向表中添加一个值
Config.number=100; --向表中添加一个值


print(Config["hello"]);
print(Config.world);
print(Config.number);
--]]


--快速遍历表的实现(1)
days={key="a","b","c","d"}  --混合模式的时候,先找不是字母的下标,即key值
for key,value in pairs(days) do
print(key,value);
end


--快速遍历表的实现(2)
news={A="a",B="b",C="c"}
for key,value in pairs(news) do
news.A=nil;
print(value);
end


--快速遍历表的实现(3)
vas={1,2,3,4,5,"hello"}
for key,values in pairs(vas) do
print(key,values);
end


--快速遍历表的实现(4)
arr={}
for var=1,100 do
table.insert( arr,1,var);--相当于栈的存储方式
end
for key,values in pairs(arr) do  --pairs遍历键值对的  全部输出
print(key,values);           --ipairs遍历下标不为连续整数的就退出
end
--打印数组的数据个数
--方式一:
print(table.maxn(arr));
--方式二:
print(#arr);--打印数组的数据个数


--快速遍历表的实现(5)
tb1={b="hh","aa",v="bb"}
for key,values in ipairs(tb1) do
print(key,values);
end


--[[
--改变attack的数值(会出现问题  全局变量hero改变,会改变输出的数值)
hero={attack=100}
function hero.skill(AddAttack)
hero.attack=hero.attack+AddAttack;
end
hero.skill(20);
print(hero.attack);
--]]



(9)
--[[
--面向对象的使用
--解决传值的问题
hero={attack=100}
--一个函数
function hero.skill(self,AddAttack)
self.attack=self.attack+AddAttack;
end


oneHero=hero;
hero=nil;
oneHero.skill(oneHero,50);
print(oneHero.attack);
--]]


--[[
--面向对象的使用(优化)
--解决传值的问题
hero={attack=100}
--一个函数  self也为隐式的调用
function hero:skill(AddAttack)
self.attack=self.attack+AddAttack;
end


oneHero=hero;
hero=nil;
oneHero:skill(50);
print(oneHero.attack);
--]]

Hero={}
function Hero:new(o)
o=o or{}
setmetatable(o,self);--原表
self.__index=self;--原方法
return o;
end


function Hero:skill(AddAttack)
self.attack=self.attack+AddAttack;
end


oneHero=Hero:new{ attack = 90 }
oneHero:skill(10);
print(oneHero.attack);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值