cocos2d_lua 2.5D
业务需求需要在2d场景内显示3d的东西,其实原理就是用多个摄像机,在2d的scene实例化这个,然后创建贴图,则会沿Z轴朝里移动,闲话不哆嗦,直接贴代码
-- 投影摄像机
local CameraPersLayer = class("CameraLayer", function ()local layer = cc.Layer:create()return layer
end)function CameraPersLayer:ctor(_cameraFlag)self._camera = nilself._cameraFlag = _cameraFlagself:init()
endfunction CameraPersLayer:init()self:registerScriptHandler(function (event)if event == "enter" thenself:onEnter()elseif event == "exit" thenself:onExit()endend)endfunction CameraPersLayer:setNodeCameraMask(_node )_node:setCameraMask(self._cameraFlag)
endfunction CameraPersLayer:onEnter( )self.m_layer = cc.Layer:create()self:addChild(self.m_layer)local winSize = cc.Director:getInstance():getWinSize()local zeye = cc.Director:getInstance():getZEye();local eye = cc.vec3(winSize.width/2, winSize.height/2, zeye)local center = cc.vec3(winSize.width/2, winSize.height/2, 0)local up = cc.vec3(0, 1, 0)self._camera = cc.Camera:createPerspective(60, winSize.width / winSize.height, 10, zeye + winSize.height / 2) self._camera:setCameraFlag(self._cameraFlag)self._camera:setDepth(self._cameraFlag)self.m_layer:addChild(self._camera)self._camera:setPosition3D(eye);self._camera:lookAt(center, up);self:initUI( )self:setNodeCameraMask(self.m_layer )endfunction CameraPersLayer:onExit( )endfunction CameraPersLayer:initUI( )local spr3d = cc.Sprite3D:create()local sp = util_createSprite("Common/ZooMania_bg_2.png")spr3d:addChild(sp)self.m_layer:addChild(spr3d)spr3d:setScale(0.5)spr3d:setPosition3D(cc.vec3(display.center.x,display.center.y,-608))spr3d:setRotation3D(cc.vec3(0,70,-90))local z = -608schedule(self,function( )z = z + 10spr3d:setPosition3D(cc.vec3(display.center.x,display.center.y,z))end,0.2)endreturn CameraPersLayer
cocos2d_lua 2.5D相关推荐
- Unity 中渲染顺序的理解以及一些坑点 以及2.5D游戏中的渲染排序解决方案
1.ZTest & ZWrite ZTest:深度测试,开启后测试结果决定片元是否被舍弃,可配置 ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置 ZTest可设置的测 ...
- 海尔5D净水洗热水器引领中国制造未来
在过去的一段时间里,智能家居与物联网相继成为热潮,云计算与大数据开始被应用于不同领域的情况下,越来越多的智能家居产品也开始走入普通消费者生活之中--在这些独特的产业创新风起云涌的情况下,越来越多的行业 ...
- advanced east_SpriteKit Advanced —如何构建2,5D游戏(第二部分)
advanced east by Luke Konior 卢克·科尼尔(Luke Konior) SpriteKit Advanced -如何构建2,5D游戏(第二部分) (SpriteKit Adv ...
- 2.5d generator 2.0_ps插件【2.5D插件】
近一两年来创意插画在视觉上的使用越来越多,设计师们都愈加倾向于使用漂亮的插画和产品结合让自己的设计脱颖而出. 在最近这段时间新涌现的设计作品当中,强烈的视觉冲击力和产品结合的展现是它们共通的特点.那么 ...
- SpriteKit Advanced —如何构建2,5D游戏(第一部分)
by Luke Konior 卢克·科尼尔(Luke Konior) SpriteKit Advanced -如何构建2,5D游戏(第一部分) (SpriteKit Advanced - How to ...
- UI设计素材|等轴测图(2.5D插画)
等轴测图(也叫2.5D)越发流行,主要应用于 UI 设计.这一趋势发迹于虚拟货币领域,但在 2019 年得到了充分的发展,现在已经被广泛的应用到其他领域. 搜UI (SOOUI) 带来2.5D插画高逼 ...
- 2.5D休闲娱乐生活类插画素材,给设计添彩!
2.5D,是介于2D和3D之间的一种视角.说起2.5D大家最熟悉的肯定就是<纪念碑谷>.纪念 碑谷利用了等距透视的局限性产生的矛盾空间,大大增强了其趣味性. 2.5D除了用在游戏设计上,近 ...
- UI素材实用模板|2.5D等距风格插画专辑
等距离视图是指物体在划痕时将所有的长度调整成图画的比率,物体的所有平行线同时保持平行的操纵运算的方法.比如电脑应用程序登场的形象.最初的8位电子游戏.近年来互联网.GUI.行动游戏等,都曾广泛使用过. ...
- 2.5D屏幕有什么好处?
2.5D屏幕有什么好处? 2.5D屏幕优点.首先,2.5D屏幕在视觉上给人以美的享受.在手机屏幕表面覆盖上一块2.5D玻璃,能使手机表面外观看起来如同盈而不溢的水滴一般,从一定的角度看上去非常讨好人眼 ...
最新文章
- C++智能指针管理类
- IE跨Iframe时Session丢失问题
- 协同旋转不变网格形变
- 最通俗易懂的乐观锁与悲观锁原理及实现
- 【分享】一个集成tracert和ping的网络监测工具
- requestmapping中path与value区别_1、Spring注解之@RequestMapping
- 地球绕太阳一圈有多远
- 利用CMD命令关闭进程
- Cocos2d-x-3c 设计之路 CocosBase CocosNet CocosWidget
- python学习之心路历程
- android wifi驱动加载失败怎么办,wifi驱动无法被安卓系统正常调用
- dubbo源码分析总结
- 计算机,我该学什么?
- 数据库视图的基本概念及作用
- 现成饮料的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- tsqlconnection连接datasnap出现connection closed gracefully错误的解决办法
- RISC-V ELF规范和函数调用规范
- DOS操作系统下PCI板卡访问方法(二)
- Axure 轮播图 Toast提示
- 这才叫脑洞P图,简直看到怀疑人生!