@eva/plugin-renderer-event 2.0.1-beta.39 → 2.0.1-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer-event",
|
|
3
|
-
"version": "2.0.1-beta.
|
|
3
|
+
"version": "2.0.1-beta.40",
|
|
4
4
|
"description": "@eva/plugin-renderer-event",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-event.esm.js",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eva/plugin-renderer": "2.0.1-beta.
|
|
22
|
-
"@eva/eva.js": "2.0.1-beta.
|
|
21
|
+
"@eva/plugin-renderer": "2.0.1-beta.40",
|
|
22
|
+
"@eva/eva.js": "2.0.1-beta.40",
|
|
23
23
|
"pixi.js": "^8.17.0"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)({}).hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{},globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||{};var _EVA_IIFE_event=function(e,t,o,a){"use strict";const n={Circle:a.Circle,Ellipse:a.Ellipse,Polygon:a.Polygon,Rect:a.Rectangle,RoundedRect:a.RoundedRectangle},r={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]};let i=class extends t.Renderer{constructor(){super(...arguments),this.name="Event"}init(){this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this)}componentChanged(e){switch(e.type){case o.OBSERVER_TYPE.ADD:this.add(e);break;case o.OBSERVER_TYPE.REMOVE:this.remove(e);break;case o.OBSERVER_TYPE.CHANGE:this.change(e)}}add(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!0,t.interactiveChildren=!0;const o=e.component;o.hitArea&&this.addHitArea(e,t,o.hitArea),t.on("pointertap",(e=>{o.emit("tap",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerdown",(e=>{o.emit("touchstart",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointermove",(e=>{o.emit("touchmove",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerup",(e=>{o.emit("touchend",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerupoutside",(e=>{o.emit("touchendoutside",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointercancel",(e=>{o.emit("touchcancel",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})}))}remove(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!1,t.off("tap"),t.off("pointerdown"),t.off("pointermove"),t.off("pointerup"),t.off("pointerupoutside"),t.off("pointercancel"),e.component.removeAllListeners()}change(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!0;const o=e.component;o.hitArea?this.addHitArea(e,t,o.hitArea):o.hitArea=null}addHitArea(e,t,o){const{type:a,style:i}=o;if(!n[a])return void console.error(`${e.gameObject.name}'s hitArea type is not defined`);const l=[];for(const e of r[a])l.push(i[e]);const s=new n[a](...l);t.hitArea=s}};i.systemName="Event",i=function(e,t,o,a){var n,r=arguments.length,i=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,o):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,a);else for(var l=e.length-1;l>=0;l--)(n=e[l])&&(i=(r<3?n(i):r>3?n(t,o,i):n(t,o))||i);return r>3&&i&&Object.defineProperty(t,o,i),i}([o.decorators.componentObserver({Event:[{prop:["hitArea"],deep:!0}]})],i);var l,s=i;e.HIT_AREA_TYPE=void 0,(l=e.HIT_AREA_TYPE||(e.HIT_AREA_TYPE={})).Circle="Circle",l.Ellipse="Ellipse",l.Polygon="Polygon",l.Rect="Rect",l.RoundedRect="RoundedRect";class d extends o.Component{constructor(){super(...arguments),this.hitArea=void 0}init(e){e&&_extends(this,e)}emit(e,...t){return super.emit(e,...t)}once(e,t,o){return super.once(e,t,o)}on(e,t,o){return super.on(e,t,o)}}return d.componentName="Event",e.Event=d,e.EventSystem=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA.plugin.renderer,EVA,PIXI);globalThis.EVA.plugin.renderer.event=globalThis.EVA.plugin.renderer.event||_EVA_IIFE_event;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/plugin-renderer"),t=require("@eva/eva.js"),o=require("pixi.js");const a={Circle:o.Circle,Ellipse:o.Ellipse,Polygon:o.Polygon,Rect:o.Rectangle,RoundedRect:o.RoundedRectangle},n={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]};let r=class extends e.Renderer{constructor(){super(...arguments),this.name="Event"}init(){this.renderSystem=this.game.getSystem(e.RendererSystem),this.renderSystem.rendererManager.register(this)}componentChanged(e){switch(e.type){case t.OBSERVER_TYPE.ADD:this.add(e);break;case t.OBSERVER_TYPE.REMOVE:this.remove(e);break;case t.OBSERVER_TYPE.CHANGE:this.change(e)}}add(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!0,t.interactiveChildren=!0;const o=e.component;o.hitArea&&this.addHitArea(e,t,o.hitArea),t.on("pointertap",(e=>{o.emit("tap",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerdown",(e=>{o.emit("touchstart",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointermove",(e=>{o.emit("touchmove",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerup",(e=>{o.emit("touchend",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointerupoutside",(e=>{o.emit("touchendoutside",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})})),t.on("pointercancel",(e=>{o.emit("touchcancel",{stopPropagation:()=>e.stopPropagation(),data:{pointerId:e.data.pointerId,position:{x:e.data.global.x,y:e.data.global.y},localPosition:t.worldTransform.applyInverse(e.data.global)},gameObject:o.gameObject})}))}remove(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!1,t.off("tap"),t.off("pointerdown"),t.off("pointermove"),t.off("pointerup"),t.off("pointerupoutside"),t.off("pointercancel"),e.component.removeAllListeners()}change(e){const t=this.containerManager.getContainer(e.gameObject.id);t.interactive=!0;const o=e.component;o.hitArea?this.addHitArea(e,t,o.hitArea):o.hitArea=null}addHitArea(e,t,o){const{type:r,style:i}=o;if(!a[r])return void console.error(`${e.gameObject.name}'s hitArea type is not defined`);const s=[];for(const e of n[r])s.push(i[e]);const p=new a[r](...s);t.hitArea=p}};r.systemName="Event",r=
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
5
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
6
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
|
|
8
|
-
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
9
|
-
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
10
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
11
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
12
|
-
|
|
13
|
-
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
|
-
and limitations under the License.
|
|
15
|
-
***************************************************************************** */
|
|
16
|
-
function(e,t,o,a){var n,r=arguments.length,i=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,o):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,a);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(r<3?n(i):r>3?n(t,o,i):n(t,o))||i);return r>3&&i&&Object.defineProperty(t,o,i),i}([t.decorators.componentObserver({Event:[{prop:["hitArea"],deep:!0}]})],r);var i,s=r;exports.HIT_AREA_TYPE=void 0,(i=exports.HIT_AREA_TYPE||(exports.HIT_AREA_TYPE={})).Circle="Circle",i.Ellipse="Ellipse",i.Polygon="Polygon",i.Rect="Rect",i.RoundedRect="RoundedRect";class p extends t.Component{constructor(){super(...arguments),this.hitArea=void 0}init(e){e&&Object.assign(this,e)}emit(e,...t){return super.emit(e,...t)}once(e,t,o){return super.once(e,t,o)}on(e,t,o){return super.on(e,t,o)}}p.componentName="Event",exports.Event=p,exports.EventSystem=s;
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { Component } from '@eva/eva.js';
|
|
2
|
-
import { ComponentChanged } from '@eva/eva.js';
|
|
3
|
-
import { ContainerManager } from '@eva/plugin-renderer';
|
|
4
|
-
import type { GameObject } from '@eva/eva.js';
|
|
5
|
-
import { Renderer } from '@eva/plugin-renderer';
|
|
6
|
-
import { RendererManager } from '@eva/plugin-renderer';
|
|
7
|
-
import { RendererSystem } from '@eva/plugin-renderer';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* 事件组件
|
|
11
|
-
*
|
|
12
|
-
* Event 组件为游戏对象添加交互能力,使其能够响应触摸和鼠标事件。
|
|
13
|
-
* 可以自定义交互热区的形状(矩形、圆形、多边形等),
|
|
14
|
-
* 适用于按钮、拖拽对象、可点击元素等交互场景。
|
|
15
|
-
*
|
|
16
|
-
* 支持的事件类型:
|
|
17
|
-
* - touchstart - 触摸/点击开始
|
|
18
|
-
* - touchmove - 触摸/鼠标移动
|
|
19
|
-
* - touchend - 触摸/点击结束
|
|
20
|
-
* - tap - 点击/轻触
|
|
21
|
-
* - touchendoutside - 在对象外部结束触摸
|
|
22
|
-
* - touchcancel - 触摸取消
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* // 基础用法 - 使用默认热区(Transform 尺寸)
|
|
27
|
-
* const button = new GameObject('button');
|
|
28
|
-
* const event = new Event();
|
|
29
|
-
* button.addComponent(event);
|
|
30
|
-
*
|
|
31
|
-
* event.on('tap', (e) => {
|
|
32
|
-
* console.log('按钮被点击', e.data.position);
|
|
33
|
-
* });
|
|
34
|
-
*
|
|
35
|
-
* // 自定义矩形热区
|
|
36
|
-
* button.addComponent(new Event({
|
|
37
|
-
* hitArea: {
|
|
38
|
-
* type: HIT_AREA_TYPE.Rect,
|
|
39
|
-
* style: { x: 0, y: 0, width: 100, height: 50 }
|
|
40
|
-
* }
|
|
41
|
-
* }));
|
|
42
|
-
*
|
|
43
|
-
* // 圆形热区
|
|
44
|
-
* button.addComponent(new Event({
|
|
45
|
-
* hitArea: {
|
|
46
|
-
* type: HIT_AREA_TYPE.Circle,
|
|
47
|
-
* style: { x: 50, y: 50, radius: 40 }
|
|
48
|
-
* }
|
|
49
|
-
* }));
|
|
50
|
-
*
|
|
51
|
-
* // 多边形热区
|
|
52
|
-
* button.addComponent(new Event({
|
|
53
|
-
* hitArea: {
|
|
54
|
-
* type: HIT_AREA_TYPE.Polygon,
|
|
55
|
-
* style: { paths: [0,0, 100,0, 50,100] }
|
|
56
|
-
* }
|
|
57
|
-
* }));
|
|
58
|
-
*
|
|
59
|
-
* // 事件处理
|
|
60
|
-
* event.on('touchstart', (e) => {
|
|
61
|
-
* console.log('触摸开始', e.data.localPosition);
|
|
62
|
-
* e.stopPropagation(); // 阻止事件冒泡
|
|
63
|
-
* });
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
66
|
-
declare class Event_2 extends Component<EventParams> {
|
|
67
|
-
/** 组件名称 */
|
|
68
|
-
static componentName: string;
|
|
69
|
-
/** 交互热区配置 */
|
|
70
|
-
hitArea: HitArea;
|
|
71
|
-
/**
|
|
72
|
-
* 初始化组件
|
|
73
|
-
* @param params - 初始化参数
|
|
74
|
-
* @param params.hitArea - 交互热区配置
|
|
75
|
-
*/
|
|
76
|
-
init(params?: EventParams): void;
|
|
77
|
-
emit(eventName: TouchEventName, ...args: [EventParam]): boolean;
|
|
78
|
-
emit<T extends string>(eventName: Exclude<T, TouchEventName>, ...args: any[]): boolean;
|
|
79
|
-
once(eventName: TouchEventName, fn: (arg: EventParam) => void, context?: any): this;
|
|
80
|
-
once<T extends string>(eventName: Exclude<T, TouchEventName>, fn: (...args: any[]) => void, context?: any): this;
|
|
81
|
-
on(eventName: TouchEventName, fn: (arg: EventParam) => void, context?: any): this;
|
|
82
|
-
on<T extends string>(eventName: Exclude<T, TouchEventName>, fn: (...args: any[]) => void, context?: any): this;
|
|
83
|
-
}
|
|
84
|
-
export { Event_2 as Event }
|
|
85
|
-
|
|
86
|
-
declare type EventParam = {
|
|
87
|
-
stopPropagation: () => void;
|
|
88
|
-
data: {
|
|
89
|
-
pointerId: number;
|
|
90
|
-
position: {
|
|
91
|
-
x: number;
|
|
92
|
-
y: number;
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* The position related to event target gameobject
|
|
96
|
-
*/
|
|
97
|
-
localPosition: {
|
|
98
|
-
x: number;
|
|
99
|
-
y: number;
|
|
100
|
-
};
|
|
101
|
-
};
|
|
102
|
-
gameObject: GameObject;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
export declare interface EventParams {
|
|
106
|
-
hitArea: HitArea;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export declare class EventSystem extends Renderer<EventSystemParams> {
|
|
110
|
-
static systemName: string;
|
|
111
|
-
name: string;
|
|
112
|
-
renderSystem: RendererSystem;
|
|
113
|
-
rendererManager: RendererManager;
|
|
114
|
-
containerManager: ContainerManager;
|
|
115
|
-
init(): void;
|
|
116
|
-
componentChanged(changed: ComponentChanged): void;
|
|
117
|
-
add(changed: ComponentChanged): void;
|
|
118
|
-
remove(changed: ComponentChanged): void;
|
|
119
|
-
change(changed: ComponentChanged): void;
|
|
120
|
-
addHitArea(changed: ComponentChanged, container: any, hitArea: any): void;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export declare interface EventSystemParams {
|
|
124
|
-
moveWhenInside?: boolean;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export declare enum HIT_AREA_TYPE {
|
|
128
|
-
Circle = "Circle",
|
|
129
|
-
Ellipse = "Ellipse",
|
|
130
|
-
Polygon = "Polygon",
|
|
131
|
-
Rect = "Rect",
|
|
132
|
-
RoundedRect = "RoundedRect"
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
declare interface HitArea {
|
|
136
|
-
type: HIT_AREA_TYPE;
|
|
137
|
-
style?: {
|
|
138
|
-
x?: number;
|
|
139
|
-
y?: number;
|
|
140
|
-
radius?: number;
|
|
141
|
-
width?: number;
|
|
142
|
-
height?: number;
|
|
143
|
-
paths?: number[];
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
declare type TouchEventName = 'touchstart' | 'touchmove' | 'touchend' | 'tap' | 'touchendoutside' | 'touchcancel';
|
|
148
|
-
|
|
149
|
-
export { }
|