(二)display库之文本、图形

  今天开始就正式开始 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)	--画笔的颜色

最终效果:
详细可参考官方API
  今天就暂时到这里啦!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值