phinajs / phina.js

phina.js is game library

Home Page:http://phinajs.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pointmoveとpointstayが同時に呼ばれないようにする

alkn203 opened this issue · comments

interactive.js内の記述は、以下で良いような気がします。

      if (obj._touchFlags[p.id]) {
        if (p._moveFlag) {
          obj.flare('pointmove', e);
        }
        else {
          obj.flare('pointstay', e);
        }
      }

updaterにも同様の記述があるので、どちらか確認する必要あり。

@alkn203 pointmoveとpointstayが同時に呼ばれないことのメリットってなんですか?

タッチしている時だけシールド張る時とかにと思ったのですが、何か他の処理で代用できる気がしてきましたw

直感的にはmoveはpointerが動いている時だけ呼ばれるって感じはしますね。
JS使い始めの時にそう思ってて、「ん?」とちょっと引っかかった覚えがあります。

moveFlagをチェックしてstayイベント内でmoveFlagで処理を切り分けるのが良いかなと思いました

@simiraaaa レビューありがとうございます。それでも良いですね。

そうなると、pointer._moveFlagで参照するか

プライベート変数的なやつには直接参照したくない気もしますので

var e = {
        pointer: p,
        interactive: this,
        over: overFlag,
        move: p._moveFlag
      };

のようにラップするかですかね。