- 博客(40)
- 资源 (8)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C/C++ 链表详解
众所周知,链表不同于数组和向量,它在物理存储单元上并不是连续的一块空间。冗余的话不多说,直接实际操作。一、 合并成有序链表说明: 已知两个有序链表,自定义函数把这两个链表合并成一个依然有序的链表。注意: 以下代码,可以按序全部拷贝到开发工具中(有时会遇到版本兼容性问题)。1、引入头文件必不可少#include<iostream>using namespace std;...
2019-11-15 09:30:36
1627
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C/C++ 排序算法(经典)
/*冒泡排序*思路:比较相邻的前后二个数据,如果前面数据大于后面的数据,*就将二个数据交换。这样对数组的第0个数据到N-1个数据进行一次遍历后,*最大的一个数据就“沉”到数组第N-1个位置。 N=N-1,如果N不为0就重复前面二步,*否则排序完成。*/void BubbleSort1(int a[], int n){int i, j;for (i = 0; i < n;i+...
2019-10-09 13:51:38
723
原创 html2canvas实现下载或复制功能
前言开发h5项目时,我们会遇到下载或复制某个div内的所有内容,这时候我们可以用 html2canvas 来实现。顾名思义,html2canvas就是将html元素转化为canvas画布,之后再将canvas导出图片。本文就将如题所示功能奉上。一、属性介绍1、scrollX:类型number,默认值不清楚。解决div元素太大超出屏幕宽度,导致生成的canvas显示不全的问题。2、scrollY:类型number,默认值不清楚。解决div元素太大超出屏幕高度,导致生成的canvas显示不全的问题。3
2021-04-02 17:49:34
2031
1
原创 选择城市省市区三级联动
开发项目时,有时会遇到类似下图所示的地区选择。这个功能需要下载一个城市对应表,一般被称做city.json或city.js,当然,即便是同一种后缀格式的文件,其内部数据结构也是各有千秋。在此,为大家免费提供city.js,希望对你有所帮助。...
2020-11-17 11:42:12
581
3
原创 微信小游戏分享给好友或朋友圈
一、简介微信小游戏分享功能可以通过两者方式实现:1、被动分享:如下图所示,点击“右上角的小点点”调起分享接口,这种被称做被动分享。2、主动分享:如图,游戏内点击自己创建的”分享“调起分享接口,这种被称做主动分享。小提示:要测试分享功能的话,只能在真机上运行才能看出效果。开发工具目前只能进行简单的模拟效果。了解了上面两个概念,我们开始代码实现。二、代码实现1、被动分享:我们把此功能写在passiveShare()函数内,在onLoad()或init()时就直接调用。passiveShare (
2020-11-13 15:00:17
9656
原创 微信小游戏接入微信登录
前言:针对如题的内容,微信官方文档也只是说了几个关键点,详细过程含糊不清。本篇博文就直接奉上整个登录流程。一、步骤与思路1、调用 wx.login(object) 接口获取登录凭证 code。2、如果第1步成功,在“success”中调用 wx.getSetting(object),检查是否已经授权。3、如果已经授权,则可以直接调用 wx.getUserInfo(object) 拿到用户信息。4、如果未授权,调用wx.createUserInfoButton(object),调起授权按钮,授权成功
2020-11-11 11:48:36
8885
原创 async.parallel async.auto 和 async.waterfall
简介async:流程控制器,控制异步回调。其强大之后在于可以控制代码的执行顺序。本文主要描述如题所示的三种控制方式。一、async.parallel并行处理每一个流程,流程间没有依赖关系,最后汇总结果。中途某个流程出错就会退出。// 定义一个对象 obj,并在函数中输出日志,查看结果let obj = { func1: (callback) => { setTimeout(()=>{ console.log("&g
2020-11-07 15:56:39
1152
原创 cc.tween 动作系统详解
说明: 以下示例中的node节点,其类型是cc.Node。一、单一动作node节点的颜色在1秒内渐变成红色。想要改变什么属性,只需要在花括号内写入正确的属性名称,并设置值即可。cc.tween(node).to(1, {color: cc.color(255, 0, 0)}).start();二、同步动作相当于 cc.spawn ,同时执行多个动作。cc.tween(node).to(1, {position: cc.v2(70, 100), scale: 2}).start();
2020-10-22 16:18:54
9261
1
原创 CocosCreator Map的遍历方式
注意: 以下内容是基于TypeScript语言编写。一、 创建一个Map1、创建cc.SpriteFrame 类型的Map:private spriteFrameMap: Map<string, cc.SpriteFrame> = new Map();2、set函数:setSpriteFrame (key: string, value: cc.SpriteFrame): void{ this.spriteFrameMap.set(key, value);}3、get函数:
2020-10-10 16:27:34
2245
原创 延长Beyond Compare的使用期限
提示: 以下操作基于苹果电脑,如果是Windowns系统的话,可能不适用。1、首先运行一下安装好的 Beyond Compare,要不然以下操作没办法进行。2、之后,我们显示一下隐藏的文件夹,在终端输入如下指令就能显示了。defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder3、前往资源库,没有资源库的话,可以前往个人或电脑。4、找到 资源库 > Application Support
2020-07-15 10:49:48
341
原创 使用shell脚本批量修改文件名
工作中,有时需要批量修改一些文件的名称,那么在量很大的情况下,我们就要学会用脚本来操作了,既省时又省力。一、生成可执行文件提示: 执行修改操作之前,我们先创建一个可执行文件。1、新建一个无后缀格式的文件,比如文件名叫 rename。2、打开终端,cd到 clear_meta 所在的目录。3、终端输入命令 sudo chmod u+x clear_meta。4、执行成功后,rename 文件就变成可执行文件了。二、编辑 rename 文件1、为了方便测试,我准备了一个 0icon 文件夹,里面
2020-07-10 16:29:34
19749
3
原创 http/https + nodejs 同时响应http和https请求(附含SSL证书申请)
前言Https 协议 是在 Http 协议的基础上进行了数据加密。所以使用 Https 协议 进行请求访问时,一定要有 SSL证书 (申请流程可以参考 SSL证书申请)。这篇文章主要讲述搭建简易服务端,用来接收 http 和 https 请求。友情小提示: 如果你对nodeJs创建服务端比较陌生,可以先阅读 http请求未知对象的文章,能够加深进一步的了解。一、将SSL证书导入项目内1、我们将下载的 SSL证书 重新命名(包括修改后缀),私钥 文件命名为 private.key ,证书 文件命名为
2020-07-09 18:11:55
2876
原创 SSL证书申请
前言SSL(安全套接字层)证书 是数字证书的一种(类似于营业执照、身份证),主要用于服务器开发。我们如果想使用 Https协议 访问服务,就必须有它的支撑。接下来我们了解一下申请阿里云服务下的SSL免费证书。正文1、登录我们的阿里云账号(没有账号的话,只能注册一个了,否则没办法享受其旗下的服务)。2、打开控制台(一般在首页右上角,姓名旁边)。3、之后,在搜索框内直接搜索 SSL证书应用安全,并点击搜到的结果。4、新页面打开之后,里面有一个"购买证书",不要怕,这里就是申请SSL证书的入口了,
2020-07-09 16:52:15
568
原创 C/C++ 将包含某个标识字段的语句整理到一个文件内
前言工作中我们可能遇到这样的问题,一个文件的内容杂乱无章(多见于输出的日志),而我们又要找全部的包含某个字段的语句,如果不利用其他方法,真的是一件很头疼的事情。接下来奉上一篇可以解决类似问题的代码。编程1、 我们以后缀是 curent.log 的文件为例(代码是可变的,也可以改成其他格式的后缀),如下图所示。里面的内容很乱,包含了很多的TableKey。如果我们想找包含TableKey:986375的语句,只靠手工的话简直难于上青天。2、不怕,我们直接上代码,把包含TabelKey:986375的
2020-07-09 11:39:21
354
原创 邓白氏编码的申请流程
邓白氏编码是由9位数字编制而成的全球唯一企业身份标识,相当于人民的身份证号。接下来走一波申请流程。提示: 操作之前请先准备一个Apple ID,个人信息名称要用英文,要不然申请邓白氏编码时有可能会因为格式不正确被驳回。一、找到邓白氏编码申请入口1、首先打开 https://developer.apple.com 网页,点击Account,之后登录自己的Apple ID。如下图所示。2、登录成功之后,我们就来到了首页,选择 join the Apple Developer Program。3、
2020-07-08 15:05:25
38104
2
原创 使用shell脚本删除指定后缀文件
前言在实际开发中,合并项目时可能会遇到 uuid 冲突的问题,所以我们需要删除一些 .meta 文件,让其重新生成。这个过程如果是手动去删除的话,显然不符合实际。接下来,我们就简单了解一下用 shell 脚本执行删除命令。一、生成unix可执行文件提示: 执行删除操作之前,我们先创建一个可执行文件。1、新建一个无后缀格式的文件,比如文件名叫 clear_meta。2、打开终端,cd到 clear_meta 文件的根目录。3、终端输入命令 sudo chmod u+x clear_meta。4、
2020-07-06 11:31:41
1715
原创 http + nodeJs 获取未知对象的key值
前言 有时我们访问网址的时候会携带一些参数,服务端收到请求之后,会做出不同的响应。但我们服务端也要考虑一下这些参数如果存在未知对象怎么办。接下来,我们就简单的了解一下。步骤1、首先搭建一个服务端,用来接收http请求。2、网址以 http://localhost:8080/setValue?&value=0 为例进行访问。3、上述中的 “?value=0” 是可以随意改变的,就是我们要说的未知对象内容。一、搭建简易服务端提示: 服务端使用nodejs编程,npm所需的模块(如果你对
2020-07-01 16:48:05
1256
原创 CocosCreator 硬核 微信小游戏分享战绩、截图到微信
前言上一篇提到了APP如何分享战绩到微信,但每个引擎都有自己独有的一套渲染方式,所以这套方案不适用于微信小游戏的截图分享。本文就简单讲述一下微信小游戏如何分享战绩、截图给微信好友。提示:第一部分是 js客户端 截图代码,第二部分是 SDKInterfaces接口 代码。分享成功之后,微信内可以点击分享内容直接进入小游戏。一、js客户端下述代码使用到了 canvas ,如果你对其不太熟悉,可以先学习了解一下。我们把这段代码封装在 share_image 函数中share_image:functi
2020-06-28 18:11:43
834
原创 CocosCreator 硬核 APP分享小游戏接口、链接到微信,好友可点击进入
注意该文是讲述APP分享出来一个可点击链接给微信好友,然后好友点击之后可以直接进入微信小游戏。这样好友想在APP上玩也行,想在小游戏上玩也行,岂不是很开心。此功能必须满足以下几个条件:1、必须有线上的APP。2、必须有和APP相同内容的微信小游戏。3、APP和小游戏的服务器数据必须互通或共用一个服务器。提示第一部分是 js客户端 分享代码,第二部分是 SDKInterfaces接口代码。一、js客户端share_wechatgame:function(){ // 小游戏的原始ID(如果
2020-06-28 18:08:14
5328
原创 CocosCreator 硬核 APP分享下载地址到微信
前言APP分享链接到微信实现起来还算比较简单,但网上大部分都没有完整的、可借鉴的例子,所以我整理了一份。希望对你有所帮助。提示第一部分是 js客户端 分享代码,第二部分是 SDKInterfaces接口 的调用。一、js客户端客户端分享下载地址操作内容较少,我们直接来看share_url:function(){ // 下载app的地址,自己填写 var url = "https://xxx.xxx.xxx/xx" //接下来做java交互 jsb.reflection.callSt
2020-06-28 17:24:26
616
原创 CocosCreator 硬核 APP分享战绩、截图到微信
前言相信一些开发者也遇到过APP分享战绩至微信的问题,大家一般首选 RenderTexture来实现该功能,但Creator2.0之后的版本,弃用了该渲染树,导致很多接口和功能不能用。别担心,去除一个东西,总会有另外一个东西来替代,所以重心就转移到了Camera身上。提示该文章详细讲述了截图、交互、分享的流程,代码可以按需参考使用。第一部分是js客户端的截图交互代码,第二部分是SDK接口分享的代码。一、js截图、交互代码1、我们把该方法封装到 share_image 函数中。share_imag
2020-06-24 12:36:11
943
原创 CocosCreator 小知识
destroy 和 removeFromParent 的区别一个节点调用 removeFromParent 后,它不一定能立即完全从内存中释放,还可能会因为一些逻辑上的问题,导致程序中仍然引用到了这个对象,比如:node.removeFromParent()otherNode.addChild(node) //该对象并没有被释放所以,一旦某个节点不再使用,直接调用destory,可以降低......
2019-12-06 16:27:02
1280
原创 CocosCreator + nodeJs 课程14 生命周期回调函数
CCC脚本组件提供了生命周期的回调函数,接下来我吗一一了解一下。onLoad组件脚本初始化阶段,也就是节点首次激活时会执行此函数,比如节点所在的场景被载入时。onLoad函数总是在任何start函数调用前被执行,这样脚本的初始化顺序就得到了保障。startstart 回调函数会在组件第一次激活前,也就是第一次执行 update 之前触发。start 通常用于初始化一些中间状态的数据(也就是...
2019-12-06 16:17:59
352
1
原创 CocosCreator + nodeJs 课程13 访问节点和其他组件
属性检查器 中设置节点在 属性检查器 中设置节点,只需要在该组件绑定的脚本中声明一个节点即可,下面以cc.Node为例。cc.Class({ extends: cc.Component, properties: { player: { default: null, type: cc.Node } ...
2019-12-06 15:46:51
328
原创 CocosCreator + nodeJs 课程12 艺术数字资源
前言: 开发过程中,难免用到艺术字体来代替纯文本。接下来我们了解一下CCC中艺术字体的使用。制作 LabelAtlas1、准备一张包含所需字体样式的图片,如下图所示(示例资源大小为 1000 x 46, 每个艺术字大小为100 x 46)。2、在 资源管理器 中,右键点击选择 新建 -> 艺术数字配置,并命名为numAtlas,选中该标签,我们可以在 属性检查器 中看到如图所示属性。...
2019-11-18 15:22:08
653
原创 CocosCreator + nodeJs 课程11 音乐和音效
方式一:1、我们在resources文件夹下,新建audioFile文件夹,用于存放所需要的音乐和音效资源。之后,把准备的bgMusic.mp3资源放入该文件夹。2、在主页面中添加一个button组件,并命名为musicPlayBtn。同理,创建一个musicPauseBtn。3、接下来我们写一个播放和暂停音乐的脚本audioScript。直接使用cc.audioEngine.play...
2019-11-18 15:21:47
1389
原创 C/C++ 使用指针操作数组
在进行如题操作之前,我们先预先熟悉一下指针和数组。有些初学者可能知道这两个名字,但或许还搞不懂其本质。指针指针本身也是一个变量,他存储的是另外一个变量的存储单元地址。读完上面这句话,是不是有点明白指针的意义了。指针四大特点:1、指针本身是一个变量,值是一个存储单元的地址。2、指针的值可以发送改变。3、多个指针可以指向同一块内存存储单元。4、指针必须有类型,如int类型的指针。数组...
2019-11-15 16:52:02
5353
原创 C/C++ 对象的添加与删除(二)
前言: 文章 对象的添加与删除(一) 只是简单的操作练习,包括内存管理都是简单的浅拷贝。那么这篇文章就带大家一起深入探讨动态内存分配、构造函数 和 析构函数的应用。要求与说明: 创建一个Person类,属性包括姓名和年龄,并重载运算符输出Person对象。之后创建一个PersonSet类,用来添加、删除或查找Person对象,要求可以动态开辟和释放存储空间。 最后在main函数中测试实例。本文...
2019-11-15 14:42:46
1395
原创 C/C++ 对象的添加与删除(一)
有些博主在发布文章前总是说一堆题外话,我呢不喜欢这样,直接贴代码可能对你的理解和帮助更大。编程要求:定义一个Date类:变量:年,月,日函数:构造函数,获取函数,设置函数,输出函数定义一个Person类:变量:组合,Date d,*name,*address函数:构造函数,析构函数,输出函数普通函数:addPerson函数,把对象添加到arrayshowArray函数,把数组中...
2019-11-15 11:08:15
3624
原创 CocosCreator + nodeJs 课程8 安卓接入微信登录之友盟接入
我们使用友盟提供的第三方功能来实现微信登录功能。大家注册一个友盟账号。需要下载的内容一一介绍(也可以到本博客)
2019-11-05 14:39:37
1008
1
原创 CocosCreator + nodeJs 课程7 安卓接入微信登录之获取签名
该章节需要配置的文件比较多,我们一一介绍。给大家提供一个官方使用文档(跳转至该文档),希望能对你的理解有所帮助。下载Java SDK(JDK)在上述文档中,找到如下图所示的内容:点击之后,我们接受协议内容,并下载相应版本。(站内下载的时候,可能会需要Oracle账号登录,没有该账号的学者可以注册一个)下载Android Studio需要注意的是,老版本和新版本的Android Stu...
2019-11-05 14:39:20
426
原创 CocosCreator + nodeJs 课程5 随机数ID的生成
平时我们玩游戏或者登陆软件的时候,都会给你分配一个ID。众所周知,庞大的玩家基数会拥有庞大的ID数据,如果不做管理,随机给你分配一个ID,可能就要花很长时间才能匹配到不重复的ID。接下来,我们就来了解一下如何不重复并快速的分配ID。我们先做准备工作:需要的serverConfigDebug.json文件:{“ids”:{“from”:10000000,“to”:99999999,“c...
2019-11-04 16:12:24
641
原创 String.prototype.format字符串拼接
在日常工作中,难免会遇到字符串拼接的问题。接下来我们用JS列举一些操作方法。方式一:String.prototype.format = function(){var args = arguments;return this.replace(/{(\d+)}/g,function(m,i){return args[i];});}调用:var test = “mongodb://...
2019-10-21 11:41:33
535
原创 CocosCreator + nodeJs 课程4 mongoDB简易使用
有兴趣的学者可以搜索"MongoDB概念解析",可以详细、系统的学习该知识点。我们做一些和上述网站不同的讲解,包括mongoDB安装包资源下载,希望可以对学者有所帮助。mongoDB是一个基于分布式文件存储的数据库,它将数据存储为一个类似JSON对象的文档,数据结构由键值(key=>value)对组成。其格式可以参考如下:1、在网上搜索并下载mongodb服务,下载所需的文件包(也可...
2019-10-18 14:46:03
295
原创 C/C++ 常见类型题库
1、 输出3个数的最大数。#include <stdio.h>int main(int argc,const char * argv[]){int a,b,c,max;printf(“请输入三个数字:\n”);scanf("%d%d%d",&a,&b,&c);if(a>b) max=a;else max=b;if(max<c)max=...
2019-10-17 17:01:10
2071
原创 CocosCreator + nodeJs 课程3 mocha测试框架的使用
在开发中,养成编写测试用例的习惯是必不可少的,mocha就是一个运行在nodeJs 上的简单测试库。1、安装mocha(二者选其一即可):(1)全局安装:npm install --global mocha(2)项目组安装:npm install --save-dev mocha2、mocha中的 describe和 itdescribe声明了一个测试集合,且可以嵌套管理。it声明定义...
2019-10-09 17:56:59
605
原创 CocosCreator + nodeJs 课程2 javaScript高级进阶
本篇内容我们以访问“天气”为例,来简单的学习 Promise。直奔主题:一般情况我们调用一次API就可以完成请求,有些情况我们需要反复调用服务器API,这就会形成一个链式调用,这个时候我们可能就会陷入回调带来的问题深渊。介时,我们就有必要依赖于异步进行操作,在nodeJs中,我们就会用到Promise。一、Promise:1、主要用于异步计算。2、可以将异步操作队列化,按照期望的顺序执行,...
2019-10-09 15:28:27
1855
原创 CocosCreator + nodeJs 课程1 nodeJs的简单搭建与使用
注意:Express API 可参考 http://www.expressjs.com.cn/4x/api.html部分代码 可以参考 https://msgpack.org1、下载安装WebStorm,以后课程运行与打包均使用此编辑器。2、打开浏览器,输入http://nodejs.org网址,进入下载最新版本的nodeJs, 并安装。3、创建一个空文件夹,并用WebStorm打开,...
2019-09-27 18:11:20
2376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人