自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 C语言学习(摘自W3SCHOOL)

1、C语言简介C语言是一种面向过程的计算机程序设计语言;2、语言特点易于学习。 结构化语言。 它产生高效率的程序。 它可以处理底层的活动。 它可以在多种计算机平台上编译。 由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C 语言作为系统开发语言3、环境准备https://www.runoob.com/cprogramming/c-environment-setup.html4、Hello World入门程序#include <std

2020-11-18 16:52:44 590

原创 myEclipse一直弹出输入账号密码Please provide login details for

下了个myEclipse,开开心心写JAVA,发现一直弹出输入账号密码,也不知道是个什么账号密码,网上找了很多方法,都失败了。后来换了eclipse,安装不了,据说安装成功率是0,最后选择IntelliJ IDEA,问题解决...

2020-10-19 21:30:29 3324 1

原创 Chrome设置不设缓存

几乎每个排期的功能都会出现测试或者策划追问,刷新了,界面还是没变,程序回清缓存,浪费了不必要的时间,影响工作效率,故整理了一份设置Chrome不设缓存的操作步骤,同时,也简化了测试步骤,不必每次测试都手动清一次缓存,时刻打开控制台也方便第一时间发现报错1、F12打开开发者模式,界面上出现下面框中的界面,就说明打开了控制台,出现了就行,不一定在右边,因为这个是可以设置出现的位置的。然后点击Net...

2020-06-16 16:16:21 2501

原创 定位JS死循环位置

上周写代码写了个死循环,当时不知道是死循环,整个代码重构了一遍,还是跑不起来,Chrome一直在加载,控制台JS代码都显示不出来,当时怀疑是死循环,但是代码量那么多,无从查起,而且没有做版本管理,只能重写代码,难受尝试过重装Chrome还是没用,于是换了Microsoft EDGE,结果是代码能加载出来,但是页面表现不符合预期,整个页面什么都没显示出来。最后尝试用Firefox,结果如下,出现了提示某个网页让您的浏览器变慢了。您想如何处理?当然是选择右边的停止了,这时候JS代码就加载出来了,

2020-05-25 10:41:25 2055

原创 LAYA屏幕适配

相关概念1、物理分辨率:简单来讲,就是设备像素,也就是一般人所理解的屏幕尺寸,例如iPhone8 的物理分辨率是1334 × 7502、缩放因子:机型物理分辨率也越来越高,一个point所占用的物理像素越来越高,缩放因子表达式为@nX,也就是在这个机型上1个point 用n×n的物理像素矩阵来表示3、逻辑分辨率:就是就是软件所使用的分辨率。物理分辨率/逻辑分辨率 = 缩放因子4、设备像素比DPR(Device Pixel Ratio):也就是缩放因子,LayaAir引擎中通过La...

2020-05-12 12:31:29 1872

原创 BUG检查思路

1、赋值是对的但是表现上没设上去--检查赋值对象是不是错了,是不是没有父对象,比如赋值的对象只是个item,但是这个item并不在舞台。而实际在舞台上的对象,数据源并没有变化;...

2020-04-01 15:33:52 263

转载 Node.js EventEmitter

Node.js事件派发机制类似AS3的事件派发机制,可以对比理解。Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。你可以通过require("events");来访问该模块。EventEmitter 的每个事件...

2020-03-19 15:38:50 142

原创 requestAnimationFrame

Javascript 中可以通过定时器 setTimeout 和setinterval来实现但是这两种定时器的实现并不精确,会受到其他定时器的影响,setTimeout 任务被放进了异步队列中,只有当主线程上的任务执行完以后,才会去检查该队列里的任务是否需要开始执行,因此这两种定时器的实际执行时间通常都会晚于设定时间。这样的后果就是可能会出现掉帧。推荐使用requestAnimationF...

2019-11-13 18:17:02 379

原创 图片显存计算

显存容量=显示分辨率×颜色位数/8bit注意,图片在显存中的占用空间和存储时的占用空间,是不同的概念,显存主要是解码后的每个点的数据,文件数据要看你的格式、压缩比、文件头、附加信息等等,因此文件数据和图片在内存和显存中的数据差别可能会很大。以下图为例直接查看属性,可以看到,文件大小,41.8KB,170*153分辨率,占用空间44.0KB,占用空间和文件本身大小差距不...

2019-11-12 16:55:45 4095

原创 Laya自定义页面继承

低版本的Laya页面类型只有View和Dialog,高版本的加了Scene类型,但是开发时可能并不满足于官方默认的这几种自定义页面继承基类。比如需要加入资源管理或者其他项目特殊的功能逻辑等,希望继承自个人编写的页面继承基类。具体操作步骤:1、Alt+W切换到编辑模式2、F9弹出项目设置,低版本和高版本Laya界面可能不一样,但是名字一样,找到页面类型,加入自定义继承基类名字,博主为Ba...

2019-11-05 18:02:10 1027 1

原创 SVN插件的使用

1、SVN插件的下载安装,这里就不提了2、打开SVN设置,点击选中Hook Scripts脚本3、点击add添加脚本4、选择脚本文件以及脚本生效的目录,脚本生效的目录无特殊需要,选择整个系统盘就行了5、结果如下、6、给脚本调价Wscript "",并对脚本执行进行设置如下7、点击OK,点击应用,点击确定,脚本就生效了,后面再改脚本不用重设脚本,直接对...

2019-10-17 18:32:17 733

原创 Laya版本管理

1.7.15beta开始,打开发布界面,最后一项是管理是否启用版本管理的功能启用版本管理之后,将会生成带hash的文件名,并生成一个version.json的文件名映射文件,在项目中可以通过使用ResourceVersion类进行版本控制,使用版本控制之后就会在加载时自动去加载带hash的文件名。代码中通过ResourceVersion类加载管理资源版本启用版本管理后,资源名会被加上h...

2019-10-16 14:44:29 1260

原创 panel滚动区域

panel是LAYA提供的一种滚动组件,LIST也可以滚动。给panel直接添加子元素,发现panel的滚动区域有点大,最后一个子元素可以一直滑到panel中间,而策划想要的效果确实panel的最后一个子元素,滑到panel边缘就不要再滑动。实现方法是在UI编辑器里面给panel添加一个子元素box,把原本需要添加到panel的元素添加到box,设置一个变量tempY记录box所有子元素的...

2019-09-19 10:05:39 910

原创 innerHTML内嵌文字图片

经常遇到这种需求(策划特别喜欢),一行文字中间需要嵌入图片,但是这行包括图片的文字又需要根据文字长度或者图片宽度自适应居中。比较原始的方法是每种情况都放进去试下,量坐标,然后写if条件进行判断,不同条件设置不同的坐标实现居中。后来发现LAYA提供的HTMLDivElement支持同时包含文字和图片,引擎在渲染时,如果是文字,则会用HTMLElement进行渲染,如果是图片,则会用HTMLI...

2019-09-19 09:56:40 2853

原创 node常用命令

断点调试node --inspect-brk index.js 然后在浏览器打开chrome://inspect/#devices查看node版本 node -v查看npm版本 npm -v安装node打包工具 pkg cnpm install -g pkg打包node为可执行文件pkg entrance.js (如果不加可执行文件类型要求,则Mac、Windows、Lin...

2019-07-08 23:06:19 249

原创 for in的key只能是string

用AS3开发时,new键值对,键为int类型,但是这里的键其实是string,编译成JS语言后,JS是弱类型语言。这种写法在部分移动设备上可能会导致游戏卡死(崩掉)。//错误用法var map:Object = {};map[1] = "one";map[2] = "two";map[3] = "three";for(var key int in map){ cons...

2019-07-08 22:57:24 820

原创 for循环内外定义变量的区别

直接上代码 var attrOuter:Object={}; var objOuter:Object={}; var indexOuter:int; var objInner:Object={}; for (var i:int=0; i < 5; i++) { indexOuter=i; attrOuter.name=i.toStrin...

2019-05-22 22:06:24 20018

原创 for in和for each遍历的区别

var dataSource:Object = {}; dataSource[1] = 1000; dataSource[2] = 2000; dataSource[3] = 3000; dataSource[4] = 4000; console.log("for each遍历"); for each(var value:int in dataSourc...

2019-05-21 23:52:56 5193

原创 归并排序(分治策略)

归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 private var arrTest:Array=[9, 8, 7, 6, 5, 4, 3, 11, 2...

2019-05-08 14:32:33 1166

原创 二分查找-最省内存的快速查找实现方式

首先,二分查找的使用对象是有序数据集合。如果是无序的数据,则不能使用二分查找。二分查找的时间复杂度为O(logn),插入和删除操作少,但是查找频繁时,可以考虑将数据设计成有数数组数据,用二分查找进行查找。当插入和删除频繁时,如果设计成有序数组数据,则需要频繁的修改数组数据,此时不宜用二分查找。二分查找可以理解为生活中的折半查找,每次都取中间值,直至找到指定值或者最后查找区间长度为1。二分查找依...

2019-05-07 21:50:47 160

原创 本地坐标和全局坐标转化

涉及到的APIglobalToLocallocalToGlobaltoParentPointfromParentPoint /** * 把本地坐标转换为相对stage的全局坐标。 * @param point 本地坐标点。 * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的p...

2019-05-05 21:44:38 5354

原创 双指针法降低时间复杂度

六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。第一种是常见做法,两层for循环,时间复杂度为O(n^2),基本上都能想...

2019-04-25 15:20:30 1808 1

原创 CacheAs静态缓存优化

合理使用CacheAs静态缓存优化可以提高渲染性能CacheAs属性值有none、normal、bitmap,默认为none;* <p>指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。</p>* <p>建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。ca...

2019-04-18 16:15:00 828

原创 Laya性能统计面板

AS3调用性能统计面板引入laya.utils.Stat类,直接使用Stat.show()方法FPS(Frames Per Second)-每秒传输帧数,帧速越高,视觉上感觉越流畅当前PC与手机等设备的满帧是60帧,流畅度要求低的游戏,可以采用引擎的帧速限制方法Stage.FRAME_SLOW,将FPS帧速限制为最高30帧。更好的方法是采用自动模式,以30的帧率运行,但是鼠标...

2019-04-18 15:49:16 3143

原创 WebGL和canvas渲染方式

Laya引擎支持WebGL和canvas两种渲染方式,可以在引擎初始化时选择渲染方式Laya.init(width,height,WebGL);//WebGL模式Laya.init(width,height);//canvas默认为canvas模式canvas是一个H5标签,作用是在网页上画图,但是只支持2D,不支持3D。WebGL是一种3D绘图标准,WebGL支持3D,且性能优于ca...

2019-04-18 14:55:49 12358 1

原创 LAYA 骨骼动画

LayaAir引擎中模板是一种特别的概念,表示一种数据结构,这种数据结构可以被复用。骨骼动画就使用到了模板,对于同一个动画来说,可以只创建一个动画模板,然后实例多个播放的实例,这样内存中就只有一份的动画数据,但是却可以在舞台上显示多个动画。创建骨骼动画代码private var sk:Skeleton;private function showSki():void{ var t:...

2019-04-15 16:30:47 1515

原创 使用LocalStorage把数据存储在设备上

Laya官方文档的解释是“用于没有时间限制的数据存储”。w3c上给出的说法是“用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。”个人觉得w3c给出的释义更好理解。作用就是将数据不设置过期时间,永久保留在本地,除非手动删除保存的数据。与sessionStorage类似,但sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签...

2019-04-12 15:34:00 2328

原创 算法复杂度分析

数据结构和算法的终极目标是“快”和“省”,衡量代码的执行效率,最直接的方法就是把代码跑一遍,通过统计、监控就能得到算法的执行时间和占用内存的情况。但是这样做的问题是测试结果非常依赖测试环境以及测试结果受规模的影响很大。同样的代码,在i3和i7上跑,执行的时间明显不一样。即使在同一台机器上跑,同样的代码得出的统计、监控结果也可能不一样,而且,当有多种算法可供选择时,总不能把每种算法都...

2019-04-11 23:16:01 132

原创 DOS批处理实现多个工程资源共享

rem ******得到批处理的盘+路径,例如D:\filePath******set rootPath=%~dp0rem ******得到code文件夹路径******set codePath=%rootPath%\coderem ******得到art资源路径******set artPath=E:\T5\Trunk\artrem ******需要创建的文件夹的路径及文件夹...

2019-04-11 17:23:45 247

原创 MAC 搭建LAYABOX AS3环境

一、准备工作先登录laya官方网站,下载引擎和IDE,如图,把红框内的LayaAir引擎和LayaIDE都下载下来,在桌面创建新的文件夹layaair(可以叫别人名字,但是要记住名字),把下载的引擎和IDE拖到layaair文件夹。然后下载安装Chrome浏览器,​ 当执行AS3代码编译后,默认调用Chrome浏览器打开运行项目,需要安装此浏览器进行项目调试选择相应语言的引擎进行下载;下载...

2019-04-11 11:10:33 1319

原创 layabox list底层渲染方式

做功能意外发现list的渲染没有按照arr顺序进行,而是从上往下、从左往右进行渲染的。仔细观察,博主所做的功能,list纵向有两个item,横向可以无限增加item个数。查看laya引擎底层list类,发现渲染代码如下 private function _createItems(startY:int, numX:int, numY:int):void { var box:Box...

2019-04-10 00:11:25 1907

原创 progressBar组件

LayaIDE自带的特殊组件一共有5个,分别是垂直滑动条组件VSlider、水平滑动条组件HSlider、进度条组件ProgressBar、垂直滚动条组件VScrollBar、水平滚动条组件HScrollBar。VScrollBar和HScrollBar常用于list和panel滑动,ProgressBar用于各种进度,如完成度、加载进度等等。这三种较为常见。下面说下进度条组件的使用特...

2019-04-02 11:33:25 361

原创 代码性能优化

手机项目开发比PC项目开发对性能要求更高。简单点说,就是目前手机性能和PC性能比起来,硬件性能完全不是一个量级,在Pc上跑起来没什么问题的项目,搬到手机上,很可能就吃不消甚至卡死。计算机的房展分为海量存储和高性能(PC)、低功耗微型化(手机),虽然现在手机性能跟之前比提升了很多,但是PC性能也提升了很多,两者还是没法比。两者的发展截然相反。另外,两者使用的不同结构的计算机,从结构上导致了PC和...

2019-04-01 14:37:18 196

原创 pos极速模式

pos pos(x:Number, y:Number, speedMode:Boolean = false):Sprite 设置坐标位置。相当于分别设置x和y属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...); 以上是官方API解释在设置x,y属性时,正常情况下,默认不使用极速模式,调用this.x...

2019-03-20 11:36:23 191

原创 图片拖拽效果

游戏中比较常见的拖拽效果,例如拖动技能icon或者其他道具icon到指定位置,松开之后,判断能否使用。下面是用laya与as3实现拖拽效果的代码(需求是拖拽icon,并且,icon拖拽道具到指定位置时如果满足条件,该指定位置的item高亮显示)先在UI编辑器里面给各个item添加name,博主这里假设icon只有2个,并给name分别赋值为icon0,icon1,对此,单纯的拖拽和松开鼠标...

2019-03-19 21:50:18 1074

原创 tab与viewStack

​ Tab 组件用于定义选项卡按钮组,例如多页面切换显示。ViewStack组件主要用于多页面视图切换。它包含多个子页面,但默认只显示一个,可以通过子页面索引进行显示切换。一般情况我们用它与Tab标签组合制作标签切换页面,表现上类似于页签,不同页面都会显示,但是对应不同的页面,显示不同的状态,有点类似页签。点击tab切换页面内容显示,同时viewStack会切换显示,例如显示不同的页签图片...

2019-03-19 16:02:23 496 3

原创 对象池

这个是官方解释Pool是对象池类,用于对象的存贮、重复使用。对象池优化是游戏开发中非常重要的优化方式,也是影响游戏性能的重要因素之一。在游戏中有许多对象在不停的创建与移除,比如角色攻击子弹、特效的创建与移除,NPC的被消灭与刷新等,在创建过程中非常消耗性能,特别是数量多的情况下。对象池技术能很好解决以上问题,在对象移除消失的时候回收到对象池,需要新对象的时候直接从对象池中取出使用...

2019-03-18 18:07:46 1656

原创 JS拼接字符串的效率

JS拼接字符串的方式,1、最常见的是+=;2、还可以先将字符串转化为数组,然后调用Join实现字符串拼接arr.push(str);return arr.join("");效率分为运行速度和内存消耗问题,网上查了相关资料,结论就是join在字符串字节很大时(百万级以上),用join会明显快于用+=实现的字符串拼接(),用+=耗时大概时10秒,用join大概是几百毫秒,当字节数很...

2019-03-18 15:22:51 4350 1

原创 升级进度条动画的处理思路

养成模块,经常有升级进度条,每次进度条满了之后会升级,然后进度从0开始累积。最开始想到的方法(根据需求直接翻译的需求,有时候策划给出的逻辑,不一定要按照策划的逻辑来写,换一种逻辑也可以,只要最后达到的效果是一样的就行)是每次升级完成之后,减掉升级已经消耗得进度值,然后再拨进度条动画,再次满进度之后,再减再播动画,这样写也不是不可以,但是很容易出问题,这里提供一个更简单的思路。获得进度...

2019-03-15 11:29:42 782

原创 网络不稳定问题的兼容处理

玩家由于网络波动造成短线重连,需要知道的是,网络问题,我们能做的只是兼容处理,不能完美解决。网络问题分两种情况:一、客户端向服务器发协议之前就断网了;二、客户端向服务器发完协议之后断网了;断网能引发一系列问题,查代码,逻辑又是没问题的,下面以刮刮卡为例说明断网造成的影响,以及相应的解决方案逻辑是,刮卡之后,客户端进行记录,记录后,该道具再次请求刮开时会被拦截,这么处理是为了避免客户...

2019-03-14 12:30:57 1053

空空如也

空空如也

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

TA关注的人

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