- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 学习opengl相关库配置
找到glfw3.dll文件并把他拷贝放在系统目录下。导出后,得到如下,下载glad.zip文件。把里面的glad.c文件放在工程源文件下。(1).配置附加包含目录。(2)配置附加依赖项。
2023-05-10 17:54:04
199
原创 cocos creater 2.4关于提示Error Bundle Texture doesn‘t contain错误
时隔这么久,我终于想起来我还有一个博客了。。那就更新一点内容吧,关于项目中我遇到的很恶心的错误提示。
2023-04-26 17:44:17
1499
原创 Cocos Creator 制作分步引导
之前我在写laya的时候发现他们官方有一个示例的新手引导还挺好用的,但是当我使用cocos的时候我发现好像并没有好的示例来用,大家一般都是采用mask的形式,然后再去解决适配等问题,但是我其实不太喜欢使用mask的,那样就会增加dc,虽然有人说一两个无所谓,但是能省为什么不省呢?那下面我就自己采用相机分组渲染的方式实现吧!1.添加一个新的分组,专门用来做引导2.在主相机渲染是不勾选引导渲染这个组3.做一个节点专门用来做引导,里面可以加上引导需要的一些手指引导动画,tip提示等,并把它隐藏。默认是
2022-03-14 18:17:14
1131
3
原创 cocos creator碰撞和碰撞回调不生效
1、碰撞不生效一定要记得,在使用物理的时候,一定要先开启物理: cc.director.getPhysicsManager().enabled = true;只有在onLoad()中 开启 才有效,在onEnable()或者start()都无效2.碰撞回调不生效如果想执行官方文档中的碰撞回调函数,需要注意两点(1)勾选刚体的如下选项,碰撞的刚体不管是动态还是静态,两个都需要勾选(2)开启碰撞回调cc.director.getCollisionManager().enabled = true
2022-02-11 14:30:40
5212
原创 Cocos Creator的label文字太长安卓机上不显示
如果lable的文字字数太长不显示,可以把lable的cache model设置为char就可以了附上官方文档
2022-01-12 13:55:56
712
原创 cocos性能优化之spine动画
最近在做一个塔防的项目,怎么说呢,炮台,子弹攻击特效加上受击特效等等等一顿代码撸下来一看dc稳定在200+,这还只是核心的游戏逻辑,如果加上ui那还得了,普通手机挂几分钟就直接挂掉,那就想只能先优化了,这个时候想到之前看过一个滑动层优化的代码,于是想着照葫芦画瓢直接把他的思想拿过来用啊,实践后发现果然可行,不得感叹大佬还是大佬。先看看没有优化之前的dc,只有两种炮的情况下就是120了:看看现在,n种炮加子弹特效加受击特效:那就直接讲思路吧,首先在主场景中,挂一个节点,专门用来做渲染层的东西,比如这
2021-11-19 14:55:36
8518
6
原创 openGL关于VAO和VBO和EBO的区分和理解
1.VBOVBO为顶点缓冲对象,是显卡存储空间中开辟出的一块内存缓存区,用于存储顶点的各类属性信息,如顶点坐标,顶点法向量,顶点颜色数据等。在渲染时,可以直接从VBO中取出顶点的各类属性数据。所以可以理解为VBO就是显存中的一个存储区域,可以保持大量的顶点属性信息。并且可以开辟很多个VBO,每个VBO在OpenGL中有它的唯一标识ID,这个ID对应着具体的VBO的显存地址,通过这个ID可以对特定的VBO内的数据进行存取操作。 .to(0.1,{}).call(()=>{this.arrow.scale = scale}) .to(0.5, { x: x },{easing:"sineOut"}) .call(() => { this.inOrOut = !this.inOrOut; }) .star
2021-09-23 16:00:56
1828
原创 webgl_进入三维世界(2)
显示生活中,我们经常遇到两个物体一前一后放在桌子上,观察时,前面的物体会把后面的物体遮住一部分的情况。隐藏面消除为了解决上述问题,WebGL提供了隐藏面消除功能。让我们绘制场景而不必顾及各物体在缓冲区中的顺序,因为那些远处的物体会自动被近处的物体挡住,不会被绘制出来。开启隐藏面消除功能,需要遵循以下两步:1.开启隐藏面消除功能。(gl.enable (gl. DEPTH_TEST);2.在绘制之前,清除深度缓冲区。(gl.clear (gl.DEPTH_BUFEER_BIT);深度冲突当几何
2021-09-03 14:02:23
188
原创 webgl_进入三维世界(1)
激动的心颤抖的手,今天就开始三维空间的学习。首先我们就从最简单的立方体开始分析吧;立方体由三角形构成首先我们要明白三维物体也是由二维图形(特别是三角形)组成的。如图所示,12个三角形组成了一个立方体。那么我们可能就想,既然三维物体是由三角形组成的,那只需逐个绘制组成物体的每个三角形,最终就可以绘制出整个三维物体了。但是,三维与二维还有一个显著区别;在绘制二维图形时,只需要考虑顶点的x和y坐标,而绘制三维物体时,还得考虑它们的深度信息(也就是z轴)。其次在三维空间站会有视点和视线的概念。你可以理解成
2021-09-03 11:39:15
181
原创 webgl_图形变换(旋转,平移,缩放)
平移平移一个三角形,你需要对顶点坐标的每个分量(x和y),加上三角形在对应轴(如X轴或Y轴)上平移的距离。比如,将点p(x, y, z)平移到p’(x’, y’, z’),在X轴、Y轴、Z轴三个方向上平移的距离分别为Tx,Ty,Tz,其中Tz为0,如下图所示。那么在坐标的对应分量上,直接加上这些T值,就可以确定p’的坐标了,如下所示。x’= x +Txy’ = y + Tyz’=z+Tz我们只需要着色器中为顶点坐标的每个分量加上一个常量就可以实现上面的等式。显然,这是一个逐顶点操作,上述修改应
2021-09-03 10:41:50
1038
原创 OpenGL常用函数
Clamp函数Clamp函数可以将随机变化的数值限制在一个给定的区间[min, max]内:template<class T>T Clamp(T x, T min, T max){ if (x > max) return max; if (x < min) return min; return x;}mod函数mod函数是一个求余函数,其格式为: mod(nExp1,nExp2),即是两个数值表达式作除法运算后的
2021-08-31 18:01:17
1175
转载 cocos creator 2.4.0 渲染流程详解
这个作者分析的很细:https://www.jianshu.com/u/01450ce9ecbf鼓掌鼓掌。
2021-08-31 15:35:10
1235
原创 webgl纹理
效果图:操作步骤:1.创建HTML5 canvas2.获取画布 canvas 的 ID3.获取WebGL4.编译着色器,合并程序//顶点着色器程序 var VSHADER_SOURCE = "attribute vec4 a_Position;" + "attribute vec2 a_TextCoord;" + // 接受纹理坐标 "varying vec2 v_TexCoord;" + // 传递纹理坐标 "vo
2021-08-23 17:33:29
1730
原创 顶点着色器到片元着色器的过程,varying变量
varying 变量: 从顶点着色器向片元着色器中传入数据。varying 变量只能是float(以及相关的vec2,vec3,vec4,mat2,mat3,mat4)。前面我们了解到顶点着色器是控制的几何图形的位置、尺寸甚至指定几何图形的颜色,最终片元着色器来决定几何图形的颜色!但是我们并不知道他们之间的具体过程!下面就来了解两个过程:图形装配过程: 这一步的任务是,讲孤立的顶点左边装配成几何图形,几何图形的类别由gl.drawArrays()函数的第一个参数决定。光栅化过程: 这一步的任务是将
2021-08-16 18:40:53
814
原创 使用shader写序列帧动画
额,闲的没事那就写个简单的序列帧动画吧。。。这真是个奇奇怪怪的想法,但是很实用哈哈哈。美术给你一张图,大概就是这样的然后就讲一下大致思路吧:把图片分成12等分,,每次一次采样即可,如上图,按照1,2,3,4…的顺序采样显示;传入一个开始坐标即可;//effect代码void main () { vec4 o = vec4(1, 1, 1, 1); float unit = 0.25; float unitY = 1.0/3.0; #if USE_TEXTURE
2021-08-09 14:11:52
325
原创 webGL入门(4)
使用uniform变量上一节讲过, uniform变量主要用于所以顶点都相同的(与顶点无关的)数据。与attribute变量传递类似,不同的是uniform传递的目标是片元着色器。实例,鼠标点击生产点,点的位置在不同的象限点的颜色不同// 顶点着色器程序var VSHADER_SOURCE = 'attribute vec4 a_Position;\n'+ 'void main() {\n' + ' gl_Position = a_Position ;\n' +
2021-08-05 22:40:33
156
原创 webGL入门(3)
使用attribute变量使用目的:将位置信息从js代码中传递给顶点着色器,主要有两种方式,attribute变量和uniform变量;attribute变量:与顶点相关的数据;uniform变量:所以顶点都相同的数据。上代码:// 顶点着色器程序var VSHADER_SOURCE = 'attribute vec4 a_Position;\n'+ 'void main() {\n' + ' gl_Position = a_Position ;\n' + '
2021-08-05 21:49:54
191
原创 cocos使用自定义material显示问题
这个问题公司大佬刚跟我啰嗦了好多遍的,但是我用的时候没有注意,就记录一下吧!问题:图片使用自定义的material对图片纹理进行裁剪后显示不全想要的效果:头像从远程服务器下载后切成圆角显示出现的效果:在查找过程中我发现替换成cocos自带的material就不会出现问题,一度以为我自己写的material出现问题,其实后面才知道默认的材质是没有对图片纹理进行操作的,所以它没问题 。然后查找代码发现把他的packable改为false就好了。。太坑了,cocos中的图片下载后它会默认packab
2021-08-05 16:38:49
1034
原创 webGL入门(1)
1.什么是webGL?webgl就是在网页上绘制和渲染图形(3D图形),并允许用户与之进行交互;2.我为什么学webGL?游戏开发中优化性能,它在web上可以开发直接查看效果,便于转化到游戏开发中理解。3.最简单的webGL程序(清空绘图区)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatibl
2021-08-04 23:35:52
416
原创 webGL入门(2)
1.什么是webGL?webgl就是在网页上绘制和渲染图形(3D图形),并允许用户与之进行交互;2.我为什么学webGL?游戏开发中优化性能,它在web上可以开发直接查看效果,便于转化到游戏开发中理解。3.最简单的webGL程序(清空绘图区)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatibl
2021-08-04 22:48:59
164
原创 cocos制作scrollView,实现中间放大显示在最上层,两边等比缩小效果
效果如下:1.制作一个prefab,然后生成10个加入到一个空节点上,考虑到如果生成的关卡数很大的话,加载prefab的时候肯定会出现卡顿效果,所以在网上找了一个类似分帧加载的方法,每个prefab位置计算可以自己算排列,直接上代码如下:_initData(){ //创建item let cb = (i) => { this._initItemPrefab(i) }; this._loadPrefabFrame('ite
2021-07-22 18:56:27
1660
2
原创 cocos creator中使用ScrollView回弹问题
官方文档中说明了Elastic为是否回弹,但是这个具体解释为是否允许滚动内容超过边界,并在停止后回弹,如果设置为false的话是无法触发触摸滚效果的。我是改变了content的大小,如果content大小可以包含所有的item,就不会回弹了。如下,设置resize mode为container就好了,但是这个content里面的item是不能进行缩放的...
2021-07-20 11:27:13
1909
2
原创 切割碎片并合并新图
是的,没错,还是拼图的项目,现在要求是横切或者竖切然后在合并成新的一张图变成一个更大的碎片。1.思路横切:横切顾名思义就是改变v值嘛,他是从 0-1,比如我们要切成4片,那么就是0-0.25,0.25-0.5,0.5-0.75,0.75-1四块。合并的时候呢,就看这个碎片的最大值是不是和另一个碎片的最小值一样,一样的话就取这张图的最小值和另一张图的最大值,得到新的图的v范围.比如;0-0.25 和 0.25-0.5合并,新的图就是0-0.5;注意:这个时候你取得范围变大了,碎片的大小不要忘记相应的也
2021-07-13 20:08:15
248
原创 拼图取轮廓,描边和阴影
1.轮廓轮廓很好算,一张图,你把他中间挖空了是不是就剩下轮廓了。我这里定义了四条边,代表上下左右,人为的扩大一圈,本来uv是0-1的,现在他变成了0-1.2,这个时候我们把他的a值变成0,四个边都处理完成后我们就要挖空他了,把这张图a!=0的部分变成0,这个时候是不是就挖空了。效果图2.描边3.阴影做阴影的时候我们就需要两个pass了,相当于绘制了两次,如下在前一篇中绘制碎片的基础上,加入下代码:相当于把这张图颜色值更改了。...
2021-07-13 19:53:47
552
原创 cocos shader做切拼图碎片
1.前言:为什么会出现这个需求呢?因为在做一个拼图项目,项目主程说不要用mask呀,一个mask就是两个dc,怕后期会出现性能问题,可能这就是大佬的思维吧,于是乎就想到用shader来切一张图,把他变成很多的碎片。2.实现先上图,效果如下:写一下大致思路吧:传入两张图片,一张为原图,另一张为需要采样的形状图,锚点定在左上角,方便位置和大小计算,一个切图大小和相对于原图左上角偏移量。1.contentSize为去一个正方形碎片大小+offset偏移量大小(加上凸起的部分)才是真正的碎片大小,2
2021-07-13 19:38:06
1398
原创 cocos shader初识
cocos shader初识1.cocos中怎么使用shader?他主要包括三个部分,为别为:(1).材质(material):顾名思义就是材质球,每个shader的编写就是在材质的基础上修改,使用到哪个效果把相应的material拖过去赋值给当前物体即可;(2).效果代码(effect):着色器的代码主要在这里编写;(3.)参数(uniform、sampler等:主要是编写主色器的相关参数使用步骤为(引用麒麟子大大的教程):https://blog.youkuaiyun.com/qq_36720848/a
2021-07-13 18:44:28
797
原创 MVC开始学习对于工厂模型和基础模型的思考
基础模型:一般的MVC框架中,都有一个基本的DB数据库基本操作类我叫它DB.class.php,有一个baseModel.class.php 去继承DB.class.phpbaseModel 是所有框架model的基类,其他的model是都需要继承baseModelbaseModel已经有db类的相关方法,增删查改的方法,baseModel其实就是数据库工厂,不同的模型继承baseMode...
2018-12-20 15:58:27
164
原创 PHP+MySQL中文输出出现?解决
开始我设置了编码格式都为utf8,但是发现并没有什么用,于是就找到了这个博主写的最后一个方法。找到了mysql的安装目录mysql\bin并打开my.ini,把character_set_server前面的#(注释)去掉,因为默认的就是等于utf8,结果发现中文正常输出。原文链接: link(https://blog.youkuaiyun.com/damonao/article/details/53169...
2018-12-12 22:08:49
558
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人