咸鱼的反击
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
xianyudefanji/assets/Scripts/RoomCommon/GoodMoveTouchScript.ts

84 lines
2.2 KiB

import { ryw_Event } from "../../FrameWork/Event/EventEnum";
import EventMgr from "../../FrameWork/Event/EventMgr";
import Common5 from "../../Platform/th/Common5";
const { ccclass, property } = cc._decorator;
@ccclass
export default class GoodMoveTouchScript extends cc.Component {
@property(cc.Node)
checkNode: cc.Node = null;
@property({
displayName: '是否隐藏物品'
})
isHideNode: boolean = false
copyNode:cc.Node = null
onLoad() {
this.initTouchEvent(this.node, this.checkNode)
}
initTouchEvent(node, checkNode) {
var attrs = {
checkNode: checkNode,
recoveposi: node.getPosition()//初始位置
};
node.attr(attrs);
this.openTouchEvent(node)
}
openTouchEvent(node) {
node.on(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this)
node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
node.on(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
}
closeTouchEvent(node: cc.Node) {
node.off(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
node.off(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this)
node.off(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
node.off(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
}
touchStartNode(event) {
let target = event.target
this.copyNode = cc.instantiate(target)
this.copyNode.parent = target.parent
// Common5.playEffect('点击音效')
}
touchMoveNode(event) {
let posi = event.getLocation()//世界坐标
let target = event.target
posi = target.parent.convertToNodeSpaceAR(posi)
this.copyNode.setPosition(posi)
}
touchEndNode(event) {
let target = event.target
if (Common5.checkIntersectsBox(this.copyNode, target.checkNode)) {
if(this.isHideNode){
this.node.active = false
}
EventMgr.emitEvent_custom(ryw_Event.goodTouchMoveCheck, this.node)
}
this.copyNode.removeFromParent()
}
// update (dt) {}
}