Help us understand the problem. What is going on with this article?

[phina.js-Tips] Physicalクラスを使ってオブジェクトを徐々に減速させる

More than 3 years have passed since last update.

※これまでのTipsはphina.js Tips集にまとめています。

今回のTips

オブジェクトに摩擦を適用して徐々に減速させます。

friction.gif

[runstantで動作確認]

flictionで摩擦係数を指定する

    // Physicalクラスを適用して移動
    shape.physical.force(0, 16);
    // 摩擦力適用
    shape.physical.friction = 0.98;
  • オブジェクトに摩擦を適用するにはphysicalfrictionを設定します。
  • オブジェクトの速度に対して毎フレームfrictionの値が乗じられるので、1に近づく値ほど摩擦がかからなくなります。

サンプルコード

// グローバルに展開
phina.globalize();
/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // 初期化
  init: function() {
    // 親クラス初期化
    this.superInit();
    // 背景色
    this.backgroundColor = 'black';
    // Shapeを作成してシーンに追加
    var shape = Shape();
    shape.addChildTo(this).setPosition(this.gridX.center(), 0);
    // Physicalクラスを適用して移動
    shape.physical.force(0, 16);
    // 摩擦力適用
    shape.physical.friction = 0.98;
  },
});
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // MainScene から開始
    startLabel: 'main',
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});
alkn203
javascriptのゲームライブラリphina.jsを愛用している趣味プログラマ。ファミコン世代。 Hobbyist programmer javascript/html5/phina.js/retro games
http://qiita.com/alkn203/items/bca3222f6b409382fe20
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away