New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

common-game

Package Overview
Dependencies
Maintainers
1
Versions
182
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

common-game - npm Package Compare versions

Comparing version 0.0.46 to 0.0.47

2

package.json
{
"name": "common-game",
"version": "0.0.46",
"version": "0.0.47",
"description": "",

@@ -5,0 +5,0 @@ "main": "common-game.js",

@@ -115,2 +115,30 @@ import * as PIXI from "@tbminiapp/pixi-miniprogram-engine";

}
lineSprite(ops) {
let line = new PIXI.Graphics();
line.lineStyle(ops.lineW || 4, ops.color || 0xFFFFFF, ops.alpha || 0);
ops.points.forEach((point, idx) => {
if (idx == 0) {
line.moveTo(point.x, point.y);
} else {
line.lineTo(point.x, point.y);
}
})
line.lineTo(ops.points[0].x, ops.points[0].y);
line.endFill();
return line;
}
polygonSprite(ops) {
let polygon = new PIXI.Graphics();
polygon.lineStyle(ops.lineW || 4, ops.color || 0xFFFFFF, ops.alpha || 0);//边框
// 填充
if (ops.bgColor) {
polygon.beginFill(ops.bgColor || 0x3500FA, ops.bgAlpha || 0);
}
polygon.drawPolygon(ops.points);
polygon.endFill();
return polygon;
}
// 全局点击事件

@@ -117,0 +145,0 @@ bindFullEvent(callback) {

@@ -153,3 +153,69 @@ import Quadtree from './libs/quadtree';//四叉树

return arr.sort(() => Math.random() - 0.5);
},
dotV2: function (v1, v2) {//两个向量的点积
return v1.x * v2.x + v1.y * v2.y;
},
calcProj: function (axis, polyArr) {//计算polyArr在轴线axis上的投影,polyArr是一系列点坐标的集合,数组表示
var v = {
"x": polyArr[0].x,
"y": polyArr[0].y
};
var d, min, max;
min = max = this.dotV2(axis, v); //计算投影轴与第一个坐标点的点积
for (var i = 1; i < polyArr.length; i++) {
v.x = polyArr[i].x;
v.y = polyArr[i].y;
d = this.dotV2(axis, v); //计算v到投影轴的距离,遍历出最小和最大区间
min = (d < min) ? d : min;
max = (d > max) ? d : max;
}
return [min, max];
},
segDist: function (min1, max1, min2, max2) {//计算同一个轴上线段的距离s1(min1,max1),s2(min2,max2),如果距离小于0则表示两线段有相交;
if (min1 < min2) {
return min2 - max1;
} else {
return min1 - max2;
}
},
//判断两个多边形是否相交碰撞,p1,p2用于保存多边形点的数组
isCollide: function (p1, p2) {
//定义法向量
var e = {
"x": 0,
"y": 0
};
var p = p1,
idx = 0,
len1 = p1.length,
len2 = p2.length,
px, py; //p缓存形状p1的数据
for (var i = 0, len = len1 + len2; i < len - 2; i++) //遍历所有坐标点,i+=2代表xy轴两个坐标点
{
idx = i;
//计算两个多边形每条边
if (i >= len1) { //当p1遍历完毕后,p缓存形状p2的数据,从新遍历
p = p2;
idx = (i - len1); //len2
}
if (i === p.length - 1) { //p包含的点数据组成的最后一个坐标点
px = p[0].x - p[idx].x; //首尾的x轴相连
py = p[0].y - p[idx].y; //首尾的y轴相连
} else {
px = p[idx + 1].x - p[idx].x; //递增的x轴相连
py = p[idx + 1].y - p[idx].y; //递减的y轴相连
}
//得到边的法向量【垂直相交】,即投影轴
e.x = -py;
e.y = px;
//计算两个多边形在法向量上的投影
var pp1 = this.calcProj(e, p1); //涵盖到投影轴的最小值与最大值
var pp2 = this.calcProj(e, p2);
//计算两个线段在法向量上距离,如果大于0则可以退出,表示无相交
if (this.segDist(pp1[0], pp1[1], pp2[0], pp2[1]) > 0) {
return false;
}
}
return true;
}
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc