...
This commit is contained in:
parent
8bcf8cf385
commit
5f06585aca
@ -41,6 +41,8 @@ export class RollingLottery extends Component {
|
|||||||
private _ItemSize: cc.Size;
|
private _ItemSize: cc.Size;
|
||||||
/** 运动状态 */
|
/** 运动状态 */
|
||||||
private _scrollB = false;
|
private _scrollB = false;
|
||||||
|
/** 自己矩形 */
|
||||||
|
private _selfRect = cc.rect();
|
||||||
/* --------------- 临时变量 --------------- */
|
/* --------------- 临时变量 --------------- */
|
||||||
private _tempM4 = cc.mat4();
|
private _tempM4 = cc.mat4();
|
||||||
private _temp2M4 = cc.mat4();
|
private _temp2M4 = cc.mat4();
|
||||||
@ -51,16 +53,40 @@ export class RollingLottery extends Component {
|
|||||||
this._initEvent();
|
this._initEvent();
|
||||||
}
|
}
|
||||||
/* ------------------------------- 功能 ------------------------------- */
|
/* ------------------------------- 功能 ------------------------------- */
|
||||||
/** 获取格子移动后距离 */
|
/**
|
||||||
|
* 获取格子移动后距离
|
||||||
|
* @param currIndexN_ 当前格子下标
|
||||||
|
* @param targetIndexN_ 目标格子下标
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
private _getItemMovePos(currIndexN_: number, targetIndexN_: number): void {
|
private _getItemMovePos(currIndexN_: number, targetIndexN_: number): void {
|
||||||
/** 格子距离 */
|
/** 当前节点 */
|
||||||
let boxDistN = this.dire === RollingLotteryDirection.HORIZONTAL ? this._ItemSize.width : this._ItemSize.height;
|
let currNode = this.node.getChildByName(currIndexN_ + '');
|
||||||
|
/** 节点矩形 */
|
||||||
|
let currRect = this._getBoundingBoxToWorld(currNode);
|
||||||
/** 移动距离 */
|
/** 移动距离 */
|
||||||
let moveDistN = (targetIndexN_ - currIndexN_) * boxDistN;
|
let moveDistV3 = cc.v3(this._ItemSize.x, this._ItemSize.y).multiplyScalar(targetIndexN_ - currIndexN_);
|
||||||
|
/** 移动距离 */
|
||||||
|
let moveDistN: number;
|
||||||
|
if (this.dire === RollingLotteryDirection.HORIZONTAL) {
|
||||||
|
moveDistV3.y = 0;
|
||||||
|
moveDistN = moveDistV3.x;
|
||||||
|
} else {
|
||||||
|
moveDistV3.x = 0;
|
||||||
|
moveDistN = moveDistV3.y;
|
||||||
|
}
|
||||||
|
currRect.x += moveDistV3.x;
|
||||||
|
currRect.y += moveDistV3.y;
|
||||||
|
|
||||||
|
/** 终点坐标 */
|
||||||
|
let endPosV3 = this.node
|
||||||
|
.getChildByName(currIndexN_ + '')
|
||||||
|
.worldPosition.clone()
|
||||||
|
.add(moveDistV3);
|
||||||
/** 圈数 */
|
/** 圈数 */
|
||||||
let circleN = Math.floor(moveDistN / this._perimeterN);
|
let circleN = Math.floor(moveDistN / this._perimeterN);
|
||||||
/** 额外移动距离 */
|
// /** 额外移动距离 */
|
||||||
let extraMoveDistN = moveDistN - circleN * this._perimeterN;
|
// let extraMoveDistN = moveDistN - circleN * this._perimeterN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 获取在世界坐标系下的节点包围盒(不包含自身激活的子节点范围) */
|
/** 获取在世界坐标系下的节点包围盒(不包含自身激活的子节点范围) */
|
||||||
@ -135,6 +161,9 @@ export class RollingLottery extends Component {
|
|||||||
this._currDistN = this.dire === RollingLotteryDirection.HORIZONTAL ? distV3.x : distV3.y;
|
this._currDistN = this.dire === RollingLotteryDirection.HORIZONTAL ? distV3.x : distV3.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 自己矩形
|
||||||
|
this._selfRect = this._getBoundingBoxToWorld(this.node);
|
||||||
|
|
||||||
this._updateData();
|
this._updateData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user