投稿日:

    カテゴリー 技術 / デザイン / 制作

    さくっとCreateJSで遊ぶ

    制作部の稲葉です。

    今回はCreateJS公式サイトのチュートリアルを元にtweenjsを学んでみました。

    元となるチュートリアルはこちらです。

    詳細はリンク先を見て頂くとして、その中のinit()内だけにフォーカスして行きますね。

    // チュートリアル
    function init() {
    var stage = new createjs.Stage("demoCanvas");
    var circle = new createjs.Shape();
    circle.graphics.beginFill("Crimson").drawCircle(0, 0, 50);
    circle.x = 100;
    circle.y = 100;
    stage.addChild(circle);
    createjs.Tween.get(circle, {loop: true})
    .to({x: 400}, 1000, createjs.Ease.getPowInOut(4))
    .to({alpha: 0, y: 75}, 500, createjs.Ease.getPowInOut(2))
    .to({alpha: 0, y: 125}, 100)
    .to({alpha: 1, y: 100}, 500, createjs.Ease.getPowInOut(2))
    .to({x: 100}, 800, createjs.Ease.getPowInOut(2));
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    チュートリアル画像
    ここから少しずつ変更していきます。

    まずさっくとネコを用意します。
    ねこイラスト1

    このネコにぴょこぴょこ飛び跳ねてもらうのが目標です。

    まず右にすっと移動するイージングを、飛び跳ねている風の動きに変更してみます。

    function init() {
    var stage = new createjs.Stage("demoCanvas");
    var circle = new createjs.Shape();
    circle.graphics.beginFill("Crimson").drawCircle(0, 0, 50);
    circle.x = -25; //開始位置変更
    circle.y = 250; //開始位置変更
    stage.addChild(circle);
    createjs.Tween.get(circle, {loop: true})
    .to({x: 200}, 3000, createjs.Ease.elasticOut); //イージング変更
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    こんな感じでしょうか。

    次に、createjs.Bitmapを使って赤い円をネコの画像に変更してみます。


    function init() {
    var stage = new createjs.Stage("demoCanvas");
    var cat = new createjs.Bitmap("http://jsrun.it/assets/i/G/L/Y/iGLYn.png"); //ネコに変更
    cat.x = -100; //開始位置変更
    cat.y = 100; //開始位置変更
    stage.addChild(cat);
    createjs.Tween.get(cat, {loop: true})
    .to({x: 200}, 3000, createjs.Ease.elasticOut);
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    ねこイラスト2
    まだ、横に移動しているので、縦方向の移動にしましょう。


    function init() {
    var stage = new createjs.Stage("demoCanvas");
    var cat = new createjs.Bitmap("http://jsrun.it/assets/i/G/L/Y/iGLYn.png");
    cat.x = 150; //開始位置変更
    cat.y = 500; //開始位置変更
    stage.addChild(cat);
    createjs.Tween.get(cat, {loop: true})
    .to({y: 200}, 3000, createjs.Ease.elasticOut); //y軸移動に変更
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    canvasサイズが500pxで基準位置がcanvasの上になるので、yは500から始めました。
    良い感じになってきましたが、もう少しネコを増やしたくなってきました。
    適当に4匹にしてみます。


    function init() {
    var stage = new createjs.Stage("demoCanvas");
    //ネコを増やす
    var cats = [];
    for(var i = 0, l = 4; i < l; i++){
    cats[i] = new createjs.Bitmap("http://jsrun.it/assets/i/G/L/Y/iGLYn.png");
    cats[i].x = i * 100;
    cats[i].y = 500;
    stage.addChild(cats[i]);
    createjs.Tween.get(cats[i], {loop: true})
    .to({y: 200}, 3000, createjs.Ease.elasticOut);
    }
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    ねこイラスト3
    高さがそろったジャンプが見られるようになりました。
    でもどうせならランダムにジャンプする方が自然ですね。


    function init() {
    var stage = new createjs.Stage("demoCanvas");
    var cats = [];
    for(var i = 0, l = 4; i < l; i++){
    cats[i] = new createjs.Bitmap("http://jsrun.it/assets/i/G/L/Y/iGLYn.png");
    cats[i].x = i * 100;
    cats[i].y = 500;
    stage.addChild(cats[i]);
    createjs.Tween.get(cats[i], {loop: true})
    .to({y: (200 * Math.random())}, (3000 * (Math.random()+1)), createjs.Ease.elasticOut); //高さと時間をランダムに
    }
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", stage);
    }

    ねこイラスト4
    無事にぴょこぴょこ元気にジャンプするネコが見られました。
    まだ変更したい部分はありますが、今回はここまでです。

    最終コードはこちらから確認できます。
    (埋め込みできなかった、、、)

    それではまた。