国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

手摸手帶你實(shí)現(xiàn) 小游戲<別踩白塊兒 -- 內(nèi)有游戲鏈接>

zhoutk / 2014人閱讀

摘要:別踩白塊兒使用白鷺引擎編寫(xiě)的游戲游戲地址準(zhǔn)備工作了解白鷺引擎并安裝編寫(xiě)工具安裝游戲引擎安裝創(chuàng)建項(xiàng)目創(chuàng)建項(xiàng)目可以選擇不同版本的引擎,創(chuàng)建成功之后還可以查看,對(duì)發(fā)布進(jìn)行設(shè)置。

別踩白塊兒 使用(白鷺引擎)Egret編寫(xiě)的游戲

游戲地址
準(zhǔn)備工作

了解白鷺引擎 并安裝編寫(xiě)工具

安裝游戲引擎

安裝Egret Wing3

創(chuàng)建項(xiàng)目

創(chuàng)建項(xiàng)目可以選擇不同版本的引擎,創(chuàng)建成功之后還可以查看API,對(duì)發(fā)布進(jìn)行設(shè)置。
目錄結(jié)構(gòu)如下


代碼主要存放在src文件下(白鷺引擎支持代碼為typescript)

代碼編寫(xiě)
先說(shuō)一下整體的思路: 就是將整個(gè)游戲細(xì)分一下,一個(gè)小格子為一個(gè)模塊,然后每一列為一個(gè)大的模塊,游戲整體作為一個(gè)大的模塊,定時(shí)器作為一個(gè)模塊,開(kāi)始游戲和結(jié)束游戲分別作為一個(gè)模塊。如圖:

廢話少說(shuō) 開(kāi)擼開(kāi)擼

egret提供server服務(wù)egret startserver -a -a 表示對(duì)文件進(jìn)行監(jiān)控自動(dòng)更新

BoxGraphics
  // 負(fù)責(zé)初始化小格子
  private init() {
      this.touchEnabled = true;
      this.width = GameData.getBoxWidth();
      this.height = GameData.getBoxHeight();
      this.addEventListener(egret.TouchEvent.TOUCH_BEGIN, this.click, this);
  }
  /**
   * drawBox
   * 繪制內(nèi)容
   */
  public drawBox(canTouch:boolean=false) {
      this._canTouch = canTouch;
      this.graphics.clear();
      if(canTouch) {
          this.graphics.beginFill(0);
      } else {
          this.graphics.beginFill(0xffffff);
      }
      this.graphics.lineStyle(1, 0);
      this.graphics.drawRect(0,0,GameData.getBoxWidth(),GameData.getBoxHeight());
      this.graphics.endFill();
  }
  /**
   * click
   * 當(dāng)前方塊被點(diǎn)擊后的響應(yīng)事件
   */
  private click(evt:egret.TouchEvent):void {
      this.graphics.clear();
      if(this._canTouch) {
          this.graphics.beginFill(0xcccccc);
      } else {
          this.graphics.beginFill(0xff0000);
      }
      this.graphics.lineStyle(1, 0);
      this.graphics.drawRect(0,0,GameData.getBoxWidth(),GameData.getBoxHeight());
      this.graphics.endFill();

      var event:GameEvent;

      //不能點(diǎn)擊,拋出錯(cuò)誤事件
      if(!this._canTouch) {
          event = new GameEvent(GameEvent.GAME_OVER);
      } else {
          event = new GameEvent(GameEvent.GAME_HIT);
      }
      this.dispatchEvent(event);
  }
GroupRect

一行格子

  private init():void {
      this._boxs = [];
      // 生成一行中的每一個(gè)格子 并給每個(gè)格子添加對(duì)應(yīng)事件
      for(var i:number=0;i
GameView

游戲主界面

  private init():void {
      this._boxGroups = [];
      var len:number = GameData.row+1;

      // 循環(huán)生成每一列格子
      for(var i:number=0;i

點(diǎn)擊游戲移動(dòng)函數(shù)

    public move() {
        var len:number = GameData.row+1;
        for(var i:number=0;i=GameData.getStageHeight()){
                // 如果格子沒(méi)有被點(diǎn)擊 游戲結(jié)束
                if(!this._boxGroups[i].isHit) {
                    this.gameOver();
                    return;
                }

                // 設(shè)置對(duì)應(yīng)格子的位置
                if(i==0) {
                    this._boxGroups[i].y = this._boxGroups[4].y - GameData.getBoxHeight();
                } else {
                    this._boxGroups[i].y = this._boxGroups[i-1].y - GameData.getBoxHeight();
                }
                this._boxGroups[i].create();
            }
        }
    }
Main

入口文件

    /**
     * 初始化游戲函數(shù)
     * 初始化gameview
     * 初始化定時(shí)器
     * 初始化開(kāi)始|結(jié)束 畫(huà)布
     * 添加事件監(jiān)聽(tīng)
     */
    private init():void {
        this.gameview = new GameView();
        this.addChild(this.gameview);
        this.gameview.addEventListener(GameEvent.GAME_OVER, this.gameover,this);
        this.timer = new egret.Timer(20,0);
        this.timer.addEventListener(egret.TimerEvent.TIMER, this.timers, this);

        this.gameoverPanel = new GameOverPanel();
        this.gameoverPanel.addEventListener(GameEvent.GAME_START,this.startgame,this);

        this.startgamePanel = new StartGamePanel();
        this.startgamePanel.addEventListener(GameEvent.GAME_START, this.startgame, this);
        this.addChild(this.startgamePanel);
    }

    //定義事件
    /**
     * 游戲結(jié)束
     */
    private gameover(evt:GameEvent):void {
        this.timer.stop();
        this.gameoverPanel.update();
        this.addChild(this.gameoverPanel);
    }

    /**
     * 開(kāi)始游戲
     * 重新設(shè)置游戲速度 分?jǐn)?shù)
     * 去除游戲開(kāi)始|結(jié)束畫(huà)布
     */
    private startgame(evt:GameEvent):void {
        GameData.speed = 10;
        GameData.setScore(0);
        this.gameview.startgame();
        if(this.startgamePanel.parent) {
            this.removeChild(this.startgamePanel);
        }
        if(this.gameoverPanel.parent) {
            this.removeChild(this.gameoverPanel);
        }
        this.timer.start();
    }
發(fā)布

egret publish

官方文檔

over

git地址

到這里,關(guān)于游戲的相關(guān)介紹就基本上已經(jīng)結(jié)束了,如果有錯(cuò)誤或者不嚴(yán)謹(jǐn)?shù)牡胤剑?qǐng)務(wù)必給予指正,十分感謝。如果喜歡或者有所啟發(fā),歡迎 star,對(duì)作者也是一種鼓勵(lì)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/53157.html

相關(guān)文章

  • 網(wǎng)頁(yè)版踩白游戲

    摘要:別踩白塊白塊黑塊游戲初始化根據(jù)前面的部分我們可以知道,每個(gè)就代表一個(gè)白塊,就代表一個(gè)黑塊,每點(diǎn)擊一個(gè)黑塊消失其實(shí)是刪除了一個(gè),然后從上面添加一個(gè)新的。所以我們首先要通過(guò)來(lái)控制的創(chuàng)造和生成記得刪除在編寫(xiě)靜態(tài)頁(yè)面時(shí)候指定生成的個(gè)。 自己最近一直想做個(gè)小項(xiàng)目,但是自己代碼水平太爛了,做不了大系統(tǒng),索性利用畢生所學(xué)寫(xiě)個(gè)小游戲,哈哈哈別踩白塊這個(gè)游戲相信很多人都在手機(jī)上玩過(guò),今天我們就來(lái)做一個(gè)網(wǎng)...

    fobnn 評(píng)論0 收藏0
  • 網(wǎng)頁(yè)版踩白游戲

    摘要:別踩白塊白塊黑塊游戲初始化根據(jù)前面的部分我們可以知道,每個(gè)就代表一個(gè)白塊,就代表一個(gè)黑塊,每點(diǎn)擊一個(gè)黑塊消失其實(shí)是刪除了一個(gè),然后從上面添加一個(gè)新的。所以我們首先要通過(guò)來(lái)控制的創(chuàng)造和生成記得刪除在編寫(xiě)靜態(tài)頁(yè)面時(shí)候指定生成的個(gè)。 自己最近一直想做個(gè)小項(xiàng)目,但是自己代碼水平太爛了,做不了大系統(tǒng),索性利用畢生所學(xué)寫(xiě)個(gè)小游戲,哈哈哈別踩白塊這個(gè)游戲相信很多人都在手機(jī)上玩過(guò),今天我們就來(lái)做一個(gè)網(wǎng)...

    0x584a 評(píng)論0 收藏0
  • 網(wǎng)頁(yè)版踩白游戲

    摘要:別踩白塊白塊黑塊游戲初始化根據(jù)前面的部分我們可以知道,每個(gè)就代表一個(gè)白塊,就代表一個(gè)黑塊,每點(diǎn)擊一個(gè)黑塊消失其實(shí)是刪除了一個(gè),然后從上面添加一個(gè)新的。所以我們首先要通過(guò)來(lái)控制的創(chuàng)造和生成記得刪除在編寫(xiě)靜態(tài)頁(yè)面時(shí)候指定生成的個(gè)。 自己最近一直想做個(gè)小項(xiàng)目,但是自己代碼水平太爛了,做不了大系統(tǒng),索性利用畢生所學(xué)寫(xiě)個(gè)小游戲,哈哈哈別踩白塊這個(gè)游戲相信很多人都在手機(jī)上玩過(guò),今天我們就來(lái)做一個(gè)網(wǎng)...

    focusj 評(píng)論0 收藏0
  • 摸手帶你封裝一個(gè)vue component

    摘要:靈活性和針對(duì)性。所以我覺(jué)得大部分組件還是自己封裝來(lái)的更為方便和靈活一些。動(dòng)手開(kāi)干接下來(lái)我們一起手摸手教改造包裝一個(gè)插件,只要幾分鐘就可以封裝一個(gè)專屬于你的。 項(xiàng)目地址:vue-countTo配套完整后臺(tái)demo地址:vue-element-admin系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶...

    pkhope 評(píng)論0 收藏0
  • 摸手帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)

    摘要:我們將登錄按鈕上綁上事件,點(diǎn)擊登錄之后向服務(wù)端提交賬號(hào)和密碼進(jìn)行驗(yàn)證。所以前端和后端權(quán)限的劃分是不太一致。側(cè)邊欄最后一個(gè)涉及到權(quán)限的地方就是側(cè)邊欄,不過(guò)在前 完整項(xiàng)目地址:vue-element-admin 系列文章: 手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇) 手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇) 手摸手,帶你用vue擼后臺(tái) 系列三 (實(shí)戰(zhàn)篇) 手摸手,帶你用vu...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<