2

了解しました。私は機知に富んでいて、CraftyJSにトゥイーンを実行させることができません。

ですから、私がやりたいのは、きのこが当たるたびに、そのきのこに「Answer」というコンポーネントが含まれているかどうかを確認したいということです。存在する場合は何もしません。それ以外の場合は、消えていく大きな赤いボックスを表示したいと思います。

Crafty.c("Mushroom", {
        init: function() {
            this.addComponent("collision");
            this.collision();
            this.onhit("bullet",function(e) {
                this.destroy();
                e[0].obj.destroy();
                if(!this.has("Answer")) {
                    Crafty.e("2D, Tween, color, canvas")
                    .attr({alpha: 1.0, x: 170, y: 100, w:300, h:100})
                    .color("red")
                    .bind("enterframe", function() { //How do i actually get the box to fade?
                        this.tween({alpha: 0.5, x: 170, y: 100}, 30);
                    });
                }
            });
        }
4

2 に答える 2

5

トゥイーンコードの実行をイベントにバインドしますEnterFrame。これにより、トゥイーンは各フレームで開始されます。代わりに、作成したエンティティでtween関数を呼び出すだけです。

 Crafty.e("2D, Tween, color, canvas")
                .attr({alpha: 1.0, x: 170, y: 100, w:300, h:100})
                .color("red")
                .tween({alpha: 0.5, x: 170, y: 100}, 600);

そして、トゥイーン関数はEnterFrame次の600ミリ秒(30フレーム)にわたってそれ自体を管理し、その後、TweenEndイベントを発生させます。

(Craftyの古いバージョンでは、msではなくフレームで期間を指定していました。)

于 2012-07-25T20:56:09.837 に答える
1

これはメタアンサーのようなものです:-)

まず、バグ修正がたくさんある最新バージョンにアップグレードすることをお勧めします。新しいリリースでコードを実行するために必要な変更のいくつかは、すべてのコンポーネントとイベントをPascalケースに変更することです。つまり、enterframe => EnterFrame、canvas=>Canvasなどです。

第二に、適切な聴衆を獲得するために、これらの質問をCraftyフォーラムに持ち込む必要があると思います。私がこの質問を発見した唯一の方法は、グーグルアラートを通してでした。

ヘルプを得る最良の方法は、このテンプレートhttp://jsfiddle.net/mCdUX/62/からjsfiddleを作成することです。小さな実行例を使用して、作業できない部分を示します。

ああ、そしてCraftyコミュニティへようこそ:-)

于 2012-02-04T22:13:04.503 に答える