自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 资源 (2)
  • 收藏
  • 关注

原创 cocos jsb调用IOS震动功能

【代码】cocos jsb调用IOS震动功能。

2024-04-12 16:07:42 362

原创 Shadertoy内置函数系列 - mod 取模运算

代码将画布空间分成了9等分,每一份的范围都是0~1(fract(uv.x)函数的作用),创建黑色和红色柱交替的图案,每种颜色有 9 列。然后,隐藏每第三列红色的列。然后在每一份的 [0,0.5] 填充黑色,[0.5,1]填充红色,以此重复。然后再来一个mod约束,提取出 对3取余的所有x,也就是modX,希望能够帮到喜欢shadertoy但是又不是很懂怎么运作的小伙伴。着色器应避免在其代码中使用分支或条件语句,而是依赖。mod函数返回x % 3的结果。函数来确定每个像素的颜色。

2024-03-12 20:49:00 263

原创 Cocos Creator 2d光照

cocos creator 2d光照

2024-03-07 16:40:51 620

原创 Cocos Creator 3.8.x 制作模糊效果(比如游戏弹窗需要的模糊效果)

*** 就是一个普通的组件 自定义后处理节点的资源和行为*//** 3d场景的摄像机 *//* 需要把后效产生的图片输出到特定的Sprite上 *//** 模糊材质 *//** 根据传入的模糊效果shader创建一个材质 当然你也可以在编辑器中拖入一个已经绑定模糊shader的材质 */else {@property@property@property/** 设置材质属性 */if (!return;

2024-03-05 13:02:58 1037 1

原创 C++ 虚函数 多态,以及销毁的时候的问题

c++ 虚构造函数

2024-03-03 17:43:51 267

原创 Cocos Creator 3.8.x 后效处理(前向渲染)

下面讲一下怎么自己定义一个后处理效果,想添加自己的后效处理的话只需要在postProcess节点下添加一个BlitScreen 组件即可,然后自己去添加自己想要的材质,官方说 简单的后效可以直接将后效材质添加到上,复杂的后效需要自定义一个后效 pass ,但是我觉得这种方式搞的后处理效果就可以很炸裂。

2024-03-01 16:43:53 654

原创 Shader 用到的数学函数总结及用法

在写shader相关的程序的时候往往需要用到 OpenGL内置的数学库,下面列举几个常用的函数用法和效果,下面的所有代码都是运行在shadertoy在线工具上的,推荐一个好用的数学工具desmos。

2023-08-22 17:29:54 662

原创 Unity 人物连招(三段连击)

当按下某一个键位的时候,播放对应索引的攻击,如果在攻击时间后再次收到了攻击键位的按下就认为是连击状态,这时候继续播放攻击动作。如果当前主角的状态不是攻击状态,检查是否在攻击时间窗口内,如果在攻击时间窗口内就进行攻击索引的累加,否则攻击索引从0开始。

2023-08-14 11:56:34 1294

原创 cocos creator 帧同步游戏示例

注意要确保服务端的colyseus的版本和客户端的colyseus版本适配,否则容易造成版本的不兼容导致的报错,具体报错可以看看我之前发的文章:colyseus的常见报错原因。简化网络通信:帧同步只需要传输帧数据和玩家输入,而不需要传输游戏中的每个操作和状态变化,减少了网络通信的数据量和开销。允许离线和断线重连:帧同步允许玩家在游戏进行中离线或断线后重新加入,因为玩家的状态和输入都是根据帧数据进行同步的。客户端接收帧数据:客户端接收服务器发送的帧数据,并根据接收到的数据进行游戏逻辑的模拟和渲染。

2023-06-16 15:57:54 2008

原创 Colyseus 常见错误

【代码】Colyseus 常见错误。

2023-06-12 14:57:19 613

原创 Cocos Creator 中的assembler那点事

我之前的做法是图片和图片放到一起,label和label放到一起,这样就能达到合批的目的,但是这样做的结果就是代码组织就变得很没有结构性,最好的办法是既能保持节点结构又能达到轻松合批的效果。register函数是初始化渲染组件的构造函数的__assembler__属性,以便后来的init函数赋值renderComp._assembler ,你可能会问Assembler的init函数在哪里执行的呢,不错这个init函数是在_resetAssembler函数里面执行的。那么接下来看看他们的作用,

2023-03-16 11:35:27 2335 5

原创 shell 基础

2: 有参数函数的声明和调用,区别于其他语言的声明方式,即使这个函数有参数,也不会再函数声明里面给这个函数添加形参,而是利用${1} ${2}...${n}的方式取得函数的参数,除此之外在函数内部可以定义函数内部的局部变量,关键字是。我们会发现在我们项目目录里面多出来个文件夹,而文件夹的名字就是10原因就是 > 被当成了输出文件的意思了。另外函数的执行结果不需要任何参数来进行接收,只需要使用$?就能访问到调用该函数的返回值。

2022-11-07 17:19:26 264

原创 lua c与lua的交互

lua虚拟栈是从顶部索引-1开始往下递减,想取到栈顶的元素只需要lua_to数据类型(lua_State* L,int -1)即可。定义一个C函数:供lua调用。

2022-11-01 19:16:07 239

原创 lua 弱引用

lua引入弱引用的机制导致被引用的对象的引用计数不会变化,从而当将某个被引用的对象重置为nil的时候垃圾回收能够回收内存,更利于内存的释放,但是一旦使用弱引用如果一个表使用了另外一个对象当做key或者value,一旦key或者value重置为nil的时候,这个对象也就随之被删除。3: kv的意思就是对指定键和值得弱引用。弱引用的使用:三种使用方式:k,v,kv。1: k的意思就是对指定对键的弱引用。2: v的意思就是对指定值得弱引用。

2022-10-31 22:44:28 397

原创 lua 元表和面向对象

lua元表的应用也非常广泛,小到运算符重载,大到面向对象实现,一下列举了一些运算符的重载和类继承的例子:The metavalue for this event can be either a function, a table, or any value with an metavalue. If it is a function, it is called with and as arguments, and the result of the call (adjusted to one valu

2022-10-31 15:47:30 266

原创 lua 基础语法数据结构

tb = {};-- 闭包函数endend-- 可选参数endendendendreturn tb;

2022-10-30 12:12:21 690

原创 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 735

原创 flutter 插件开发:分享插件只针对ios平台

flutter 插件开发

2022-10-10 20:46:16 1276

原创 flutter 配置charles抓包

flutter 使用charles代理

2022-09-19 19:42:13 1116

原创 flutter 第二代路由导航系统

新版Flutter包含两个版本的导航器,分别是Navigator 1.0和Navigator 2.0。Navigator 2.0是从Flutter 1.22版开始引入的一个全新的导航器,其相比1.0功能更多也更加的灵活,当然了从使用的难易程度上来说Navigator 2.0比Navigator 1.0要难上手一些。QA:Navigator 2.0出来后Navigator 1.0还能继续用吗?

2022-09-11 16:37:11 607

原创 Flutter InheritedWidget

首先自定义一个类继承至InheritedWidget,我们命名为ShareDataWidget,该类定义你想保存的数据类型,这里我定义了个int类型的数据来实现数据共享,如果你想保存更复杂的类型可以自行修改。/// 需要在组件树中共享的数据。

2022-09-11 10:53:30 544

原创 flutter 处理前置摄像头拍出来的图片翻转问题,截取正方形图片问题

最近在做flutter项目的时候用到前置摄像头,拍摄的时候拍出来的图片是翻转的,找到很多办法都没有解决方案。找来找去就找到了image_editor插件。

2022-08-31 21:55:42 1686

转载 flutter 开发提效的方法和工具

【代码】flutter 开发提效的方法和工具。

2022-08-20 10:41:44 138

原创 flutter 集成firebase 推送遇到的坑点

寥寥几句就完了,于是我以为很简单就照做了,但是xcode报没有搜到,检查下是否是网络的问题,但是不是, 于是就切到ios文件加下 pod install 了,但是报错说FirebaseCore依赖GoogleUitls云云,于是就在网上搜到真正解决问题的方案。2:配置gradle文件,两个gradle文件一个是项目的gradle文件,另一个是app的gradle文件,gradle的作用我在这里就不过多介绍了,感兴趣的可以去gradle官网去看看,至此firebase在android上的集成完成了。...

2022-08-16 23:50:19 1182 1

原创 flutter 文字颜色渐变

代码】flutter 文字颜色渐变。

2022-08-16 22:50:57 1459

原创 flutter 截取摄像机特定区域并保存图片

stackeoverflow

2022-07-07 16:01:41 795

原创 IOS 实现图片缩放和弹出系统相册功能

要想实现图片缩放的话需要一个scrollView来包裹住ImageView,让后将scrollView的delegate设置到ViewController身上,这样当缩放图片的时候scrollView不知道如何处理,交给scrollView的代理来处理具体逻辑,代理逻辑具体来处理是缩放哪个元素点击图片弹出相册也是需要代理的只是UIImagePickerControllerDelegate和UINavigationControllerDelegate下面是具体的逻辑代码:......

2022-06-25 21:44:01 376

原创 IOS开发之页面跳转

页面跳转需要添加navigationController,方法是在storyBoard视图中点击一个启动视图,点击右下角的 Embed in 按钮即可添加一个navigationController 接下来在视图界面中的按钮 按住Ctrl 拖动指向另外一个界面,在弹窗中选择 show 既可以跳转对应的目标页面。如果一个页面有多个按钮需要跳转页面,需要在类中判断是否可以跳转,重写方法shouldPerformSegue,该方法控制是否可以跳转页面:还有一个方法是prepare,方法,是等待shouldPerf

2022-06-25 15:01:43 1932

原创 unity 音频可视化方案

unity 音频可视化unity 可视化

2022-06-18 18:58:47 1881

原创 Cocos Creator2.4.8 资源加载源码阅读

最近用到资源加载的问题:加载的资源进度条倒退问题,现在只是用临时的解决方案 - 加载进度如果出现会倒退的问题还是用原来的数值。抽时间看了下cocos creator 资源加载的源码,整理了一下脑图一: 关于资源加载管线的几个疑问:1:任务是什么时候开始创建的,怎么流通的。2:assetManager.assets什么时候装入的。3:三条管线都做了哪些操作。4:资源的加载进度为什么会倒退。二: 看源码分析下上面几个问题,首先说明我没有具体看fetchPipeline,这个只是预加载

2022-05-13 11:41:48 1758

原创 钉钉自动发送消息 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 1552

原创 unity 简单的相机跟随和主角移动功能

一:相机跟随原理:unity相机跟随是一个很常见的需求,这里的原理就是相机的位置和主角的位置有个差 值,一旦主角移动相机根据这个插值进行更新相机的位置就好了,另外需要平滑变化相机的角度。主要是利用了Vector3.Lerp对位置进行插值,Quaternion.Slerp适合对角度进行插值。using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerFo.

2022-04-17 16:38:42 7082 1

原创 jenkins 自动化构建项目 nodejs后端实现

之前一直想尝试在github上推送代码,jenkins就能自动构建项目。最近尝试了下,大概步骤总结下,我是在mac电脑上部署的jenkins服务,打开jenkins官网按照它的安装步骤下载jenkinsSample commands:安装最新的jenkins版本:brew install jenkins 依据jenkins版本号安装jenkins:brew install jenkins@YOUR_VERSION 启动jenkins服务:brew services start jenk...

2022-04-15 11:02:28 1272

原创 Cocos Creator 源码解读之Schedule

creator 里面的计时器相信大家不陌生,但是了解它的原理是必要的,它的运行机制和setInterval有什么不同呢,先简单说说setInterval的原理:setInterval是每隔一段时间向事件队列里面添加回调函数,如果主线程忙的话调用时间不确定特别容易出问题,由于setInterval只负责定时向队列中添加函数,而不考虑函数的执行,setInterval有一个原则:在向队列中添加回调函数时,如果队列中存在之前由其添加的回调函数,就放弃本次添加(不会影响之后的计时),如果主线程忙的话,之前添加的

2022-04-06 15:45:42 2217

原创 unity 容易出错的知识点总结

1:调用Debug.drawLine或者Debug.drawRay运行的时候没有显示出来画的线段,原因:game scene选项没有启用Gizmos2: 在调用射线监测的时候,目标layerMask应该是Physics.Raycast(playerPos,dir,10f,1 << LayerMask.NameToLayer("Environment")); 而不是Physics.Raycast(playerPos,dir,10f, LayerMask.NameToLayer("Env..

2022-03-13 23:17:21 4122

原创 cocos 贝塞尔曲线编辑器

贝塞尔曲线的定义我就不详细说了,网上很多资料都有介绍可以用递归方法求曲线点也可以用迭代法求解,这里使用迭代法求点,总的来说就是第一个控制点到第二个控制点的细分点和第二个到第三个控制点连成的线,其他的更高阶的以此类推,知道迭代到点的集合的长度为1,这里采用左键单击画布就会生成一个控制点,根据控制点进行步进生成点进而绘制出来:const {ccclass, property,requireComponent} = cc._decorator;export interface Vector2 {

2022-02-23 11:06:37 2896

原创 游戏开发中常用的几何之,两个线段是否相交

游戏中判断两个线段是否相交的重要依据是根据向量的叉乘判断,所以不熟悉叉乘的意义的可以去看看叉乘的定义和几何意义相交又分为两种情况,平行相交和非平行相交:1:先说说平行相交,如果两个向量平行必然满足:ab x cd = 0,但是即使平行了还存在一个问题是否共线,如果不共线他们肯定不会相交:问题来了怎么判断他们共线呢:哎,又用到了向量的叉乘取向量ab的起点和cd的起点组成一个新的向量,如果该向量 x cd(或者ab)等于零的话就证明共线,但是只证明共线还不能证明相交:相交的充要条件是:相交的情况

2022-01-08 17:06:24 1739

原创 cocos creator 自定义渲染

最近在想虽然shader可以解决2d中的很多特效需求但是会存在一个问题就是drawcall会增加,这样会带来性能隐患,所以看了一下自定义渲染,整了一个正多边形图片的实现:效果如下图:具体实现是创建一个渲染组件继承自cc.RenderComponent,并且需要一个自定义的assembler,集成的RenderComponent需要 重写updateRenaderData,updateUvs,updateVerts,updateWorldVerts,fillBuffers,其实可以参考 sprite.

2022-01-03 21:47:41 3043

原创 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 361

原创 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 3391

Uninstall.exe

一款单片机的编程软件keil4 其强大的功能为开发单片机程序提供了便捷的通道和方法; 即可以硬件仿真又可以软件仿真;

2014-09-30

matlab教程

matlab是一款计算软件,其强大的计算能力让人爱不释手

2014-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除