- 博客(24)
- 收藏
- 关注
原创 laya3D个人整理(初学)
了解3D游戏开发基础概念场景与摄像机场景:游戏中的3d世界,有了场景才可以进行添加物体,这一步是必须步骤摄像机:游戏世界的眼睛,通过摄像机玩家才可以看到游戏中的场景等,所以每个场景有最少要有一台摄像机摄像机的成像效果,可分为透视与正交。layaAir引起的3d摄像机默认是透视模式,这是模拟了人眼的视觉效果,近处大远处小正交没有透视感,常用于一些2d与3d混合的游戏或者模型查看器等当我们在写3D游戏的代码时,要先在舞台中添加3D场景,添加3D摄像机。再写其它代码坐标系与坐标坐标是3d
2021-09-07 17:33:51
2586
原创 laya个人整理,方便下次回顾~
文本 let txt: Laya.Label = new Laya.Label(); //设置文本内容 txt.text = "hello_laya"; //设置文本颜色 txt.color = "#ffffff"; //设置文本字体 txt.font = "Ya Hei"; //设置字体大小 txt.fontSize = 100; //设置文本取背景 txt.bgColor = "#c30c30"; //设置文本
2021-09-06 17:38:39
2069
原创 creator两张图片是否相交
//element 交互对象 let rec1: cc.Rect = new cc.Rect(_element.x, _element.y, _element.width, _element.height);//声明矩形区域 //被交互的对象 let rec2: cc.Rect = new cc.Rect(event.target.x, event.target.y, event.target.width, ev...
2021-07-14 18:03:17
427
原创 滑动手指进行物体的旋转
点击事件//点击的对象private _targetNode = null;//一开始点击的位置private _startPos = null;private _start = (event) => { this._startPos = this.node.convertToNodeSpaceAR(event.getLocation()); this._targetNode = event.target;}private _move = (event) => {
2021-07-13 11:51:19
265
转载 遥感控制制作
https://mp.weixin.qq.com/s?__biz=MzI1Nzk1MzExNw%3D%3D&chksm=ea0edf6bdd79567d7bb50d78e02fa3c82286c613311ba1f39461dec81e9ec524ffd88cac2988&idx=1&mid=2247484249&scene=21&sn=9402581f52a9d3eaa5a0c31252d42a53#wechat_redirectmark一下,暂时没用到...
2021-07-02 16:28:49
136
原创 2021-07-01___水的交融实现
1.要做水的交融,首先就要用到shader功能,我们就需要先去格外做一个摄像机节点,其次要与主相机分开,就去添加分组,加一个water在主相机场景中添加一个副相机Camera_water主相机的渲染不参与water的渲染副相机只参与water的渲染2.创建一个新的材质与质体这里额外的加入了一段代码:o.a=1.0开启use_alpha_test 并将参数改为自己喜欢的(默认为0.5,我这里是0.3)3.这时候就开始创建自己的场景把我们刚创建好的材质替换这个节点的材质(注意这个节
2021-07-01 15:16:31
187
原创 根据起点与结束位置旋转角度
/** * 求出角度 两点之间的角度angle * @param start 开始位置 cc.v2(x,y) * @param end 停止位置 cc.v2(x,y) */public static getAngle(start, end) { //计算出朝向 let dx = end.x - start.x; let dy = end.y - start.y; let dir = cc.v2(dx, dy); //根据朝向计算出夹角弧度 let a
2021-04-16 17:30:04
263
原创 creator 物理画线
界面如图 drawLine是画线的节点//画线节点private _drawLine: cc.Node = null;//private _point = [];//用来确认是否有开始的节点(画线要有头才能画出尾)private _lineNumber: number = 0;//绘制的线段宽度private _lineWidth: number = 12;//private _lastPoint = null;private _initGame = () => { //开启
2021-04-16 17:22:48
529
原创 排序(个人整理)
冒泡排序start() {//冒泡排序let _arr = [2, 1, 6, 4, 5, 3, 7, 9, 8];console.log(’…arr’, this._sort(_arr, 1));console.log(’…cocos creator有自带正排序sort()方法’, _arr.sort());}/** array:传入的数组* index:0为正排序,否则为倒排序* */private _sort = (array, index = 0) => { if
2021-04-06 16:16:09
135
转载 使用龙骨动画(动态改变龙骨动画名称)
https://blog.youkuaiyun.com/a641832648/article/details/79021225
2021-04-06 14:32:40
352
原创 判断一组数组中的元素是否全部相同
let allEqual = array => array.every(value => value === array[0]); console.log('...相同==true',allEqual([1,1,1,1])); console.log('...不相同==false',allEqual([1,2,1,1]));
2021-03-24 11:29:11
1813
原创 关于cocoscreator方面内存与性能优化的个人总结
预制体prefab加载1:prefab这块的加载优化主要集中在两个地方:一个是load加载耗时优化,另一个是实例化耗时优化。2:加载的prefab越小,那么加载的速度越快,耗时越少,所以当预制体过大(推荐预制体不超过200kb,最好功能单一化来进行拆分),进行适当的拆分。3:将需要用到的prefab动态加载到场景中,场景只保留重要的节点(如背景图与按钮等节点)资源批量加载1:有时需要大量生成节点或者prefab,这些在生成时不进行优化,很容易造成瞬间的内存飙升,从而带来游戏感受上的卡顿。个人认为遇
2021-03-02 10:55:44
1622
原创 使用包围盒来判断点击事件
//默认在点击事件中(touch)//obj就是需要鼠标点击的对象this.node.on(cc.Node.EventType.TOUCH_START, this._clickStart);private _clickStart = (event) => {//鼠标位置与obj位置重叠就会返回一个trueif (obj.getBoundingBoxToWorld().contains(event.getLocation())) {console.log("…鼠标点击到了对象")}}
2021-02-05 11:45:38
126
原创 creator 求两个点的向量长度mag
因为节点都是以正中心为原点来进行坐标转换,如果以节点来换算向量就会出现上下左右侧的数值差别不大的问题解决方法:将需要求出的点转换成世界坐标(世界坐标是以左下角为圆心(0,0))...
2020-11-17 16:26:37
781
原创 creator 刚体不会随着父节点的移动而移动
不知道是不是本身存在的问题,刚体(父节点中的子节点)不会随着父节点的移动而移动,想要移动,只能在update中更新想要移动的刚体位置
2020-09-11 16:26:22
1227
原创 刮刮卡效果与绘制矩形时中心点左下角问题
scratchCardCtr:刮开后的图片节点maskNode:一个mask节点,勾选反向遮罩content:刮卡的涂抹层图片节点_onTouchBegin(event) { cc.log('TOUCH_START 开始刮卡'); let point = event.touch.getLocation(); point = this.node.convertToNodeSpaceAR(point); this._addCircle(point);}_addCir.
2020-09-09 15:44:15
121
原创 限制一定时间内(3s)鼠标的点击次数
限制一定时间内鼠标的点击次数 //声明一个控制点击的变量 let upLoadClicktag = 0; this.onTouch(this._ckHead, () => { //第一次进来为true if (upLoadClicktag == 0) { //改版变量 upLoadClicktag = 1; //此处写你要做的事情,操作DOM,发送ajax请求等等。
2020-08-10 11:59:17
672
原创 cocosCreator:根据父节点来找到需要的节点
/** * * 返回查找到的节点 * @param target 需要的节点名称 * @param node 需要节点的父节点名称 */export function findNode(target: string, node: cc.Node) { //不存在子节点 if (!node.children) { console.log("该节点中没有子节点"); } let _result
2020-05-19 16:56:40
1999
原创 JS数组中的数字与字符串元素的区分
var shuzu = [1, "qw", 2, 5, 8, "dada"]; var regNumber = /\d+/; //验证0-9的任意数字最少出现1次。 var regString = /[a-zA-Z]+/; //验证大小写26个字母任意字母最少出现1次。 for (var i = 0; i < shuzu.length; i++) { ...
2019-11-12 10:07:09
616
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人