Cocos Creator之角色組合按鍵技能

想必大家都玩過街機游戲,例如紅白機的街霸反镇,拳皇阁吝,里面角色的技能是通過組合按鍵觸發(fā)的织狐,廢話不多說骂倘,上測試圖。
rpg.gif

代碼

const {ccclass, property} = cc._decorator;

@ccclass
export default class player extends cc.Component {

    //自定義方向鍵和攻擊鍵
    public KEY_UP:number = 0;
    public KEY_DOWN:number = 1;
    public KEY_LEFT:number = 2;
    public KEY_RIGHT:number = 3;
    public KEY_ATTACK:number = 4;

    //技能列表中技能的數(shù)量
    public SKILLLIST_SIZE:number = 1;
    //每組組合技能的按鍵數(shù)量
    public SKILL_KEYCOUNT = 3;
    //技能列表->二維數(shù)組
    private SkillList:Array<any> = [[this.KEY_DOWN,this.KEY_UP,this.KEY_ATTACK]];
    //記錄當前按下的按鍵的值
    private currentKeyCode:number = 0;
    //玩家輸入的按鍵組合
    private inputKeys:Array<any> = [];
    //是否開始計時
    private startFrame:boolean = false;
    //限制輸入組合按鍵的時間(計時器)
    private timer:number = 5;
    //記錄開啟監(jiān)聽到現(xiàn)在的時間 
    private time:number = 0;
    //是否觸發(fā)技能成功
    private isSuccess:boolean = false;


    onLoad () {
        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,this.OnKeyDown,this);
    }

    start () {

    }

    update (dt) {
        
        if (this.startFrame) {
            //計時器++
            this.time += dt;
            if (this.time >= this.timer) {
            
                //計時器超時
                if (!this.isSuccess) {
                    this.Reset();
                }
            }
        }
    }

    //按下按鍵
    OnKeyDown(event){
        console.log("按下的按鍵的keycode",event.keyCode);

        switch (event.keyCode) {
            case cc.macro.KEY.w:
                this.currentKeyCode = this.KEY_UP;
                break;
            case cc.macro.KEY.s:
                this.currentKeyCode = this.KEY_DOWN;
                break;
            case cc.macro.KEY.a:
                this.currentKeyCode = this.KEY_LEFT;
                break;
            case cc.macro.KEY.d:
                this.currentKeyCode = this.KEY_RIGHT;
                break;
            case cc.macro.KEY.j:
                this.currentKeyCode = this.KEY_ATTACK;
                break;
        }

        if (this.isSuccess) {
            console.log("Reset");
            this.isSuccess = false;
            this.Reset();
        }


        if (!this.startFrame) {
            //啟動計時器
            this.startFrame = true;
        }

        //將按鍵值添加到輸入按鍵列表
        this.inputKeys.push(this.currentKeyCode);
        

        //遍歷
        let size = this.inputKeys.length;
        if (size<this.SKILL_KEYCOUNT) {   //按鍵數(shù)不夠
            
            
        }else{  //如果玩家按鍵數(shù)不小于設(shè)定鍵,取后5位
            console.log("未移除前的元素",this.inputKeys);
            for (let k = 0; k < size - this.SKILL_KEYCOUNT; k++) {
                this.inputKeys.splice(0,1);
            }
            console.log("移除后的元素",this.inputKeys);
            for (let i = 0; i < this.SKILLLIST_SIZE; i++) {
                let successCount = 0;
                for (let j = 0; j < this.SKILL_KEYCOUNT; j++) {
                    let temp = this.inputKeys[j];
                    if (temp == this.SkillList[i][j]) {
                        successCount ++;
                    }

                    if (successCount == this.SKILL_KEYCOUNT) {
                        console.log("isSuccess");
                        this.isSuccess = true;
                        //播放組合技能動畫

                        break;
                    }
                }
            }
        }
        
    }

    //重置
    Reset(){
        this.time = 0;
        this.startFrame = false;
        this.inputKeys = [];
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市湿故,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膜蛔,老刑警劉巖坛猪,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異皂股,居然都是意外死亡墅茉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門呜呐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來就斤,“玉大人,你說我怎么就攤上這事蘑辑⊙蠡” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵洋魂,是天一觀的道長绷旗。 經(jīng)常有香客問我,道長副砍,這世上最難降的妖魔是什么刁标? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮址晕,結(jié)果婚禮上膀懈,老公的妹妹穿的比我還像新娘。我一直安慰自己谨垃,他們只是感情好启搂,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刘陶,像睡著了一般胳赌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匙隔,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天疑苫,我揣著相機與錄音,去河邊找鬼。 笑死捍掺,一個胖子當著我的面吹牛撼短,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挺勿,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼曲横,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了不瓶?” 一聲冷哼從身側(cè)響起禾嫉,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚊丐,沒想到半個月后熙参,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡麦备,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年孽椰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泥兰。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡弄屡,死狀恐怖题禀,靈堂內(nèi)的尸體忽然破棺而出鞋诗,到底是詐尸還是另有隱情,我是刑警寧澤迈嘹,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布削彬,位于F島的核電站,受9級特大地震影響秀仲,放射性物質(zhì)發(fā)生泄漏融痛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一神僵、第九天 我趴在偏房一處隱蔽的房頂上張望雁刷。 院中可真熱鬧,春花似錦保礼、人聲如沸沛励。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽目派。三九已至,卻和暖如春胁赢,著一層夾襖步出監(jiān)牢的瞬間企蹭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谅摄,地道東北人徒河。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像螟凭,于是被迫代替她去往敵國和親虚青。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容