![](https://img-blog.csdnimg.cn/20200106162635417.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
cocos creator
文章平均质量分 58
the class of csdn is cocos
goose leaves a mark
这个作者很懒,什么都没留下…
展开
-
Cocos Creator 2d光照
cocos creator 2d光照原创 2024-03-07 16:40:51 · 748 阅读 · 0 评论 -
Cocos Creator 3.8.x 制作模糊效果(比如游戏弹窗需要的模糊效果)
*** 就是一个普通的组件 自定义后处理节点的资源和行为*//** 3d场景的摄像机 *//* 需要把后效产生的图片输出到特定的Sprite上 *//** 模糊材质 *//** 根据传入的模糊效果shader创建一个材质 当然你也可以在编辑器中拖入一个已经绑定模糊shader的材质 */else {@property@property@property/** 设置材质属性 */if (!return;原创 2024-03-05 13:02:58 · 1476 阅读 · 1 评论 -
Cocos Creator 中的assembler那点事
我之前的做法是图片和图片放到一起,label和label放到一起,这样就能达到合批的目的,但是这样做的结果就是代码组织就变得很没有结构性,最好的办法是既能保持节点结构又能达到轻松合批的效果。register函数是初始化渲染组件的构造函数的__assembler__属性,以便后来的init函数赋值renderComp._assembler ,你可能会问Assembler的init函数在哪里执行的呢,不错这个init函数是在_resetAssembler函数里面执行的。那么接下来看看他们的作用,原创 2023-03-16 11:35:27 · 2482 阅读 · 5 评论 -
cocos shader 用到的数学 抛物线,直线方程篇
在抛物线y^2= -2px 中,焦点是( -p/2,0),准线的方程是x=p/2,离心率e=1,范围:x≤0。在抛物线x^2=2py 中,焦点是(0,p/2),准线的方程是y= -p/2,离心率e=1,范围:y≥0。在抛物线x^2= -2py中,焦点是(0,-p/2),准线的方程是y=p/2,离心率e=1,范围:y≤0。在抛物线y^2=2px中,焦点是(p/2,0),准线的方程是x= -p/2,离心率e=1,范围:x≥0。几乎适用于任何曲线,但是有些例外。说明切圆锥的时候是连着的切的。原创 2022-10-13 20:41:28 · 794 阅读 · 0 评论 -
Cocos Creator2.4.8 资源加载源码阅读
最近用到资源加载的问题:加载的资源进度条倒退问题,现在只是用临时的解决方案 - 加载进度如果出现会倒退的问题还是用原来的数值。抽时间看了下cocos creator 资源加载的源码,整理了一下脑图一: 关于资源加载管线的几个疑问:1:任务是什么时候开始创建的,怎么流通的。2:assetManager.assets什么时候装入的。3:三条管线都做了哪些操作。4:资源的加载进度为什么会倒退。二: 看源码分析下上面几个问题,首先说明我没有具体看fetchPipeline,这个只是预加载原创 2022-05-13 11:41:48 · 1852 阅读 · 0 评论 -
钉钉自动发送消息 nodejs实现
我想的是再jenkins触发构建成功的时候,自动触发钉钉的消息通知,另外还有一个钉钉自动发送消息的功能,下面是钉钉自动发送消息的服务,钉钉创建机器人我就不赘述了:const express = require('express');const request = require('request');const cjs = require('crypto');const base64 = require('crypto-js/enc-base64');const ap...原创 2022-04-26 16:08:34 · 1619 阅读 · 0 评论 -
Cocos Creator 源码解读之Schedule
creator 里面的计时器相信大家不陌生,但是了解它的原理是必要的,它的运行机制和setInterval有什么不同呢,先简单说说setInterval的原理:setInterval是每隔一段时间向事件队列里面添加回调函数,如果主线程忙的话调用时间不确定特别容易出问题,由于setInterval只负责定时向队列中添加函数,而不考虑函数的执行,setInterval有一个原则:在向队列中添加回调函数时,如果队列中存在之前由其添加的回调函数,就放弃本次添加(不会影响之后的计时),如果主线程忙的话,之前添加的原创 2022-04-06 15:45:42 · 2277 阅读 · 0 评论 -
cocos 贝塞尔曲线编辑器
贝塞尔曲线的定义我就不详细说了,网上很多资料都有介绍可以用递归方法求曲线点也可以用迭代法求解,这里使用迭代法求点,总的来说就是第一个控制点到第二个控制点的细分点和第二个到第三个控制点连成的线,其他的更高阶的以此类推,知道迭代到点的集合的长度为1,这里采用左键单击画布就会生成一个控制点,根据控制点进行步进生成点进而绘制出来:const {ccclass, property,requireComponent} = cc._decorator;export interface Vector2 {原创 2022-02-23 11:06:37 · 2915 阅读 · 0 评论 -
游戏开发中常用的几何之,两个线段是否相交
游戏中判断两个线段是否相交的重要依据是根据向量的叉乘判断,所以不熟悉叉乘的意义的可以去看看叉乘的定义和几何意义相交又分为两种情况,平行相交和非平行相交:1:先说说平行相交,如果两个向量平行必然满足:ab x cd = 0,但是即使平行了还存在一个问题是否共线,如果不共线他们肯定不会相交:问题来了怎么判断他们共线呢:哎,又用到了向量的叉乘取向量ab的起点和cd的起点组成一个新的向量,如果该向量 x cd(或者ab)等于零的话就证明共线,但是只证明共线还不能证明相交:相交的充要条件是:相交的情况原创 2022-01-08 17:06:24 · 1759 阅读 · 0 评论 -
cocos creator 自定义渲染
最近在想虽然shader可以解决2d中的很多特效需求但是会存在一个问题就是drawcall会增加,这样会带来性能隐患,所以看了一下自定义渲染,整了一个正多边形图片的实现:效果如下图:具体实现是创建一个渲染组件继承自cc.RenderComponent,并且需要一个自定义的assembler,集成的RenderComponent需要 重写updateRenaderData,updateUvs,updateVerts,updateWorldVerts,fillBuffers,其实可以参考 sprite.原创 2022-01-03 21:47:41 · 3102 阅读 · 0 评论 -
cocos creator graphics 报_expandStroke方法里面的sub错误解决
背景:creator画笔有时候会报 sub is undefine错误,原因是cocos的bug:画笔有个assembler,需要更改assmbler里面的一个方法 _expandStroke:export function _expandStroke (graphics) { let w = graphics.lineWidth * 0.5, lineCap = graphics.lineCap, lineJoin = graphics.lineJoin,原创 2021-12-29 12:07:02 · 368 阅读 · 0 评论 -
cocos creator android平台非全屏webview editorBox顶不起页面暂时解决方案
1:场景:游戏嵌入到android平台的webview(非全屏模式),cocos creator 引擎版本:2.3.12:问题:a: 用到了输入框组件但是输入框聚焦用问题,cocos的editorBegin触发的不对,有时候editorBegin触发了但是键盘没有弹出来,很坑,不能忍,产品的需求是当键盘出来的时候抬高输入框尴尬的就是这点(我依据的是只要editorBegin方法触发我就抬高输入框)b: 顶不起游戏页面,输入框被键盘遮挡,暂且还能忍我起先是用html5的input代替,但是发现原创 2021-12-26 21:42:09 · 3467 阅读 · 0 评论 -
cocos 源码阅读(二:RenderFlow 渲染流)
从CCDirector.js中的mainLoop我们了解到 renderer.render是实际参与渲染的方法:顺着线索我们找到了RenderFlow这个类:下面是我整理的部分关键的方法和属性:首先看一下initWebGL方法:initWebGL (canvas, opts) { require('./webgl/assemblers'); const ModelBatcher = require('./webgl/model-batcher');原创 2021-10-14 15:54:11 · 964 阅读 · 0 评论 -
cocos creator源码阅读(一:device)
从director.js中的 renderer.render(this._scene,this._deltaTime)就进入了cocos里面的渲染流程了;renderer的定义可以在 renderer/index.js里面找到:比较重要的成员变量:device,_forward(前向渲染,将试图独享显示到屏幕上依赖device),_flow(渲染流),_handle(渲染前的合批操作,会检查是否符合合批的操作,优化性能,drawcall)device: 负责针对不同平台的渲染设配的统一接口,里面有w原创 2021-10-14 15:01:22 · 1246 阅读 · 0 评论 -
cocos creator jsb2.0手动绑定过程
在打包原生包的时候js层想调用c++层,但是没有对应的实现需要自己扩展自己的jsb,官方有两种绑定方式:手动绑定和自动绑定,这里着重介绍手动绑定:首先找到cocos creator自带的c++层的源码,复制出来然后自定义引擎,这里我也不细讲了,感兴趣的可以去看看官网的文档。将c++层的jswrap 主要的目录如下:找到手动manual文件夹下在这里创建自己的c++文件就可以了这里作为测试我创建了文件 jsb_test.hpp jsb_test.cpptest.hpp:#pr..原创 2021-10-09 14:30:28 · 1511 阅读 · 0 评论 -
CocosCreator物理切割游戏的实现demo
先说一下整体思路:1:首先给一个待切割物体一个刚体组件(RigidBody)和多边形物理碰撞组件(PhysicsPolygonCollider)转载 2021-05-29 19:32:24 · 886 阅读 · 0 评论 -
cocos creator 插件开发
Cocos Creator插件开发经验这里总结一些creator插件开发的一点小经验,先干为敬!我介绍一些哪些是重点的东西,官网上重复的文档我就不搬了一:背景二:需要的知识三:了解一些小概念四:入门五:积他家之精华一:背景1:在开发中如果是creator编辑器所不能触及的地方: 比如自动为一个节点添加很多动画适用于该节点下需要绑定很多的动画场景。 又比如在resource下很多资源,在代码里面引用的时候可不可以不写资源的url降低出错的几率,将资源的映射关...原创 2020-10-28 22:57:21 · 2890 阅读 · 0 评论 -
cocos creator ScrollView性能优化
做性能优化的地方最费的地方莫过于ScrollView,性能优化的主要点就是把一个scrollview分成三个区域:1:content区域:也就是scrollview需要滚动的节点的区域2: 缓冲区:当content中的节点滚出缓冲区之后就会将改节点回收以供下一个节点进行复用3:显示区:实际需要显示的节点区域往往是有限的几个在屏幕上显示而已,所以优化的思路也是从这里来,这里还是参照官方的优化策略,当然还有一些优化策略,比如分帧加载的优化方式但是它的缺点是占用drawcall有点高,这里就不在介绍.原创 2020-07-19 16:12:06 · 1329 阅读 · 0 评论 -
cococs creator 实现四叉树在游戏开发中的应用
废话不多说看看效果:以前以为很高深的东西,现在看来也不是很困难哈哈借鉴的四叉树github地址:https://github.com/timohausmann/quadtree-js个人感觉写的还不错首先需要有四叉树类:QT.tsexport interface Bounds { x : number, y : number, width : number, height: number}export default class QT .原创 2020-06-20 17:42:01 · 1639 阅读 · 0 评论 -
python TexturePacker 自动将散图打包成图集
背景:在网上当下了好多的图片但是是整图,我用了一个工具讲整图给切分了小图,这个工具就是shoebox,切分成小图之后,需要将这些小图进行打包,这里用到了TextruePacker的命令行打包,至于为什么需要命令行,是因为太多散图,手动打包太累了,所以选择了用python帮我自动打包了。import os;from os import path;import shutil;def do...原创 2020-05-05 20:20:32 · 1433 阅读 · 0 评论 -
cocos creator 中节点池中的坑
cocos creator中节点池中的put方法:默认在执行该方法的时候自动从父节点中移除该节点所以父节点的子节点数量会发生变化:/** * @en Put a new Node into the pool. * It will automatically remove the node from its parent without cleanup. ...原创 2020-02-07 22:32:17 · 2187 阅读 · 1 评论 -
cocos creator shader 方形头像变为圆形头像
将方形头像转变为圆形头像我起初的思路就是,先在一个图片上绘制一个在中心点带颜色的圆:1:如果uv坐标在圆内的话就会和图片的颜色进行混合只不过混合的时候,带颜色的圆的插值为0,图片的插值为12:如果uv坐标不在圆内的话就将图片颜色的插值设置为0并且将圆的颜色的插值也设置为0用到的数学知识是:r < 在圆内,否则在圆外// Copyright (c) 2017...原创 2019-12-27 15:37:58 · 2741 阅读 · 1 评论 -
cocos creator 流光特效(参考shadertoy效果)
有兴趣的可以去官网:shadertoy官网流光特效代码:// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. CCEffect %{ techniques: - passes: - vert: vs frag: fs blendState: targets: ...转载 2019-12-26 11:16:21 · 3908 阅读 · 0 评论 -
根据入射向量和法向量获得反射向量
下面贴上计算过程的图片:首先了解一下向量点乘的几何意义为一个向量在另外一个向量的投影长度,即占据另外一个向量的百分比原创 2019-12-23 13:15:34 · 1442 阅读 · 1 评论 -
cocos creator touchmove事件中加入console.log导致fps急剧下降
在touchmove事件中加入过多的console.log打印信息会是游戏的fps下降到10左右所以在做touchmove的时候,不要console.log,并且在update函数里面少用console.log原创 2019-12-09 19:06:05 · 593 阅读 · 0 评论 -
cocos creator 适配问题
适配方法在cocos creator论坛中看到一种比较好的适配方案:https://forum.cocos.com/t/cocos-creator/74001const { ccclass, property } = cc._decorator;/** * @classdesc 背景自适应所有分辨率的脚本 * @author caizhitao * @version 0.1.0...转载 2019-07-16 17:43:01 · 2178 阅读 · 0 评论 -
cocos creator性能优化
原文地址Prefab加载优化Prefab这块的加载优化主要集中在两个地方:一个是load加载耗时优化,另一个是实例化耗时优化。首先先说一下prefab在使用时的步骤:了解了Prefab使用时做了哪些事情,我们也才好针对性的做优化。来说一下常用的优化手段:合理拆分Prefab越大的prefab文件在加载过程中的耗时是越长的,而且通常不是等比,而是以类似平方曲线这样...转载 2019-01-25 15:08:48 · 8392 阅读 · 0 评论 -
JS 基础之全局变量,局部变量
原文链接:https://github.com/TooBug/javascript.patterns/blob/master/chapter2.markdown第二章 概要本章将概要介绍一些编写高质量JavaScript的最佳实践、模式和习惯,比如避免全局变量、使用单var声明、预缓存循环中的length、遵守编码约定等等。本章还包括一些编程习惯,这些习惯跟具体的代码关系不大,而是更多关注...转载 2018-08-23 09:56:29 · 6275 阅读 · 0 评论 -
javascript 游戏设计模式总结
原文链接:https://github.com/TooBug/javascript.patterns/blob/master/chapter7.markdown?utm_source=caibaojian.com设计模式在GoF(Gang of Four)的书中提出的设计模式为面向对象的软件设计中遇到的一些普遍问题提供了解决方案。它们已经诞生很久了,而且被证实在很多情况下是很有效的。这正是...转载 2018-08-22 18:38:01 · 973 阅读 · 0 评论 -
xmlHttpRequest的一些设置问题
xmlHttpRequest对象,发送消息的时候设置Content-type:application/json表示发送的是json对象,但是不能直接send()一个对象过去,需要进行序列化操作即:JSON.stringify(data)才能够正确的发送到服务器,服务器那边设置的也是,content-type : appliction/jsonsendMessageToServer : fun...原创 2018-08-22 18:12:32 · 2762 阅读 · 0 评论 -
微信小游戏世界排行榜的绘制
关键是微信小游戏玩家的头像绘制方法:if(CC_WECHATGAME){ let image =wx.createImage(); image.onload = function(){ let texture = new cc.Texture...转载 2018-08-13 12:23:01 · 2731 阅读 · 1 评论 -
利用微信小程序(小游戏)API制作适配cocos creator小游戏排行榜的实例程序
cocos creator 可以通过新建一个creator项目进行添加子域项目,但是有一个缺点就是占用文件大小是一个问题,所以我这里采用微信的API进行绘制排行榜,主域就是各种发送给子域的消息,这里不再这里赘述,就是各种调用微信的API这里给出微信的API微信开放数据域新建main.js目录结构如下:main.jsexport default class Main...原创 2018-08-11 18:03:09 · 3690 阅读 · 0 评论 -
Cocos creator制作微信小游戏保存图片,音频文件到本地(手机,浏览器)
cocos creator打包生成的wx-downloader.js文件保存到本地会报 no such file or directory 没有上级目录错误,这就我们自己修改这个文件,主要用到了微信小程序中的api FileSystemManger.access 和 FileSystemManager.saveFile方法代码如下:/***************************...原创 2018-07-25 13:45:26 · 4753 阅读 · 0 评论