cocos2dx lua scrollView & AnchorPoint
一、AnchorPoint
以下以图片的显示为例
1、anchor的默认设置时(0,0)即图片的左下角在坐标(0, 0)的位置。
2、(0.5, 0.5)即图片的x轴的中心在原点,y轴的中心也在原点。
3、(1, 1) 即图片的右上角在坐标的(0, 0)位置。
4、(x,y) 的范围一般在0~1之间。
当要设置图片的位置的时候需要先设置好anchor,即跟原点的相对位置。
二、scrollView
local scrollView = ccui.ScrollView:create(); scrollView:setName("scrollView"); scrollView:setAnchorPoint(0.5, 1); scrollView:setTouchEnabled(true); -- scrollView:setBounceEnabled(true); -- 使能能够让界面在到最边界的时候能够反弹 -- scrollView:setDirection(cc.SCROLLVIEW_DIRECTION_BOTH); -- 横向移动才设置
如上设置的是竖向的滚动,如果需要横向的滚动则需要添加注释的设置。
local height1 = getRealContentSize(descLabel).height; local height2 = getRealContentSize(bonus_panel).height; local height = 20 + height1 + height2;
假设descLabel跟bonus_panel已经添加到scrollview里面了,这里计算总的控件的高度。为了设置scrollView的InnerContainerSize,即scrollView内部的可移动的大小。
local scrollHeight = math.min(INIT_SCROLL_HEIGHT, height); -- scrollView:setContentSize(INIT_SCROLL_WIDTH, scrollHeight); -- 设置咱们可视区域的大小 scrollView:setInnerContainerSize(cc.size(INIT_SCROLL_WIDTH, height)); --设置控件的内部可移动区域的大小
当设置完成之后,需要设置添加到scrollView里面的sprite的位置,否则会所有的叠加到一起
descLabel:setPosition(cc.p(posX, height)); bonus_panel:setPosition(cc.p(0, height - height1));
因为相对的是左下角的原点(scrollView的InnerContainer没有设置相对位置),所以以inner的左下角为原点进行设置控件相对位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!