jojotyping05【phina.js】

入力候補文字を強調させる

update: function () {

  var mojiKouho = 'abcdefghijklnmopqrstuvwsyz';
  var mondaiMoji = mojiKouho.charAt(Random.randint(0, mojiKouho.length - 1)); 

  if (Math.randbool(4)) { 
    var mojiLabel = Label({
      text: mondaiMoji,
      fill: 'black',
      fontSize: 30,
    }).addChildTo(this)   
      .setPosition(-50, Random.randint(100, this.height - 100));    

    var self = this;

    mojiLabel.tweener
      .to({ x: this.width + 50 }, 6500) 
      .call(function () {
        mojiLabel.remove();  
        var index = self.mojiList.indexOf(mojiLabel); 
        if (index >= 0) {
          self.mojiList.splice(index, 1);  
        }
        self.changeTargetMoji();
      });
    this.mojiList.push(mojiLabel);   
    if (this.mojiList.length === 1) {
      this.changeTargetMoji();
    }

  }
},

changeTargetMoji: function () {
  var mojiLabel = this.mojiList[0];  
  if (mojiLabel == null) {           
    return;
  }

  mojiLabel.fill = 'lightseagreen';
  mojiLabel.fontWeight = 'bold';
  mojiLabel.fontSize = '40';

},

removeMoji: function (mojiLabel, effect, effectTime) {
  var effectLabel = Label(effect) 
    .addChildTo(this)
    .setPosition(mojiLabel.x, mojiLabel.y);
  effectLabel.tweener
    .wait(effectTime)
    .call(function () {
      effectLabel.remove();
    });

  mojiLabel.remove();  
  this.mojiList.shift(); 

  this.changeTargetMoji();

}

 

▷入力候補文字を強調させる関数を追加

changeTargetMoji: function () {
  var mojiLabel = this.mojiList[0];   
  if (mojiLabel == null) {            
    return;
  }

  mojiLabel.fill = 'lightseagreen';
  mojiLabel.fontWeight = 'bold';
  mojiLabel.fontSize = '40';

},

配列の1番最初の文字が空であれば何もしない
どう強調させるかを追加

 

▷入力候補文字をどのタイミングで強調させるか

mojiLabel.tweener
  .to({ x: this.width + 50 }, 6500)
  .call(function () {
    mojiLabel.remove(); 
    var index = self.mojiList.indexOf(mojiLabel); 
    if (index >= 0) {
      self.mojiList.splice(index, 1);
    }
    self.changeTargetMoji();  //①
  });
this.mojiList.push(mojiLabel);

if (this.mojiList.length === 1) {
  this.changeTargetMoji();   //②
}

①入力候補文字がゲーム画面から出た後、次の候補へ変わるタイミング
②文字が1つもない状態から新しく文字が作られたタイミング

 

removeMoji: function (mojiLabel, effect, effectTime) {
  var effectLabel = Label(effect)  
    .addChildTo(this)
    .setPosition(mojiLabel.x, mojiLabel.y);
  effectLabel.tweener
    .wait(effectTime)
    .call(function () {
      effectLabel.remove();
    });

  mojiLabel.remove(); 
  this.mojiList.shift();
  this.changeTargetMoji();  //③

}

③文字入力をして入力候補文字が消えた後

コメントを残す

あなたのメールアドレスは公開されません。必須項目には印がついています *