123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import { SpriteActionType } from "../object/FSprite";
- import BaseEvent from "./base/BaseEvent";
- const {ccclass, property} = cc._decorator;
- /**
- * 推石头
- *
- * tag == 1 左右推动
- * tag == 2 上下推动
- */
- @ccclass
- export default class FStoreTS extends BaseEvent {
- @property({
- displayName: '提示按钮图标',
- type: cc.SpriteFrame
- })
- mTipsIcon: cc.SpriteFrame = null;
- private mRigidBody:cc.RigidBody = null
- /**
- * 推动中
- */
- private isPull = false;
- /**
- * 当前移动方向
- */
- private moveVt = cc.v2()
- start(){
- this.mRigidBody = this.node.getComponent(cc.RigidBody);
- }
- onBegin(tag:number){
- this.startEvent()
- if(tag == 1){
- this.moveVt.y = 0
- let myX = this.ff.mainSprite.node.x
- if(myX < this.node.x){
- this.moveVt.x = 7
- }else{
- this.moveVt.x = -7
- }
- }else if(tag == 2){
- this.moveVt.x = 0
- let myY = this.ff.mainSprite.node.y
- if(myY < this.node.y){
- this.moveVt.y = 7
- }else{
- this.moveVt.y = -7
- }
- }
- }
- onEnd(tag:number){
- this.endEvent()
- }
- private startEvent(){
- let fControl = this.ff.control;
- fControl.mEventButton.node.on(cc.Node.EventType.TOUCH_START, this._touchRunningStartEvent, this);
- fControl.mEventButton.node.on(cc.Node.EventType.TOUCH_MOVE, this._touchRunningMoveEvent, this);
- fControl.mEventButton.node.on(cc.Node.EventType.TOUCH_END, this._touchRunningEndEvent, this);
- fControl.mEventButton.node.on(cc.Node.EventType.TOUCH_CANCEL, this._touchRunningEndEvent, this);
- this.showOpt(this.mTipsIcon, () => {
- })
- }
- private endEvent(){
- this.closeOpt()
-
- let fControl = this.ff.control;
- fControl.mEventButton.node.off(cc.Node.EventType.TOUCH_START);
- fControl.mEventButton.node.off(cc.Node.EventType.TOUCH_MOVE);
- fControl.mEventButton.node.off(cc.Node.EventType.TOUCH_END);
- fControl.mEventButton.node.off(cc.Node.EventType.TOUCH_CANCEL);
- this.isPull = false;
- }
- private _touchRunningMoveEvent(){
- cc.log('_touchRunningMoveEvent')
- }
- private _touchRunningStartEvent(){
- cc.log('_touchRunningStartEvent')
- this.isPull = true;
- cc.tween(this).sequence(
- cc.delayTime(0.01),
- cc.callFunc(()=>{
- this.mRigidBody.type = cc.RigidBodyType.Dynamic
- })
- ).start()
-
- let mainSprite = this.ff.mainSprite
- // mainSprite.spine.setAnimation(0, SpriteActionType.run, true);
- }
- private _touchRunningEndEvent(){
- cc.log('_touchRunningEndEvent')
- this.isPull = false;
- cc.tween(this).sequence(
- cc.delayTime(0.01),
- cc.callFunc(()=>{
- this.mRigidBody.type = cc.RigidBodyType.Static
- })
- ).start()
- // let mainSprite = this.ff.mainSprite
- // mainSprite.spine.setAnimation(0, SpriteActionType.stand, true);
- }
- public update(dt){
- if(this.isPull){
- let mainSprite = this.ff.mainSprite
- mainSprite.node.x += this.moveVt.x
- mainSprite.node.y += this.moveVt.y
- }
- }
- }
|