今天开始就正式开始 Corona SDK 引擎的学习了,引擎的开发语言为 Lua ,在学习之前需要先具备 Lua 的基础知识,博主在菜鸟教程入门。Corona SDK 的API有上千个,这里重点先列出几个常用的:
一、Corona SDK 之常用的API
① display
② composer
③ timer
④ widget
⑤ transition
官方API传送门
二、display之newText
我们之前在 sublime 编辑器中打印过 Hello World,那只会显示在控制台,现在我们尝试让它显示在 Corona 模拟器上,代码如下:
--屏幕内容中心的坐标
local _screenCenterX = display.contentCenterX
local _screenCenterY = display.contentCenterY
--后面的参数分别为字体样式和大小
local ourText = display.newText("Hello World", _screenCenterX, _screenCenterY, "Arial", 60)
以上只是其中一种写法,还有一种写法:
local options = {
text = "Hello world", --别忘了元素后面的','
x = _screenCenterX,
y = _screenCenterY,
fontStyle = "Arial",
fontSize = 60
}
local ourText = display.newText(options)
后者以参数表的形式表示之,在参数众多的时候,更加通用。
然后我们尝试更改字体的颜色:
ourText:setFillColor(1, 1, 0) --设置矢量和文本对象的填充颜色,图像对象也适用。
ourText:setTextColor(1, 1, 0) --设置文本框字体的颜色,这里也有效
回到模拟器ctrl + R 可以看到字体变成黄色。
接下来完成一个简单的交互事件,我们单击内容区域可以使文本随机变色:
function screenTap(...) --三个点儿暂时不管
local r = math.random(0, 100)
local g = math.random(0, 100)
local b = math.random(0, 100)
ourText:setFillColor(r/100, g/100, b/100) --填充率(0-1.0),故除以100
end
display.currentStage:addEventListener("tap", screenTap)
这样就完成了文本随着鼠标单击变色的需求。需要知道的是呈现多行文本框时,请注意最终显示对象不要超过任何目标设备的最大纹理大小限制。如果需要渲染带有大量行的文本对象,则应创建多个文本对象并将它们放置在下一个之后。
注:涉及到的其他API都有注释或系Lua知识
三、display之图形
在Corona中可以自己手动描点,画不规则的多边形,也可以使用系统库中画基本图形的方法:
--params:坐标,半径
local myCircle = newCircle(100, 100, 50)
myCorcle:setFillColor(1, 1, 0)
--params:中心点坐标,宽,高
local myRect = display.newRect(50, 50, 20, 100)
myRect:setFillColor(1, 1, 0)
--params:中心点坐标,宽,高,圆角半径的1/4(四舍五入)
local myRect = display.newRoundedRect(50, 50, 100, 100, 20)
myRect:setFillColor(1, 1, 0)
接下来手动绘制自己需要的图形:
local vertices = { --顶点数据
0, -100,
27, -35,
105, -35,
43, 16,
65, 90,
0, 45,
-65, 90,
-43, 15,
-105, -35,
-27, -35,
}
local myPolygon = display.newPolygon(display.contentWidth*0.5, display.contentHeight*0.5, vertices)
myPolygon.fill = {type = "image", filename = "Resource/bg.png"} --围成区域的填充图
myPolygon.strokeWidth = 20 --画笔的宽度
myPolygon:setStrokeColor(1, 0, 0) --画笔的颜色
最终效果:
今天就暂时到这里啦!