iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
1
Modern Web

三十天路邊賭場上線了!系列 第 27

DAY27 清除桌上籌碼

  • 分享至 

  • xImage
  •  

前言

今天來清除籌碼!為什麼這麼無趣呢!因為我的部署出了問題呵呵。

清除籌碼

清除籌碼時機就是在我們公布牌局結果之後,伺服器不主動派通知,直接由遊戲端記秒清除。

這就是派牌之後的流程,包含前一次的公布結果,關鍵是this._chipsLayer.clearLayer()

  public async piResult(data: any) {
    let pokerPlayer = data.poker_result.player.slice()
    let pokerBanker = data.poker_result.banker.slice()
    let calcResult = data.calc_result
    while (pokerPlayer.length || pokerBanker.length) {
      if (pokerPlayer.length) {
        let _player = pokerPlayer.splice(0, 1)[0]
        this._pokersPlayer.sendPoker(_player.type, _player.symbol)
        await delay(1200)
      }
      if (pokerBanker.length) {
        let _banker = pokerBanker.splice(0, 1)[0]
        this._pokersBanker.sendPoker(_banker.type, _banker.symbol)
        await delay(1200)
      }
    }

    await delay(1500)

    this._pokersBanker.displayPokerPoint()
    this._pokersPlayer.displayPokerPoint()

    if (calcResult.bpair) { this._pokersBanker.displayResult('pair'); this._table.setDeskhover('bpair', true) }
    if (calcResult.ppair) { this._pokersPlayer.displayResult('pair'); this._table.setDeskhover('ppair', true) }

    if (calcResult.bankerking) { this._pokersBanker.displayResult('king'); this._table.setDeskhover('bankerking', true) }
    if (calcResult.playerking) { this._pokersPlayer.displayResult('king'); this._table.setDeskhover('playerking', true) }

    if (calcResult.tie) { this._pokersPlayer.displayResult('tie'); this._pokersBanker.displayResult('tie'); this._table.setDeskhover('tie', true) }
    if (calcResult.tiepair) { this._pokersPlayer.displayResult('tiepair'); this._pokersBanker.displayResult('tiepair'); this._table.setDeskhover('tiepair', true) }

    if (calcResult.banker) { this._pokersBanker.displayWin(); this._table.setDeskhover('banker', true) }
    if (calcResult.player) { this._pokersPlayer.displayWin(); this._table.setDeskhover('player', true) }

    await delay(10000)

    this._table.resetHover()
    this._pokersPlayer.reset()
    this._pokersBanker.reset()
    this._chipsLayer.clearLayer()
  }

clearLayer

這清除我們籌碼的圖層,搭配淡出的動畫。

  public clearLayer() {
    this._layer.removeChildren()
    this.clearAreaChip(this._playerpair)
    this.clearAreaChip(this._playerking)
    this.clearAreaChip(this._tiepair)
    this.clearAreaChip(this._tie)
    this.clearAreaChip(this._bankerking)
    this.clearAreaChip(this._banker)
    this.clearAreaChip(this._bankerpair)
    this.clearAreaChip(this._player)

    setTimeout(() => {
      this._playerpair = { strangers: [], users: [] }
      this._playerking = { strangers: [], users: [] }
      this._tiepair = { strangers: [], users: [] }
      this._tie = { strangers: [], users: [] }
      this._bankerking = { strangers: [], users: [] }
      this._banker = { strangers: [], users: [] }
      this._bankerpair = { strangers: [], users: [] }
      this._player = { strangers: [], users: [] }
    }, 1000)
  }

  public clearAreaChip(Area: { strangers: Array<Chip>, users: Array<Chip> }) {
    Area.users.map(e => e.setAlpha(true, 0))
    Area.strangers.map(e => e.setAlpha(true, 0))
  }

後記

今天本來是已經佈署上去了,但問題是發生在lowDB有異常操作我沒預料到的,有點像是沒有close導致失敗時會刪掉檔案,但我沒有注意到,因此後端得大修一次,也要直接使用ORM等等,所以今天沒甚麼進度是有原因的。


上一篇
DAY26 串接牌局結果、勝利區塊
下一篇
DAY28 三十天路邊賭場上線了!試玩!
系列文
三十天路邊賭場上線了!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ShawnL
iT邦新手 1 級 ‧ 2019-09-28 23:11:51

寫這種鐵人賽真的很怕部屬問題阿阿阿
期待之後的成品,會釋放出來嗎 XDD(?

看更多先前的回應...收起先前的回應...

佈署出問題了,lowdb有問題,現在要不是我熬夜把我之前寫的抽成PostgreSQL或套其他ORM,不然真的沒辦法線上運行。

遇到的問題是
當我註冊會員時再登入遊戲,會出現會員新增卻無法搜尋到的問題,但是伺服器關閉重新開啟就可以正常登入了,不確定lowdb寫入時會有甚麼特別規定我沒遵守。

最後如果線上站還是有問題,會直接發github,就是自己註冊完帳號要重新啟動伺服器這樣哈哈

https://it30.herokuapp.com
偷偷給你! 我剛剛找到問題在哪裡了! 帳號可能會被清掉,就玩玩就好!

太快輸到脫褲子了哦

ShawnL iT邦新手 1 級 ‧ 2019-09-29 02:47:26 檢舉

回報一下,註冊登入等等都正常,
.
.
.

只是過不到一小時,就把 870,000 輸光了/images/emoticon/emoticon17.gif

哈哈,我剛剛有看著你玩,想說...你怎麼都下一樣的哈哈

我明天再設個可以補錢的好了,看起來其實滿容易輸完的。

我要留言

立即登入留言