(解説)タッチしてちょんまげ

まげをタッチすると上下に動くというものを授業でやったので、それを基にして作りました。

くだものが落ちた後に元に戻すというのが難しくて、大変苦労しました。

左上に初期画面のたぬきが出たままなのは、当時どういう訳かこれを消そうとするとバグになってしまって解決できなかったので、そのままにしたものです。

一研究・コラムはこちら

(コラム)タッチしてちょんまげ

(一研究)タッチしてちょんまげ 

(一研究)タッチしてちょんまげ


完成したソースコード

// Main
console.log("Hello EnchantJS!!");
var assets = [
    "images/e_tanuki.png",
    "images/title.png",// CodeFriendsタイトル
    "sounds/hit.mp3",
    "sounds/jump.mp3",
    "images/bk_body.png",
    "images/bk_mage.png",
    "images/cf307/apple.png",
    "images/cf307/applekorokoro.png",
    "images/cf307/banana.png",
    "images/cf307/bananakuru.png",
    "images/cf307/sakuranbo.png",
    "images/cf307/sakuranbokuru.png", 
    "images/cf307/tatti.png",
    "images/cf307/honoo.png",
    "images/cf307/tono1.png",
    "sounds/boost.mp3" 
];
function gameStart(){// ゲーム画面
    scene = gameManager.createGameScene();
    core.replaceScene(scene); core.resume();
    //==========
    // ここから
    //==========
    scene.backgroundColor = “green";
    //たぬき
    var tanuki = new ExSprite(32, 32);
    tanuki.image = core.assets["images/e_tanuki.png"];
    scene.addChild(tanuki);
    tanuki.x = 0;
    tanuki.y = 0;
  
    //ほのお
    var honoo = new ExSprite(45,60);
    honoo.image = core.assets[“images/cf307/honoo.png"];
    scene.addChild(honoo);
    honoo.x = 145;
    honoo.y = 190;
    var tono = new ExSprite(190,140);
    tono.image = core.assets["images/bk_body.png"];
    scene.addChild(tono);
    tono.x = 71;
    tono.y = 190;
    var mage = new ExSprite(45,60);
    mage.image = core.assets["images/bk_mage.png"];
    scene.addChild(mage);    
    mage.x = 145;
    mage.y = 130;
    var applekorokoro = new ExSprite(32,32);
    applekorokoro.image = core.assets[“images/cf307/applekorokoro.png"];
    scene.addChild(applekorokoro);    
    applekorokoro.x = 152;
    applekorokoro.y = 103;
   
    var bananakuru = new ExSprite(32,32);
    bananakuru.image = core.assets["images/cf307/bananakuru.png"];
    scene.addChild(bananakuru);    
    bananakuru.x = 152;
    bananakuru.y = 71;
    var sakuranbokuru = new ExSprite(32,32);
    sakuranbokuru.image = core.assets["images/cf307/sakuranbokuru.png"];
    scene.addChild(sakuranbokuru);   
    sakuranbokuru.x = 152;
    sakuranbokuru.y = 39;   
    var tatti = new ExSprite(32, 32);
    tatti.image = core.assets["images/cf307/tatti.png"];
    scene.addChild(tatti);
    tatti.x = 175;
    tatti.y = 150; 
    //まげをタッチすると回転しながら動くように
    mage.addEventListener(Event.TOUCH_START, function(){
        mage.tl.moveBy(0,-100,30);
        honoo.tl.moveBy(0,-100,30);     
        tono.image = core.assets["images/cf307/tono1.png"];
        var sound = core.assets["sounds/boost.mp3"].clone();
        sound.play(); 
        applekorokoro.tl.moveBy(0,200,30);
        //applekorokoro.tl.then(function(){
        applekorokoro.image = core.assets[“images/cf307/applekorokoro.png"]; 
        applekorokoro.frame = [];
        applekorokoro.frame = [0, 1, 2, 3,];
        bananakuru.tl.moveBy(100,232,30); 
        bananakuru.image = core.assets["images/cf307/bananakuru.png"]; 
        bananakuru.frame = [];
        bananakuru.frame = [0, 1, 2, 3,];
        sakuranbokuru.tl.moveBy(-100,264,30); 
        sakuranbokuru.image = core.assets["images/cf307/sakuranbokuru.png"]; 
        sakuranbokuru.frame = [];
        sakuranbokuru.frame = [0, 1, 2, 3,];  
        //元の位置に戻って、回転を止めるようにしたい
        mage.tl.delay(16);
        mage.tl.moveTo(145, 130, 0);
        honoo.tl.delay(16);
        honoo.tl.moveTo(145, 190, 0);
        tono.tl.delay(46);
        tono.tl.then(function(){
            tono.image = core.assets[“images/bk_body.png"];
        });
        applekorokoro.tl.delay(16);
        applekorokoro.tl.moveTo(152, 103, 0);
        applekorokoro.tl.then(function(){
            applekorokoro.image = core.assets["images/cf307/apple.png"]; 
        }); 
        bananakuru.tl.delay(16);
        bananakuru.tl.moveTo(152, 71, 0);
        bananakuru.tl.then(function(){
            bananakuru.image = core.assets[“images/cf307/banana.png"];
        });   
        sakuranbokuru.tl.delay(16);
        sakuranbokuru.tl.moveTo(152, 39, 0);
        sakuranbokuru.tl.then(function(){
            sakuranbokuru.image = core.assets[ “images/cf307
    sakuranbo.png"];
        });
    }); 

◉ 工夫したところ

・タッチしたら殿の画像を変えて驚くような顔にした。

・果物を回転するようにした。

・一回やったら終わりではなく、落ちてしばらくしたら元の位置に戻るようにして、何度でも繰り返せるようにした。

◉ 難しかったところ

・果物の転がる軌道を3方向にしたので、距離が異なるところを調整したところ。

・果物の位置を戻した後に、画像も制止画像に戻すのが難しかった。 (then(function)を使った)