2017-06-07 15 views
0

私は与えられたオブジェクト/要素に重力を加える方法を知っています。加速度Yを下に追加するだけです。しかし、私のヒーローが飛ぶためにはどうすればいいですか? "または" 特定のオブジェクトに対して重力をオフにしたい場合はどうすればいいですか?私はgravity = 0を設定しなければなりません。 複数のボディに重力を追加するにはどうすればいいですか?

function spawnShape(x, y, w, h) { 
    var shape = new createjs.Shape(); 
    shape.graphics.beginFill("black").drawRect(x, y, w, h); 
    stage.addChild(shape); 
} 

spawnShape(20, 250, 600, 30); 
spawnShape(200, 150, 5, 5); 

stage.update(); 
に、独自の「重力」変数を形作る、私はそれがあまりにも多くなると考えましたし、それがどのように行うのでしょうではありません...

どのように私は(EaseJSを使用)を作成する形状から

を行くだろう

重力を「自動的に」追加するか?(イブ私はおそらくエンジンを使用しているだろうが、今のところ私は欲しいと思うのですが、私は物理エンジンを使用しようとしました。これを行う方法を知っている:P

答えて

0

をあなたがオブジェクトを作成することができます:私はEaseJSので、具体的に働いていない

> x = new Shape(200, 200, 10, 10, 0.5) 
Shape {x: 200, y: 200, w: 10, h: 10, gravity: 0.5} 
> y = new Shape(400, 100, 50, 100, 0.75) 
Shape {x: 400, y: 100, w: 50, h: 100, gravity: 0.75} 
> x.gravity = 0 
0 
> y.gravity 
0.75 

:したがって

function Shape(x, y, w, h, gravity){ 
    this.x = x; 
    this.y = y; 
    this.w = w; 
    this.h = h; 
    this.gravity = gravity; 
    this.shape = new createjs.Shape(); 
    stage.addChild(shape); 
    this.draw = function(){ 
     shape.graphics.beginFill("black").drawRect(x, y, w, h); 
    } 
} 

を、あなたはとしてそれを呼び出すことができます不正確かもしれないが、最も重要な論理は、ボブ。

+0

私はそれを使ってメソッド描画をすることができないので、私はeasejsを捨てなければなりませんでした。 – RealAnyOne

0

重力を追加する方法や重力を追加する方法を理解していると思います。あなたが言うように、それはオブジェクトに加速度Yを加えるだけです。

あなたのデザインをちょっと考えなければならないようですね。たとえば、重力をオブジェクトに適用するモジュールgravity.jsがあるとします。

/* gravity.js */ 
const DEFAULT_GRAVITY_ACCELERATION = 1.0; 

function applyGravity(shape) { 
    const gravity = shape.gravityAcceleration !== undefined ? 
    shape.gravityAcceleration : DEFAULT_GRAVITY_ACCELERATION; 

    //Do whatever you normally do to update Y acceleration. Code below 
    //is just an example. 
    shape.addYAcceleration(gravity); 
} 

シェイプのどこかを作成して、それが重力の自由になりたい場合は、単にそのオブジェクトの.gravityAccelerationメンバーを設定します。ところで、 "gravityAcceleration"という名前は何も特別なものはありません。

//Assuming spawnShape returns an object. 
var superman = spawnShape(20, 250, 600, 30); 
superman.gravityAcceleration = 0; //Override the default gravity. 

グラビティを無効にするシェイプオブジェクトには、.gravityAccelerationメンバーを設定する必要があります。

+0

ええ、私の悪い:|、それは実際には書かれていませんでした、私はドンです(これは、オブジェクトを扱う方法を知っていません。 (私は非常にnewbyです:P)が、私は少しそれを見て、今より良い把握を得た。 – RealAnyOne