Egret白鹭引擎实例开发之棍子英雄StickHero(五)棍子和游戏管理类

一、棍子

game目录下新建Stick.ts,玩家按住屏幕,棍子会持续变长直到松开,长度通过改变Y轴倍数scaleY来实现。这里用到了时间计时器Timer实现类似功能

/**
 * 棍子类
 */
class Stick extends egret.Sprite{
    private growRate:number = 6;
    public stickSprite:egret.Bitmap;
    private stageW:number;
    private stageH:number;
    public timer:egret.Timer;
    constructor(){
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE,this.initView,this);
    }
    private initView(){
        this.stageW = this.stage.stageWidth;
        this.stageH = this.stage.stageHeight;
        var stickSprite = new egret.Bitmap();
        stickSprite.texture = RES.getRes('stick1_png');
        this.addChild(stickSprite);
        stickSprite.scaleX = 2;
        this.stickSprite = stickSprite;
        this.anchorOffsetX = stickSprite.width;
        this.anchorOffsetY = stickSprite.height;
        var timer = new egret.Timer(1000/60, 0);
        timer.addEventListener(egret.TimerEvent.TIMER, this.growHeight, this);
        this.timer = timer;
    }
    //
    public growHeight():void{
        //如果长度超过屏幕高度一半,则不再变长
        if(this.stickSprite.height*this.scaleY > this.stageH/2){
            return;
        }
        this.scaleY += this.growRate;
    }
}

二、游戏管理类

game目录下新建GameManager.ts,游戏管理类管理选择的英雄索引和当前分数

/**
 * 游戏管理类
 */
class GameManager{
    private static _heroIndex:number = 1;
    private static _curScore:number = 0;
    public static setHeroIndex(val:number){
        this._heroIndex = val;
    }
    public static getHeroIndex():number{
        return this._heroIndex;
    }
    public static setCurScore(val:number){
        this._curScore = val;
    }
    public static getCurScore():number{
        return this._curScore;
    }
}


发表评论

(必填)

(必填)

(以便回访)

博客已稳定运行: 访问量:115,549 views 网站备案号:闽ICP备17026396号-1