123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import { SpriteFrameManager } from "./SpriteFrameManager";
- /**
- * 快速创建对象
- */
- export class SpriteFactory {
- /**
- * 创建节点对象
- * @param name
- */
- public static createNode(name?: string): cc.Node {
- let node = new cc.Node(name);
- return node;
- }
- /**
- * 创建空的sprite对象
- * @param name
- */
- public static createSprite(name?: string): cc.Sprite {
- let node = this.createNode(name);
- let sprite = node.addComponent(cc.Sprite);
- return sprite;
- }
- /**
- * 创建带图片的sprite对象
- * @param fileName
- * @param frameName
- */
- public static createSpriteWithFrame(fileName: string, frameName: string): cc.Sprite {
- let sprite = SpriteFactory.createSprite();
- sprite.node.name = frameName;
- sprite.spriteFrame = SpriteFrameManager.getInstance().getSpriteFrame(fileName, frameName);
- return sprite;
- }
- /**
- * 创建动画
- * @param node
- * @param clip
- * @param wrapMode
- */
- public static createAnimationWithNode(node: cc.Node, clip: cc.AnimationClip, wrapMode: cc.WrapMode = cc.WrapMode.Normal): cc.Animation {
- let animation = node.addComponent(cc.Animation);
- clip.wrapMode = wrapMode;
- animation.addClip(clip);
- return animation;
- }
- /**
- * 创建button
- * @param fileName
- * @param frameName
- * @param clickFrameName
- */
- public static createButton(fileName: string, frameName: string, clickFrameName: string): cc.Button {
- let sprite = SpriteFactory.createSprite();
- sprite.spriteFrame = SpriteFrameManager.getInstance().getSpriteFrame(fileName, frameName);
- let spriteButton = sprite.addComponent(cc.Button);
- spriteButton.target = spriteButton.node;
- spriteButton.transition = cc.Button.Transition.SPRITE;
- spriteButton.normalSprite = SpriteFrameManager.getInstance().getSpriteFrame(fileName, frameName);
- spriteButton.pressedSprite = SpriteFrameManager.getInstance().getSpriteFrame(fileName, clickFrameName);
- spriteButton.hoverSprite = SpriteFrameManager.getInstance().getSpriteFrame(fileName, clickFrameName);
- spriteButton.disabledSprite = SpriteFrameManager.getInstance().getSpriteFrame(fileName, clickFrameName);
- return spriteButton;
- }
- /**
- * label 文字
- * @param labelPrefab
- * @param content
- */
- public static createLabel(labelPrefab: cc.Prefab, content?: string): cc.Label {
- let node = cc.instantiate(labelPrefab);
- let label = node.getComponent(cc.Label);
- if (content) {
- label.string = content;
- }
- return label;
- }
- /**
- * 粒子特效
- * @param particlePrefab
- */
- public static createParticle(particlePrefab: cc.Prefab): cc.ParticleSystem {
- let node = cc.instantiate(particlePrefab);
- let particle = node.getComponent(cc.ParticleSystem);
- return particle;
- }
- /**
- * 进度条
- * @param prefab
- */
- public static createProgressBar(prefab: cc.Prefab): cc.ProgressBar {
- let node = cc.instantiate(prefab);
- let bar = node.getComponent(cc.ProgressBar);
- return bar;
- }
- }
|