feat(skill): add force spawn position setting for skills
add forceStartX and forceStartY properties to control skill spawn position directly use world coordinates when the values are >=0, otherwise use original offset logic
This commit is contained in:
@@ -159,8 +159,17 @@ export class Skill extends ecs.Entity {
|
|||||||
SView.group = caster.box_group
|
SView.group = caster.box_group
|
||||||
|
|
||||||
this.add(SView);
|
this.add(SView);
|
||||||
startPos.x = startPos.x + SView.atk_x * face
|
// 强制出生点:-1=不强制使用 atk_x/atk_y 偏移,>=0=强制世界坐标
|
||||||
startPos.y = startPos.y + SView.atk_y
|
if (SView.forceStartX >= 0) {
|
||||||
|
startPos.x = SView.forceStartX;
|
||||||
|
} else {
|
||||||
|
startPos.x = startPos.x + SView.atk_x * face;
|
||||||
|
}
|
||||||
|
if (SView.forceStartY >= 0) {
|
||||||
|
startPos.y = SView.forceStartY;
|
||||||
|
} else {
|
||||||
|
startPos.y = startPos.y + SView.atk_y;
|
||||||
|
}
|
||||||
|
|
||||||
node.setPosition(startPos);
|
node.setPosition(startPos);
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,14 @@ export class SkillView extends CCComp {
|
|||||||
@property({ type: CCFloat, slide: true, range: [0, 2000, 10], tooltip: "直线飞行距离(仅 linear 生效)" })
|
@property({ type: CCFloat, slide: true, range: [0, 2000, 10], tooltip: "直线飞行距离(仅 linear 生效)" })
|
||||||
distance: number = 0;
|
distance: number = 0;
|
||||||
|
|
||||||
|
/** 强制出生点世界坐标X(-1=不强制,使用 atk_x 偏移;>=0 时强制使用该值,如 0=屏幕中心) */
|
||||||
|
@property({ type: CCFloat, tooltip: "强制出生点X:-1=不强制,>=0=强制世界坐标X" })
|
||||||
|
forceStartX: number = -1;
|
||||||
|
|
||||||
|
/** 强制出生点世界坐标Y(-1=不强制,使用 atk_y 偏移;>=0 时强制使用该值) */
|
||||||
|
@property({ type: CCFloat, tooltip: "强制出生点Y:-1=不强制,>=0=强制世界坐标Y" })
|
||||||
|
forceStartY: number = -1;
|
||||||
|
|
||||||
private debugMode: boolean = false;
|
private debugMode: boolean = false;
|
||||||
|
|
||||||
anim: Animation = null;
|
anim: Animation = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user