1.摄像机移动时,GameOver图片不会移动,导致GameOver半屏显示,怎么办?

解决思路:改变camera的culling mask,使得主相机不渲染UI,另外设置一个静止相机渲染UI。

步骤:

  • 将包括GameOver在内的所有不会移动的UI的Group设置为“UI”(自己命名)。
  • 在main camera的culling mask中,去掉“UI”层级。
  • 新建一个camera,命名“UI Camera”,在它的culling mask中,只勾选“UI”层级。

2.如何在一个脚本中调用另一个脚本中的函数?(例:我要在“shootControl”脚本中调用“cameraControl”的Init()方法)

解决思路:在"shootControl"中获得"cameraControl",然后直接调用。

步骤:

  • 此时shootControl和cameraControl分别被绑定在两个不同的Node上(也可以在同一个node上啦,看情况)。
  • 导入cameraControl类,使得shootControl可以识别cameraControl类型。
var cameraControl = require("cameraControl");
  • 设置cameraControl类型的变量,在属性检查器面板上,将脚本拖拽上去。
cameraControl:{default:null,type:cameraControl},
  • 可以直接调用cameraControl里面的函数了
this.cameraControl.SmoothCameraPos(this.startPos,this.correctPos); //更改相机位置

3.如何使得摄像机平滑移动到另一个位置?

解决思路:使用动作系统,给定targetPos和时间,调用API即可。

 SmoothCameraPos(startPos){        var tartgetPos=cc.v2(startPos.x+this.addX,startPos.y+this.addY);var action = cc.moveTo(this.perMoveTime,tartgetPos);this.node.runAction(action);},

4.如何使得某物体始终处于摄像机的某个位置(非中央)?

(1)已知该物体的世界坐标:this.startPos

(2)已知摄像机的世界坐标为(0,0),在属性检查器上改anchor值是没有用的。在场景中也看不出来摄像机的渲染平面有多大,可以推测出width和height暂时和设计分辨率相同,机型不同,相应也会变化。而默认anchor在(0.5,0.5)。

(3)若直接将摄像机的position设置为该物体的position,可以看到该物体为于相机正中央(1/2height、1/2width),好像是(0.5,0.5)锚点和该物体锚点重合了。

(4)我希望在外面暴露出来两个参数:posRatioX、posRatioY,分别代表该物体始终占据屏幕X轴、Y轴的比例位置。比如填写(0.5,0.25)时,位置如图:

    onLoad(){this.addX=this.canvas.width*(0.5-this.posRatioX);this.addY=this.canvas.height*(0.5-this.posRatioY);},InitCameraPos(startPos,nextPos){this.node.x=startPos.x+this.addX;//若不加 add值,则 起点处于相机正中央this.node.y=startPos.y+this.addY;},

老实说,上面这个相加公式是我猜出来的。我们来看看,设置posRatioY为x,addY为y。则已知,x=0.5,y=0; x=0.25,y=0.25*height;x=0.75,y=-0.25*height。就这样,根据这三组值,我猜出了这个公式。(自己的几何比较差,于是用代数解出了这道题的感觉。)

5.如何判断鼠标/触摸点和场景中物体的距离?

解决思路:先搞清楚触摸点的坐标系和场景中物体的坐标系之间的差异,再将它们转换到同一个坐标系下。

具体解决步骤:

(1)鼠标触摸点的坐标系:看了官方关于摄像机的坐标转换的解释之后,我发现,触摸点所处的是摄像机坐标系,即不管相机在场景中如何移动,它的坐标系都是以屏幕左下角为原点。

(2)根节点的position是世界坐标。子节点的position是本地坐标,以父节点的anchor位置为坐标原点。

(3)将鼠标触摸点和物体的坐标都统一到世界坐标下:

A.触摸点:

 this.cameraControl.node.getComponent(cc.Camera).getCameraToWorldPoint(event.touch.getLocation(), this.mousePos);

B.物体坐标:

将我要操作的物体的父物体的anchor设置在世界坐标系的原点处。

【Cocos Creator】 摄像机移动碰到的一些问题相关推荐

  1. Cocos Creator 2D摄像机 [Lv.1] 小视图

    目录 摘要 环境 资源 准备工作 正式开始 对工程做一些修改 如何互动 上摄像机 缩放(看清黑头和脂肪粒) 动起来 辅助的边框 得有边界 用分组解决个bug 划重点 摘要 本系列文章主要实操2D摄像机 ...

  2. Cocos Creator v1.5发布:物理集成、2D摄像机、TypeScript

    经过1个多月的Beta版发布和社区测试,直至跳票两周之后,我们终于能够发布 Cocos Creator v1.5 正式版了.这个版本又给大家带来了很多实用的新功能. Cocos Creator 作为第 ...

  3. cocos creator | 用摄像机实现残影幻影拖尾效果,camera 教学,【白玉无冰】每天进步一点点

    超级幻影了解一下? 基本原理 利用摄像机拍摄角色,然后投影到多个显示画布,给画布节点设置不同的透明度,最后让画布节点跟随角色移动. 创建角色和摄像机 创建一个新的typescript项目. 创建一个角 ...

  4. Cocos Creator ScrollView 性能优化

    9月份 Cocos 技术开发分享会第 2 期在深圳圆满举行,近期我们将对活动干货进行整理,陆续在公众号上发布,没能去到深圳现场的开发者可以关注一下!对于分享的议题有哪些疑惑也欢迎在文末给我们留言! 本 ...

  5. cocos creator 安卓原生平台环境_竞技对抗小游戏单挑篮球开发历程 | Cocos技术派第12期...

    本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者 ID:蟹老板,2017年加入社区,文章作品包括<猎头专家的开发历程>等. Co ...

  6. 光影的魔法!Cocos Creator 实现屏幕空间的环境光遮蔽(SSAO)

    引言: 本文作者 alpha 从事游戏前端开发已经5年,毕业后他先是入职了腾讯无线大连研发中心,而后开启了北漂生涯,在北京的这3年一直都在使用 Cocos Creator,对前端业务,包体.内存优化有 ...

  7. Cocos Creator 3D 材质系统:曲面效果如何实现?

    引言 前不久发布的 Cocos Creator 1.0.2 版本中正式加入了对 OPPO 小游戏.vivo 小游戏以及华为快游戏平台的支持,在诸多 Creator 3D 制作的小游戏案例中,<猪 ...

  8. Cocos creator -引擎解构

    Cocos creator -引擎结构 在长期的开发中,发现cc对大型的手游加载项目的速度很慢,于是我产生了一种想法,想把 cocos creator移植在Linux上做开发,编译时在Windows. ...

  9. 022 - cocos creator 3D

    #cocos creator 3D warning 报错:"project:///assets/main.js,将https中的export注视掉重试一遍 知识点 scrollview组件添 ...

  10. Cocos Creator 3.0 教程! 标志板! Billboard !

    用2D素材节省包体!节约性能! 前言 标志板是什么呢? billboard 英文翻译为广告牌,标志板和广告牌肯定会有不可告人的联系! 广告牌的使命是什么?就是无论你在哪里,都要让你看到! 标志板也是这 ...

最新文章

  1. OpenCV中cvBlobsLib的编译与使用
  2. Spark读取MySQL中的数据为DataFrame
  3. Transductive和Inductive
  4. java jaspersoft,Jaspersoft Studio
  5. linux getopts学习笔记
  6. 写一个函数返回参数二进制中 1 的个数(三种方法)
  7. ubuntu安装Qt开发环境
  8. 刀剑神域动漫网页设计作品 学生表格布局网页作业成品 table漫画网站制作 dreamweaver静态HTML学生网页制作模板
  9. 0xff00是65208
  10. 数组复制速度 System.arraycopy()clone() Arrays.copyof() for()探究
  11. python发邮件和网络的简单使用
  12. 关于使用pietty或putty终端连接ubuntu虚拟机时报被拒绝连接问题
  13. 关于sophus模板类需要注意的情况(error: missing template arguments before ‘SO3_R’)
  14. IOS判断用邮箱登录验证是不是合法的方法
  15. 台电t30_这次我真的是服了,8000mA的T30续航力真心不虚
  16. 手把手教你学51单片机
  17. 互补滤波系数_四元数+互补滤波 - osc_5aksh307的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. android videoview截屏,android VideoView截屏黑屏解决方法
  19. Overfeat 笔记
  20. Android 智能手机程序使用历史记录查询

热门文章

  1. 车载网络 - BootLoader刷写 - 总纲
  2. 结对第二次作业--编程实现
  3. servlet post 中文乱码问题
  4. 下面哪个P2P网贷平台将会倒闭或者跑路?[预测挺准]
  5. MySQL Workbench 6.3CE 菜单汉化 xml
  6. CATIA V5的设计CAE一体化平台 | 达索系统百世慧
  7. jQuery Colorbox插件
  8. html 勾选框点击文字勾选,ztree点击文字勾选checkbox,radio实现方法
  9. linux mysql5.6.24_MySQL 5.6.24/5.5.43 发布下载
  10. 2019年全国5A级旅游景区点位分布数据