自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风的博客

不积跬步无以至千里,不积小流无以成江海

  • 博客(56)
  • 资源 (11)
  • 收藏
  • 关注

原创 cocoscreator中spine局部换皮的探索

1、需求情况书之国中需要一个人物捏脸系统,要求可以让用户自由选择身体不同部位的形象,比如头发、眼睛、眉毛、上衣、裤子等。2、方案探索2.1 多attachment切换由于spine动画的结构为bone→slot→attachment(即附件、图片),我们可以在动画文件中针对同一个部位(同一个slot)下做多个attachment,然后根据用户的选择进行切换attachment就行。优点:web、native等多端统一代码。缺点:随着可换装的部位越多、同一个部位皮肤越多,动画文件变得越来越大,由于

2020-08-03 16:18:01 7441 9

原创 vscode 直接调试 ts 文件

1、新建一个文件夹”ts-learn”,并建立二级目录src(用于存放ts文件)和dist(存放编译后的js文件)2、cd进入ts-learn目录3、安装typescript依赖npm install typescript --save-dev4、安装ts-nodenpm install ts-node --save-dev5、在根目录执行tsc --init生成tsconfig.json,并修改为下面这样:{ "compilerOptions": { "modul

2021-08-04 16:24:23 3410

原创 判断三点共线?

最近在做地图寻路的时候需要优化路径,要判断多个点是否在一条直线上,如果在一条直线上则只保留起始点。已知平面上的三个点A(x1,y1)、B(x2,y2)、C(x3,y3),求判断它们是否在一条直线上?方法一:判断向量AB和向量AC的斜率是否相等。即(y2 - y1)/(x2 - x1) == (y3 - y1)/(x3 - x1).为了防止除数为零的问题可以把这个判断转成乘法:(y3 - y1) * (x2 - x1) - (y2 - y1) * (x3 - x1)==0方法二: 判断三角形ABC的.

2021-01-11 15:34:30 4451

原创 扩展cocos slider控件,支持禁用置灰

扩展cocos slider控件,支持禁用置灰

2020-10-15 16:05:14 284

原创 node.js express 跨域访问

node.js express 跨域访问

2020-10-15 15:45:56 233

原创 斗地主基本牌型判定

斗地主基本牌型判定

2020-10-15 15:44:47 473

原创 斗地主滑动选择卡牌的实现

斗地主滑动选择卡牌的实现

2020-10-15 15:43:41 252

原创 使用cocoscreator + node.js + websocket实现简单的聊天服务

使用cocoscreator + node.js + websocket实现简单的聊天服务

2020-10-15 14:42:24 287

原创 iOS原生集成cocoscreator

游戏项目使用cocoscreator 2.4.0版本,发布iOS工程后集成到iOS原生工程,中途发现v8引擎在一个进程中只能初始化一次,导致退出游戏销毁引擎实例并释放资源后无法再次打开游戏,遂采用单例模式,每次退出游戏时只跳转到空场景然后释放资源并停止游戏主循环并不销毁引擎实例(注意,这里一定要跳转到空场景再释放资源,如果在游戏场景释放可能不及时,导致返回app时内存没有回落),这样做的好处是下次进入游戏比较快而且稳定,坏处就是退出游戏返回app时要多占用90M左右的内存。cocos的iOS工程其实就.

2020-09-21 18:08:03 3434 6

原创 LRU算法

leet code: 146运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间使用哈希表+双向链表哈希表: 查询 O(1.

2020-09-07 14:33:41 106

原创 线性排序之基数排序

基数排序也是一种特殊的计数或者桶排序,比如有10万个手机号码从小到大排序,如果用桶排序则数值范围太大了显然不合适,这里我们可以对没一位进行计数排序(每一位数值范围都是0-9范围小很多),利用稳定的排序这样进行11次之后则完成排序,这里的基数则指每次排的那一位。基数排序的时间复杂度为O(k*n), 当k不大的时候,比如手机号排序,则时间复杂度接近于O(n).# 基数排序'''基数排序对要排序的数据是有要求的,需要可以分割出独立的“位”来比较,而且位之间有递进的关系,如果 a 数据的高位比 b 数据大,

2020-09-07 14:23:02 230

原创 线性排序之计数排序

计数排序其实是桶排序的一种特殊情况。当要排序的 n 个数据,所处的范围并不大的时候,比如最大值是 k,我们就可以把数据划分成 k 个桶。每个桶内的数据值都是相同的,省掉了桶内排序的时间。计数排序由于只涉及到数组的遍历操作,所以时间复杂度为O(n).'''计数排序(特殊的桶排序)适合处理元素数值范围不大的数据,每个桶内的数值都相同所以节省了对每个桶排序计数排序只能用在数据范围不大的场景中,如果数据范围 k 比要排序的数据 n 大很多,就不适合用计数排序了。而且,计数排序只能给非负整数排序,如果要排序的

2020-09-07 14:21:54 124

原创 线性排序之桶排序

桶排序,顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了。# 桶排序 适合处理数据量大但数值范围分布均匀的数据,适合外部排序from typing import Listclass BucketSort(object): @staticmethod def bucketSort(arr:List[int], bucketSize: int):

2020-09-07 14:12:37 178

原创 经典排序算法之归并排序

python实现:'''// 归并排序算法, A是数组,n表示数组大小merge_sort(A, n) { merge_sort_c(A, 0, n-1)}// 递归调用函数merge_sort_c(A, p, r) { // 递归终止条件 if p >= r then return // 取p到r之间的中间位置q q = (p+r) / 2 // 分治递归 merge_sort_c(A, p, q) merge_sort_c(A, q+1, r)

2020-09-07 12:11:34 113

原创 二叉树遍历和深度

抽空整理了一下二叉树相关的算法,包括BFS和DFS(先序、中序、后序、递归非递归)以及最大深度和最小深度等。#-*- coding: utf-8 -*-'''二叉树相关'''class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None# DFS(深度遍历) 分为前序、中序、后序# 先序 递归def preor.

2020-07-01 15:04:36 127

原创 见缝插针小游戏开发

####一、主要逻辑​ 首先根据配置表设置好游戏数据(比如大球的旋转速度、旋转方向、默认已经插上的针数及间隔角度,小球的数量等按需设置即可),开始游戏后大球不停的旋转,点击屏幕从下方发射“大头针”,并计算好移动距离,这样可以不需要检测针尖和大球的碰撞,当“大头针”移动到指定位置时修改它的父节点为大球,关键来了,这里因为大球一直在旋转,为了让“大头针”始终垂直的插上大球,这里要正确设置小球的旋转角度,大头针的目标坐标为大球的底部,根据大球的半径和角度可以求得具体x、y。如果大头针和大头针相碰了则游戏失败,如

2020-06-02 17:53:49 1715

原创 2048小游戏开发

2048小游戏开发记得14年的时候吧,2040小游戏非常火爆,很多公司也做了个“升级版”,当时我们是使用cocos2d-x(c++)引擎进行开发的,各种换皮玩法。不过由于当时我也是个游戏开发新手,做出来的bug不少。这游戏虽然看着简单玩着也简单,但开发起来发现难点还是有的,比如cell移动动画,必须保证可以快速不间断的操作还得保证cell移动的位置都正确,还要保证新出现的cell位置正确。现在我们来用cocoscreator引擎实现一遍,顺便优化一下逻辑。一、主要逻辑我们通过维护两个4x4的数组来

2020-05-13 19:55:26 1286

转载 cocoscreator 模拟点击

在制作新手引导或者自动化测试时,有了模拟点击真的方便不少,虽然cocos官方没有提供,但是查看源码还是支持的,这篇文章是转载自:https://forum.cocos.org/t/topic/83221https://github.com/ShawnZhang2015/GodGuide/blob/01b5041c255e0ea8dc5cb34ee63f4a4e4c3b344b/assets/Go...

2020-04-24 18:17:34 1594

转载 uint8 Array和Base64互转

转自 stackoverflow最近在做截图上传时需要数据转换,网上找的解决方案记录一下。unction uint8arrayToBase64(u8Arr) { let CHUNK_SIZE = 0x8000; //arbitrary number let index = 0; let length = u8Arr.length; let result = ...

2020-04-02 16:12:43 11182

原创 cocoscreator 精灵转向动作,随动转向

精灵在执行曲线或者移动动作时,发现方向没有变化看着很奇怪,这里仿照cc.Repeat等动作封装了包装动作RotateAction, 这样就可以实时的改变精灵的朝向(尤其适合捕鱼类游戏????)cocos的动作类关键就是step和update方法,我们只需要在step里计算前后的位置就可以计算出需要调整的角度。下面是代码:/** * Created by xujiawei on 2020-03...

2020-03-20 12:02:34 2246 1

原创 tiledmap拼接处有杂色线(黑线、缝隙)怎么解决

最近在cocoscreator里使用tiledmap时发现图快拼接处有黑色(杂色)的线条,通过修改地图块的大小无法解决,在tiledmap编辑器里一切正常,导入creator就有问题,后来发现是因为creator的抗锯齿引起的,只要关闭抗锯齿就正常,但全局关闭抗锯齿显然不可取,这里可以只针对地图块所用的贴图进行取消抗锯齿设置。具体方法如下:问题已经解决,解决方案有三个:1、全局关闭抗锯齿 ...

2020-03-20 11:32:21 2519

转载 求线段交点

本文转载自: https://www.cnblogs.com/xpvincent/p/5208994.html下面我就现学现卖的把最近才学会的一些"求线段交点"的算法说一说, 希望对大家有所帮助.本文讲的内容都很初级, 主要是面向和我一样的初学者, 所以请各位算法帝们轻拍啊 嘎嘎引用已知线段1(a,b) 和线段2(c,d) ,其中a b c d为端点, 求线段交点p .(平行或共线视作不相...

2019-11-28 16:41:27 1232

原创 牛牛牌型判定

牌型大小:五小牛 > 五花牛 > 炸弹 > 银牛 > 牛牛 > 有牛(牛987654321) > 没牛,K > Q > J ……2 > A, 黑桃♠️ > 红桃♥️ > 梅花♣️ > 方块♦️,同样的牌型比大小,同样的手牌比花色. /** * Created by skyxu on 2019/3/20. * */...

2019-05-06 10:42:50 9840 11

原创 斗地主滑动选择卡牌的实现

最近想自己做一个斗地主游戏(使用cocoscreator + javascript),发现滑动选择卡牌还有一点点麻烦呢,这里把实现分享下。1、首先封装卡牌CardCtrl.js  卡牌的touched属性即为触摸框选标记,selected属性为触摸结束所选择卡牌的标记。其他的牌面花色什么的这里不做处理。/** * Created by skyxu on 2018/11/1. *...

2019-03-25 14:10:50 1207

原创 经典排序算法之直接选择排序

直接选择算法和冒泡有异曲同工之妙。同样适合用于数据量非常小的排序。function sortSelect(arr) { for (let i = 0; i < arr.length; i++) { let index = i; for (let j = i+1; j < arr.length; j++) { if (a...

2019-03-18 15:13:21 284 3

原创 经典排序算法之插入排序

直接插入排序算法即每次循环都把后面的数据插入到比它小的数据前面。直接插入排序插入有序序列中需要从后向前挨个扫描数据,并且还要将数据向后移为新数据腾出位置,显然当数据量大的时候效率很低,直接插入排序适用数据量小的情况 function sortInsert(arr) { for (let i = 1; i < arr.length; i++) { let j = i...

2019-03-18 15:12:35 174 2

原创 经典排序算法之希尔排序

​ 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。希尔排序适合数据量中等情况,几十个到几万个。​ 网上看了好久才彻底明白希尔排序是什么,简单的说将就是按照步进对数据进行分组,对每组分别进行插入排序,直到步进是1的时候则全部完成。在此...

2019-03-13 14:08:02 275

原创 经典排序算法之堆排序

经典排序算法之堆排序若以升序排序说明,把数组转换成最大堆积(Max-Heap Heap),这是一种满足最大堆积性质(Max-Heap Property)的二叉树:对于除了根之外的每个节点i, A[parent(i)] ≥ A[i]。重复从最大堆积取出数值最大的结点(把根结点和最后一个结点交换,把交换后的最后一个结点移出堆),并让残余的堆积维持最大堆积性质。最大堆积即:父节点总是大于子节点的...

2019-03-11 11:47:24 146

原创 A*寻路在cocoscreator中的使用

1. 简介​ a星寻路作为启发式搜索,在游戏开发中经常使用,性能比dps要好,也比较简单好实现,通用原理网上很多这里就不多做详解了,还不熟悉的可以参考:简书链接;2. 实现伪码如下把当前点加入openListwhile(openList不为空){ 取出f值最小的点作为当前点curGrid if(curGrid == endGrid) 查找结束,生成路径 查找cur...

2019-03-11 11:45:20 1381 2

原创 cocos2dx循环滚动视图

由于项目需求大厅里的牌子要循环滚动(tips:这样看起来东西比较多,其实是个挺搞笑的需求),cocos本身的控件不满足需求,所以就简单写了个。目前惯性减速不太好用,有更好解决方案的大拿给个提示啊!GitHub链接 代码如下://// ScrollCircle.hpp// ScrollSelector-mobile//// Created by 徐家伟 on 2018/1/1

2018-01-23 11:57:23 810

原创 C++循环链表的实现

// .hpp文件#include class NodeCList{public: NodeCList(); static NodeCList* create(int element); int element; NodeCList* next;};class CircleList {public: CircleList(); sta

2018-01-19 16:36:13 4426

原创 经典排序算法之快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到

2017-07-17 15:06:44 311

原创 Java调用JavaScript

使用cocos2d-js开发游戏时常常需要和native平台交互,Java回调JavaScript也是常常使用的功能,贴心的cocos都已经帮我们准备好了,直接使用即可! 在你的项目中包含Cocos2dxJavascriptJavaBridge,这个类有一个evalString方法可以执行js代码,它位于frameworks\js-bindings\bindings\manual\platfor...

2017-07-06 16:29:37 1555

原创 使用python生成iOS各规格icon

使用python可以很方便的一次导出所需的各种大小icon,省时省力,美术只需要准备一个最大的icon就行了。#!/usr/bin/python# -*- coding: utf-8 -*-from PIL import Imageinfile = raw_input('Please enter the image path: ')outPath = raw_input('Please en

2017-07-06 16:26:17 1021

原创 常用算法之二分查找

二分查找简单又常用,但只能针对已经排序好的数据。int binary_search(vector<int> &arr,int key){ int left = 0; int right = arr.size() - 1; while(left < right) { int mid = (left + right) / 2; if(ke

2016-10-10 18:03:19 579

原创 Cocos Creator轮盘抽奖

Cocos Creator 组件式开发,刚开始学习,使用js语言,写个轮盘抽奖测试。 github链接 查看效果cc.Class({ extends: cc.Component, properties: { spinBtn: { default: null, // The default value will be used onl

2016-09-21 17:48:15 8270 9

原创 卡牌翻牌效果

经过测试,利用cocos2dx引擎自带的setScaleX和setFlippedX即可实现,效果比较好。 详细代码如下://// CCardNode.h// SlotsBase//// Created by xujw on 16/5/27.//// 卡牌类,实现类似扑克翻牌效果,默认翻牌时间为0.5s,建议时间为0.3-1.0f#ifndef CCardNode_h#defi

2016-08-15 16:57:11 1566 1

原创 cocos2d-x 滚动数字label

游戏中有时候需要滚动计数显示,比如添加金币从100滚动显示到9999,这里封装一个动作,直接传入label即可,方便使用。 使用时调用UtilsLabel里面的方法即可。//// UtilsLabel.hpp// ActionLabel//// Created by xujw on 16/3/7.////#ifndef UtilsLabel_h#define UtilsLabe

2016-03-16 18:21:17 1514

原创 简单手势识别

模拟iOS原生手势,简单实现点击(双击)、长按、滑动、拖动等功能。代码如下://// CGesture.h// ActionLabel//// Created by xujw on 16/3/15./* 手势识别 仿iphone 简单长按 点击(双击等) 滑动 拖动等。 * 使用方法: * auto gesture = CGesture::createTapGesture(

2016-03-16 18:15:42 1507

原创 标准CSV解析

很方便的csv解析,可以解析带有分隔符的字段,可以解析成map方便程序使用。//// CCSVParse.hpp// CPPAlgorithm//// Created by xujw on 16/2/26.// Copyright © 2016年 xujw. All rights reserved.//#ifndef CCSVParse_h#define CCSVParse_h

2016-02-29 18:49:47 2195

chrome插件 Spector.js

用来调试webgl

2021-03-25

chrome插件 网页截图FireShot.zip

在chrome中捕捉网页截图,编辑并将它们保存为PDF,JPEG,GIF,PNG或BMP;上传,打印,在Photoshop中打开,复制到剪贴板或电子邮件.

2021-03-25

chrome跨域插件cros(Allow-Control-Allow-Origin).zip

chrome跨域插件CORS离线下载,解压后有两个压缩包,直接把B压缩包拖放到chrome插件管理页面即可。或者解压A压缩包得到一个crx文件和一个zip文件,把这两个中的任一个拖放到插件管理页面即可。

2021-03-25

Mac切换显示隐藏文件小程序

好多同学在搜索在Mac环境下如何显示隐藏文件,虽然使用脚本可以实现,但还是没有一键切换爽,这个用Mac原生的Apple Script实现的,非常简单好用!

2016-01-05

经典拼图游戏源码

使用cocos2d-x3.9开发的经典拼图游戏,可以编译到安卓和iOS平台,重拾儿时的回忆!

2016-01-05

cocos2d-x寻路

cocos2d-x使用a星寻路的demo

2015-04-14

线程安全的消息中心

cocos2d-x3.2线程安全的消息管理中心

2014-11-28

PopStar源码,消灭星星源码

使用cocos2d-x3.2引擎开发的消灭星星源码demo,内容仅供参考和学习

2014-11-03

cocos2dx3.2打飞机Demo源码

使用cocos2dx3.2版本引擎开发的威信度打飞机demo,主要是练习结构搭建,有兴趣的童鞋可以自己扩展!下载后把3.2版本引擎的cocos2d文件夹复制一份放到工程根目录(与project.ios_mac同级)就可以直接运行了!

2014-09-04

A星寻路_OC

使用Objective-C语言写的A星寻路算法,供大家参考!

2013-10-31

一款基于cocos2d-x的打飞机游戏源码

基于cocos2d-x开发,模拟微信打飞机游戏,实现简单功能

2013-08-14

空空如也

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

TA关注的人

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