games/EliminateStar/assets/Script/CardSprite.js

96 lines
3.4 KiB
JavaScript

var GameConfig = require("GameConfig");
var GameTools = require("GameTools");
var GameUiTools = require("GameUiTools");
var CardSprite = cc.Class({
extends: cc.Node,
properties: {
cardSprite: null,
number: 0,// 显示数字
isSelect: false,//记录是否选中
isFirstSelect: false,//记录是否为第一次选中
},
ctor: function () {
this.cardSprite = this.addComponent(cc.Sprite);
},
statics: {
createCardSprite: function (numbers, CardSpriteX, CardSpriteY) {
let cardSprite = new CardSprite();
// 自定义初始化
cardSprite.initCard(numbers, CardSpriteX, CardSpriteY);
return cardSprite;
}
},
initCard: function (numbers, CardSpriteX, CardSpriteY)// 初始化
{
// 初始化数字
this.number = numbers;
this.CardShow();
this.setPosition(CardSpriteX, CardSpriteY);
this.width = GameConfig.CARD_WIDTH;
this.height = GameConfig.CARD_WIDTH;
this.cardSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
},
CardShow: function () {
// 判断数字的大小来调整颜色
if (this.number == 1) {
GameUiTools.getSpriteFrame("pop_game/barrier", this.cardSprite);
} else if (this.number == -1) {
GameUiTools.getSpriteFrame("pop_game/popgame_61", this.cardSprite);
} else if (this.number == 0) {
// this.cardSprite.spriteFrame = GameUiTools.getSpriteFrame("pop_game/emptyl");
GameUiTools.getSpriteFrame("pop_game/emptyl", this.cardSprite );
} else if (this.number >= 2 && this.number <= 131072) {
// this.cardSprite.spriteFrame = GameUiTools.getSpriteFrame("pop_game/n" + this.number);
GameUiTools.getSpriteFrame("pop_game/n" + this.number, this.cardSprite);
}
},
setNumber: function (number) {
this.number = number;
},
getNumber: function () {
return this.number;
},
/*
*创建点击特效
*ClickType 0移除特效 1点击动画特效 2点击静态特效
*/
CardClickShow(ClickType) {
if (ClickType == 0) {
this.removeAllChildren();
this.isSelect = false;
this.isFirstSelect = false;
} else {
let move = cc.moveBy(0.05, cc.v2(0, 2));
this.runAction(cc.sequence(move, move.reverse()));
this.isSelect = true;
let effects = new cc.Node();
GameUiTools.getSpriteFrame("pop_game/popgame_61", effects.addComponent(cc.Sprite));
let w = effects.getContentSize().height;
let scale = this.getContentSize().height / w;
effects.setScale(scale);
this.addChild(effects);
if (ClickType == 1) {
this.isFirstSelect = true;
let move1 = cc.scaleBy(0.4, 1.15);
let actions = cc.sequence(move1, move1.reverse());
effects.runAction(actions.repeatForever());
} else if (ClickType == 2) {
effects.setScale(scale + 0.05);
}
}
},
getIsSelect() {
return this.isSelect;
},
getIsFirstSelect() {
return this.isFirstSelect;
},
isVisible() {
return this.opacity == 255;
},
setVisible(isTrue) {
this.opacity = isTrue ? 255 : 0;
}
});
module.exports = CardSprite;