123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- import FF from "../../FF";
- import FSprite from "../../object/FSprite";
- /**
- * 滚动的石头
- */
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class FStoenRoll extends cc.Component {
- @property({
- displayName: '数值(怪物id)'
- })
- public monsterId = 1001;
- @property({
- displayName: '起点到终点时间(秒)'
- })
- public time = 2;
- @property({
- displayName: '每次滚动停留时间(秒)'
- })
- public interval = 2;
- @property({
- type: cc.Node,
- displayName: '滚动目的地'
- })
- public target: cc.Node = null;
- @property({
- type: sp.Skeleton,
- displayName: '滚动动画'
- })
- public spine: sp.Skeleton = null;
- @property({
- displayName: "警告",
- type: cc.Node
- })
- warnNode: cc.Node = null;
- private initPos: cc.Vec2;
- private targetPos: cc.Vec2;
- private ff: FF;
- private isRoll = false;
- onLoad() {
- this.initPos = this.node.getPosition();
- this.targetPos = this.target.getPosition();
- cc.tween(this.node).sequence(
- cc.delayTime(this.interval),
- cc.callFunc(() => {
- this.node.getComponent(cc.RigidBody).enabledContactListener = true;
- this.node.getComponent(cc.RigidBody).allowSleep = false;
- this.node.opacity = 255;
- this.node.setPosition(this.initPos);
- this.isRoll = true;
- this.warnAction();
- }),
- cc.moveBy(this.time, this.targetPos),
- cc.callFunc(() => {
- this.node.getComponent(cc.RigidBody).allowSleep = true;
- this.isRoll = false;
- if(this.warnNode){
- this.warnNode.stopAllActions();
- this.warnNode.opacity = 0;
- }
- }),
- cc.fadeOut(0.5),
- cc.callFunc(() => {
- this.node.getComponent(cc.RigidBody).enabledContactListener = false;
- }),
- ).repeatForever().start();
- }
- onBeginContact(contact: cc.PhysicsContact, self: cc.PhysicsCollider, other: cc.PhysicsCollider) {
- // if(!this.isRoll){
- // return;
- // }
- if (other.node.group == 'A'&& other.tag == 1) {
- let obj = other.node.getComponent(FSprite);
- if (obj.hp > 0) {
- this.ff = obj.ff;
- let main = this.ff.main;
- let attrData = main.sManage.getMonsterData(this.monsterId);
- // this.sprite.atkjs(target);
- obj.bAtkjs(attrData);
- }
- }
- }
- warnAction() {
- if(this.warnNode){
- this.warnNode.opacity = 0;
- cc.tween(this.warnNode).sequence(
- cc.fadeTo(0.2, 120),
- cc.fadeTo(0.2, 0),
- ).repeatForever().start();
- }
-
- }
- }
|