- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 使用electron工具打包web端到PC端应用程序
可以方便的构建mac端包,我们在此基础上构建windows端exe包.1在package.json文件的script字段增加以下配置。根据electron官网。2然后在终端执行以下命令。
2023-11-22 23:14:00 706
原创 laya2D射线检测
不过没关系,先看下laya集成的源码laya.physics.js, 通过搜索raycast关键字我们可以就可以发现对应接口,虽然laya的libs声明文件中Laya.physics.I.world为any类型,但通过输出到控制台我们可以发现这个就是laya.physics.js文件中的b2World类型,而且有对应的射线检测方法,如下图。有了源码,我们是不是就可以照着上面使用了呢?前言:在实际开发中,发现laya并没有提供2D射线检测的接口,查看源码发现laya的2D物理采用的是。
2023-05-23 23:19:44 286
原创 Ts 数组的使用
数组的常用操作,增、删、改、查、置空、遍历、迭代、初始化、与字符串的相互转换、连接两个数组、查找符合条件的多个数组元素、判断该数组的所有元素或者单一元素是否符合某个条件等内容............
2022-06-08 16:21:41 10378 2
原创 laya-字体大小根据当前设置的宽度动态变化
由于laya暂时无相关设置,故自己动手实现一个字体大小根据当前设置的宽度动态变化的工具,将该类拖入到对应text的组件的runtime中即可生效,该类适用于文本内容可能超出设置的文本边界情况时。
2022-06-01 10:15:11 703 3
原创 工厂方法模式
/** 工厂方法模式中的产品基类 */export default class ProductBase { constructor() {}}/** 具体的产品A */export class ProductA extends ProductBase { constructor() { super(); console.log("[ProductA].constructor(): "); }}/** 具体的产品B */export cl.
2021-12-15 19:03:16 1086
原创 2d贝塞尔曲线ts递归实现算法
export default class BezierCurve { /** * 获取贝塞尔曲线的点的集合 * @param points 点的集合, 至少包含起点和终点 * @param num 想要生成多少点 * @returns */ public static getCurvePointsInNum(points:Array<any>, num:number): Array<any> { .
2021-11-26 16:28:21 569
原创 js 关于文件的操作
1.读取某个文件的内容var fs = require('fs');// 读取文件let buf = fs.readFileSync("test.json");let data = fs.readFileSync("test.json", "utf8");console.log("readFileSync(): buf",buf); // Buffer 数据console.log("readFileSync(): data",data); // 按照 utf8 格式编码解析// 异步
2021-11-22 17:50:21 2341 2
原创 laya2d 物体从起点移动到目标点(按一定角速度平滑偏转)
可方便的实现火箭弹追踪效果import MathE from "./MathE";import Script = Laya.Script;import Image = Laya.Image;import Point = Laya.Point;export default class MoveAngleToTarget extends Script { private _targetPos: Point = null; public get targetPos(): Po
2021-11-16 14:35:54 1123
原创 Ts 中使用const宏常量
在ts里使用 宏常量可以直接使用 const 定义在类外, 但此时在其他脚本中无法引用, 所以可以用 export 修饰一下, 此时它作为全局宏。有时候我们在做类的划分时, 并不希望将一个宏划分出去,此时我们希望将一个宏定义在类内,但属性定义并不允许 const 修饰,此时我们可以用2.0的 readonly 特性,结合 static 使用,这样我们就可以得到一个有 常量 特性的属性了。示例:/** 类外定义并导出,使其他页面类可以引用 */export const MAIN_MAP_LOOP_
2021-10-21 17:50:18 4399
原创 Laya UI 穿透问题与mouseEnabled属性
在UI制作过程中,常常遇到,在一个UI上绑定了一个点击事件,因为某些需要,需要在这个UI上添加一另一个UI作为遮罩,表示不希望当前UI的点击事件被触发。 在不写代码的情况下,如果这个UI遮罩没有添加任何点击事件并且的mouseEnabled属性为Auto或者false时,这个时候UI遮罩并没有起到遮挡作用。 这是因为 laya 引擎在设计时考虑到性能问题,UI默认不接受鼠标事件,将mouseEnabled属性设置为true后,UI遮罩将接受鼠标事件(相当于添...
2021-08-23 15:14:14 1175
原创 选择排序-TS
/** * 选择排序 * @param arr * @returns */ private selectionSort(arr:Array<number>) { if(!arr) { console.log("sort(): arr 参数为 null 或 undefined"); return; } for(let i:number = 0; i < arr...
2021-07-30 14:13:05 130
原创 插入排序-TS
/** * 插入排序 * @param arr * @returns */ private insertionSort(arr:Array<number>) { if(!arr) { console.log("sort(): arr 参数为 null 或 undefined"); return; } for(let i:number = 1; i < arr...
2021-07-30 13:50:40 251
原创 Laya UI点击播放音效脚本
import Script = Laya.Script;import SoundManager = Laya.SoundManager;export default class AudioSourceScript extends Script { /** @prop {name: audioClip, tips:"音效地址",type:string,accept:res} */ audioClip:string = ""; constructor() { super(); .
2021-04-12 13:38:03 370
原创 Laya实现一个文字逐字显示的效果
脚本:import { ui } from "../ui/layaMaxUI";import Event = Laya.Event;import Scene = Laya.Scene;import Tween = Laya.Tween;import Handler = Laya.Handler;export default class DescribeView extends ui.Assets.Views.DescribeViewUI { private str:strin.
2021-02-07 20:03:36 572 2
原创 Laya 一个子弹飞行类的脚本模板
import Script3D = Laya.Script3D;import Vector3 = Laya.Vector3;import Sprite3D = Laya.Sprite3D;/**炮弹基类 */export default class ShellBase extends Script3D { /**炮弹模型 */ protected _sprite3D:Sprite3D; /**子弹的飞行速度 m/s*/ protected _speed:numb.
2020-12-23 17:01:54 504
原创 Ts-Map 类的使用
// map类型的的键值对类型可以是任意类型 let map:Map<string,number> = new Map(); // 设置键值对 map.set("Jack", 0); map.set("Tom",50); map.set("王心怡",80); console.log("原始map:",map); // 删除键值对 map.delete("Jack"); console.log("删除Jack",map); // 修改...
2020-12-15 11:59:04 29684 1
原创 冒泡排序-ts
/** * 冒泡排序 * @param arr */ public sort(arr:Array<number>): void { for(let i: number = 0; i < arr.length - 1; i++) { let flag:boolean = false; // 防止数组已经有序而继续排序 for(let j: number = 0; j < arr.length - i - 1; j++) { if(arr[j..
2020-10-27 11:43:20 787
原创 游戏开发-关于UI框架的思考
在设计之前一定要先把开发的需求写明白,我们希望UI框架能够解决什么问题,方便我们如何去做。 在开发的过程中,我们常常会有一些感觉,当我们在制作UI面板时,写了很多相似的代码,例如一些关闭面板的效果,常常为在一个面板中去关闭另一面板或调用另一个面板的某个方法时感觉特别别扭,不舒服,甚至感觉这样,你调用我,我调用你这样关系错杂的逻辑感到烦恼。在写战斗逻辑时想要更新某个面板上的UI,例如分数,战力值等等,如何解耦,让UI变成一个触发式的更新,而不用实时监听。如何使得我们的框架足够灵活,能够适应各...
2020-08-27 11:50:41 282
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人