- 博客(24)
- 资源 (4)
- 收藏
- 关注
原创 排序算法(八) - 桶排序
桶排序是目前我看到的排序算法中最复杂的一种排序方法了,不是他的排序原理复杂,是实现起来代码量比较复杂。 原理:桶排序的基本思想是将一个数据表分割成许多buckets,然后每个bucket各自排序,或用不同的排序算法,或者递归的使用bucket sort算法。也是典型的divide-and-conquer分而治之的策略。它是一个分布式的排序,介于MSD基数排序和LSD基数排序之间。步骤: 一...
2018-03-30 19:15:38 316
原创 排序算法(七) - 基数排序
基数排序原理:将根据整数的最右边数字将其扔进相应的0~9号的篮子里,对于相同的数字要保持其原来的相对顺序(确保排序算法的稳定性),然后将篮子里的数串起来,然后再进行第二趟的收集(按照第二位的数字进行收集),就这样不断的反复,当没有更多的位时,串起来的数字就是排好序的数字。 排序时按照最低有效位进行排序来解决排序问题。C++示例:#include <iostream>usin...
2018-03-30 17:17:40 203
原创 排序算法(六) - 计数排序
计数排序有一个假设条件,假设:n个输入元素中的每一个都是在0到k之间的一个整数,其中k为某个整数,当k为O(n)的时候,排序的运行时间复杂度是(n)。 C++示例:#include <iostream>using namespace std;/* 计数排序 */void countSort(int arrA[], int arrB[], int k, int c...
2018-03-30 00:40:40 317
原创 排序算法(五) - 快速排序
与归并排序一样,开始排序也是使用了分治思想,他也分为三个步骤。 一、分解,将序列分为两个子序列,方法,随便指定一个数,将队列中所有大于这个数的作为一个子序列,小于这个数的作为另外一个子序列。 二、解决,通过递归对上面两个子序列排序。 三、合并,由于子序列都是原地址排序,所以已经是排序好的序列。快速排序是一个效率很高的排序方法,中心思想是第一步的分解,掌握了分解方法,就掌握了这个排序。...
2018-03-29 20:35:17 176
原创 排序算法(四) - 堆排序
最大堆:任何一个父节点都比子节点大 最小堆:任何一个父节点都比子节点小堆排序的步骤分为三步: 一、建立一个堆。 二、将建立的堆整理成最大堆或者最小堆。 三、依次遍历要排序的队列节点,保证每个节点都满足最大堆或者最小堆。C++示例:#include <iostream>using namespace std;/* 将一个堆转化为最大堆 */void ma...
2018-03-29 19:40:44 293
原创 排序算法(三) - 冒泡排序
冒泡排序是一种效率很低但很常用的排序方法,当数据量很小的时候可以使用它。 它的实现原理是反复的交换相邻的两个未按次序排列的元素。 C++示例:#include <iostream>using namespace std;/* 冒泡排序 */void bubbleSort(int arr[], int count) { for (int i = 0; i &l...
2018-03-29 17:55:01 227
原创 排序算法(二) - 归并排序
归并排序的三个步骤: 一、分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。 二、解决这些子问题,递归地求解各个子问题。然而,当子问题规模足够小,则直接求解。 三、合并这些子问题的解成原问题的解。实现方法分解: 一、分解待排序的n个元素的序列成各具有n/2个元素的子序列。 二、使用归并排序递归的排序两个子序列。 三、合并两个已经排序的子序列以产生已排序的答案。C++实...
2018-03-29 17:10:38 253
原创 排序算法(一) - 插入排序
题目:输入一个数组,将其按从小到达的排序,该节使用插入排序。 一般当数据量不是特别大的时候采用插入排序是一种不错的选择。 C++示例:#include <iostream>void insertSort(int arr[], int count);int main(int argc, const char * argv[]) { // insert cod...
2018-03-29 00:06:25 235
原创 LayaBox -- 使用Date获取当前系统时间
LayaBox有一个Laya.timer的类,可以获取当前游戏运行帧数,添加update,等功能,同时也有一个Date类,用来获取系统时间。 系统时间如下: private getSystemTime(): string { var curDate: Date = new Date(); var month: number = curDate.getMo...
2018-03-28 11:42:20 7242
原创 LayaBox -- 使用滤镜实现图片黑白效果
项目中,如果我们想讲一个还没有购买的任务隐藏掉,抹掉他的色彩或者直接将其设置为黑色,LayaBox中给我们提供了一种滤镜的功能可以实现上面的要求。/** * 将角色设置为灰色的。 */ private grayingRole(roleImg: Laya.Image): void { //由 20 个项目(排列成 4 x 5 矩阵)组成的数组,灰图 ...
2018-03-27 17:49:03 3727
原创 LayaBox -- 实现ScrollView效果
这一篇我们实现一个简易的ScrollView效果,先看一下效果图。 为什么要实现,我们在自己项目中,如果商店界面或者选择角色界面有需要居中显示,或者居中放大等效果的时候,使用自带的List就不能满足我们的要求了,这个时候自己实现一个是最好的。 由于基本都是代码,所以上代码是最舒服的。自己创建一个叫ScrollView的ts文件。由于自己只需要横向的,所以ScrollView只实现了横向的效...
2018-03-27 17:39:24 9705 13
原创 LayaBox -- List组件的使用
本节我们使用LayaBox 自带List组件实现了一个排行榜界面,由于List组件限制很多,我们下篇自己实现一个类似Unity ScrollView的效果。list滑动效果如下:排行榜里面的数据,头像等都是随便写上去的,而且分数也没有实现从高到低的排序,我们现在只是做出上图的效果。一、UI效果制作 a. 创建一个View类型的UI页面,RankList.ui。b. 制作返回按钮和上面...
2018-03-27 17:31:05 16946 2
原创 LayaBox Bug -- number类型精度问题
当然这个标题是有问题的,与其说是LayaBox的number精度问题还不如说是TypeScript的精度问题,或者说是JavaScript的精度问题。先看一个测试用例和输出看看这个问题有多严重。class Degree{ constructor(){ Laya.init(600, 400); let result = 0; for (...
2018-03-21 18:42:22 1319
原创 LayaBox -- 动态增加分数效果
LayaBox在API上面用起来还是很不方便的,比如我想定时loop一个东西,但是有循环次数,LayaBox就没有提供这样的接口,接下来我们要实现一个动态增加分数的效果,如果可以固定次数的loop就会变得很简单,但,没有就算了,我们自己实现以下就可以了。游戏结算面板分数实现一个像定时器一样的动态增加分数效果,废话不说直接上一下代码: // 显示分数 private show...
2018-03-21 18:34:02 1946
原创 LayaBox -- TypeScript中Matter.js的使用示例
在LayaBox官方物理引擎示例中使用的是Matter.js,但并不是说Laya只能使用Matter.js作为他的物理引擎,其他的像Box2D,p2等都可以使用的,但是我们现在来说一说TypeScript怎么使用Matter.js 1. 首先,Matter.js的安装,这里有Matter.js的下载安装方法,自己搞定。同时还有示例,API等。 2. 使用,你需要在index.html文件中引用...
2018-03-16 18:57:21 6975 8
原创 LayaBox -- 类型转换(基础数据类型转换,强制类型转换)
1、基础类型转换(string转number类型,number转string类型)class TypeChange { constructor() { this.print(); } age: number = 20; ageStr: string = "20"; ageNull: string; public print(...
2018-03-15 16:40:58 3777
原创 LayaBox -- 加载Json数据
其实LayaBox加载Json还是蛮简单的,但是作为新手来说,其实也不容易,下面放出解决方法,在类比一下就知道有多容易了。 新建laya.json文件放入到bin目录下// laya.json{ "name": "deng", "age": 17, "sex": "male", "phone:": "12345678"}
2018-03-14 18:26:46 9482 2
原创 LayaBox Bug -- Cannot connect to runtime process, timeout after 10000 ms
有时候你会使用layaair调试,一切都正常,可是等你切换到Chrome调试的时候,出现了Cannot connect to runtime process, timeout after 10000 ms - (reason: Got a response from the target app, but no target pages found).错误,(或者chrome正常,layaair调...
2018-03-14 17:08:38 8457
原创 Mac下运行C++程序
Mac 下可以使用g++和clang++ 编译运行C++程序,直接给个列子#include<iostream>using namespace std;int main() { char str[] = "xyz"; char *ps = str; while (*ps) { ps++; } for (ps--; ps - s...
2018-03-14 15:41:39 3649
原创 TypeScript -- ==、===、!=、!==
经常遇到使用===的情况,明明==就能表达了,为什么还用===呢,下面给出Js对应符号的意义。JavaScript中的=、== 、!==、===的用法和区别。var num = 11;var str = '11';var test = 11;test == num //true 相同类型 相同值test === num //true 相同类型 相同值test !== num //false
2018-03-13 14:32:14 10591 2
原创 TypeScript -- 存取器(set,get)
TypeScript语法请看TypeScript中文网这里我们主要是看一下存取器,也就是get,set方法。 在C#中,我们使用存取器的方法是 public int m_Life = 0; public int Life { get { return m_Life; } set...
2018-03-13 14:19:16 47305 4
原创 LayaBox Bug -- “加载游戏失败,可能由于您的网络不稳定,请退出重进”
构建LayaBox的iOS工程后,在摸索了一阵iOS证书,账号等问题,我们终于将工程在模拟器上运行起来了,结果出现了下面的图,我们一脸懵逼,各种查资料,找解决方案。一个字形容,坑爹啊。好吧,下面我们来说说解决方法,这是我经过多次查找与测试的结果,如果有不一样的或者直接成功的,请告诉我。首先按照官方给的教程看看是否可以解决这个问题先将项目发布 会在工程生成一个release的...
2018-03-12 19:00:41 5065
原创 微信小程序设置横竖屏
情况:使用LayaBox发布的微信小游戏,我在微信开发者工具上面编译,发现我明明想要的是横屏的但是结果显示竖屏,我查看菜单栏,配置,最后找到设置的方法。解决:在game.json中有一项属性设置:"deviceOrientation":"portrait",当前设置竖屏,将其设置为:"deviceOrientation":"landscape",为横屏。...
2018-03-07 16:24:01 26642 6
转载 让你尖叫的游戏开发工具清单
看见这个博客,让我不得不收藏,不,收藏还不够,还需要点赞,还需要转载,好东西就要病毒传播才能让更多人看见。引言由了不起的人为了不起的人而创注意:部分网站可能需要科学上网才能访美术卓绝的游戏美术资源和编辑工具,让朴实无华的游戏变得犹如毕加索的艺术创作。素材/占位符2D卡通风格移动端游戏UI包卡通风格的用户界面素材包。包含多图层的psd格式文件。用于RPG游戏的420像素图标免费商用授权。CG材质/C...
2018-03-02 11:31:23 5006
批量导出icon尺寸
2016-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人