なでてニャ(解説)

これは、カウンターを設置して、何かをするとカウンターが増えたり減ったりするようにして、カウンターの値によって条件分岐で動きを変えるというものを習ったので、それを使って作ったものです。

念願のねこをなでるゲームをつくることができて、大変満足でした。

// Main
console.log("Hello EnchantJS!!");

var assets = [
    "images/back_mountain.png",
    "images/kikori_land.png",
    "images/cf005/cat_run.png",
    "images/kikori_kame_1.png",
    "images/title.png",// タイトル
    "sounds/hit.mp3",
    "sounds/jump.mp3",
    "images/kikori_kame_1.png",
    "images/kati_rock.png",
    "images/cf307/zabton.png",
    "images/cf307/nadenade.png",
    "images/cf307/nekoosuwari.png",
    "images/cf307/nekohako.png",
    "images/cf307/nekonemuri.png",
];

function gameStart(){// ゲーム画面
    scene = gameManager.createGameScene();
    core.replaceScene(scene); core.resume();

    //==========
    // ここから
    //==========

    scene.backgroundColor = "orange";

    // 座布団
    var zabuton = new ExSprite(70, 70);
    zabuton.image = core.assets["images/cf307/zabton.png"];
    scene.addChild(zabuton);
    zabuton.x = 320 / 2 - 70 / 2;
    zabuton.y = 480 / 2 - 70 / 2;
    zabuton.scale(2, 2);

    // カウンター
    var counter = 0;

    // ラベル
    var label = new Label("x");
    label.x = 160 - 16;
    label.y = 380 - 90;
    label.color = "white";
    label.font = "32px Arial";
    label.text = counter;
    scene.addChild(label);
    
    // ねこちゃん
    var neko = new ExSprite(64, 64);
    neko.image = core.assets["images/cf005/cat_run.png"];
    scene.addChild(neko);
    neko.x = 320 / 2 - 32;
    neko.y = 480 / 2 - 52;
    neko.frame = [0, 0, 1, 1, 2, 2, 3, 3]; 

    // 
    var hand = new ExSprite(42, 32);
    hand.image = core.assets["images/cf307/nadenade.png"];
    scene.addChild(hand);
    hand.x = neko.x + 27;
    hand.y = neko.y;
            
    // ねこちゃんをなでると
    hand.addEventListener(Event.TOUCH_START, function(){
        hand.frame = 1;
        neko.tl.moveBy(0, -5, 2);
        neko.tl.moveBy(0, 5, 2);        
        counter++; 
        console.log("なでっ!!");
        console.log(counter);
        label.text = counter;
        // 33以上でおすわり
        if(counter >= 33){
            console.log("おすわりニャン!!");
            neko.image = core.assets["images/cf307/nekoosuwari.png"];
            neko.tl.clear();
        }
        // 66以上で箱すわり
        if(counter >= 66){
            console.log("箱すわりニャン!!");
            neko.image = core.assets["images/cf307/nekohako.png"];
            hand.tl.moveTo(hand.x, neko.y + 10, 0);            
        }
     // 100以上でおやすみ
        if(counter >= 100){
            console.log("極楽ニャン!!");
            neko.image = core.assets["images/cf307/nekonemuri.png"];
            hand.remove();
        }                                                  
    });
    // なで終わり
    hand.addEventListener(Event.TOUCH_END, function(){
        hand.frame = 0;       
    });

    //==========
    // ここまで
    //==========

}

function getRandom(start, end) {
    return start + Math.floor( Math.random() * (end - start + 1));
}

function titleStart(){// タイトル画面
    var scene = gameManager.createTitleScene();
    core.replaceScene(scene); core.pause();
    scene.on(enchant.Event.TOUCH_START, function(){gameStart();});
}

//==========
// EnchantJS
enchant();
var gameManager;
var core;
var scene;
window.onload = function(){
    gameManager = new common.GameManager();
    core = gameManager.createCore(320, 480);
    core.preload(assets);
    core.onload = function(){titleStart();};
    core.start();
}

コメントを残す

メールアドレスが公開されることはありません。