なでてニャ(解説)

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

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

// 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();
}

15

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

var assets = [
    "images/back_town.png",
    "images/washi_stand.png",
    "images/washi_sit.png",
    "images/washi_kick_l.png",
    "images/washi_kick_r.png",
    "images/title.png",// タイトル
    "sounds/hit.mp3",
    "sounds/jump.mp3",
    "images/cf307/nuhehidari.png",
    "images/cf307/nuhemigi.png",
    "images/cf307/zyoniue.png",
    "images/cf307/yazirusi(64).png",

];

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

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

    scene.backgroundColor = "darkgray";

    // 
    var town = new Sprite(320, 480);
    town.image = core.assets["images/back_town.png"];
    scene.addChild(town);

    // ラベル
    var label = new Label("タップで移動");
    label.x = 320 / 2 - 150 / 2;
    label.y = 340 + 44;
    label.color = "black";
    label.font = "32px Arial";
    scene.addChild(label);
    
    // わし
    var washi = new Sprite(64, 64);
    washi.image = core.assets["images/cf307/nuhehidari.png"];
    washi.x = 160 - 32;
    washi.y = 260;
    scene.addChild(washi);
    washi.scale(1.5, 1.5);

    // 矢印左
    var hidari = new Sprite(64, 64);
    hidari.image = core.assets["images/cf307/yazirusi(64).png"];
    hidari.x = washi.x - 64;
    hidari.y = washi.y;
    scene.addChild(hidari);
    hidari.scale(0.8, 0.8);
    hidari.rotate(-90);

    // 矢印右
    var migi = new Sprite(64, 64);
    migi.image = core.assets["images/cf307/yazirusi(64).png"];
    migi.x = 160 - 32 + 64;
    migi.y = 260;
    scene.addChild(migi);
    migi.scale(0.8, 0.8);
    migi.rotate(90);

    // 矢印上
    var ue = new Sprite(64, 64);
    ue.image = core.assets["images/cf307/yazirusi(64).png"];
    ue.x = 160 - 32;
    ue.y = 260 - 64 - 6;
    scene.addChild(ue);
    ue.scale(0.8, 0.8);
    // 矢印下
    var sita = new Sprite(64, 64);
    sita.image = core.assets["images/cf307/yazirusi(64).png"];
    sita.x = 160 - 32;
    sita.y = 260 + 64;
    scene.addChild(sita);
    sita.scale(0.8, 0.8);
    sita.rotate(180);
    scene.addEventListener(Event.TOUCH_START, function(e){
        console.log("ごりら");
        console.log(e.x);
        if(e.x < washi.x){
            console.log("ちっちゃいね");
            washi.image =  core.assets["images/cf307/nuhehidari.png"];
            label.text = " 左ぢゃ!";
            washi.moveBy(-20, 0, 0);
            hidari.moveBy(-20, 0, 0);
            migi.moveBy(-20, 0, 0);
            ue.moveBy(-20, 0, 0);
            sita.moveBy(-20, 0, 0);
        label.moveBy(-20, 0, 0);
        }
        if(washi.x + washi.width < e.x){
            console.log("でかいね");
        washi.image =  core.assets["images/cf307/nuhemigi.png"];
            label.text = " 右ぢゃ!";
            washi.moveBy(20, 0, 0);
            hidari.moveBy(20, 0, 0);
            migi.moveBy(20, 0, 0);
            ue.moveBy(20, 0, 0);
            sita.moveBy(20, 0, 0);
            label.moveBy(20, 0, 0);
                if(washi.y > e.y){
            console.log("うえだね");
        washi.image =  core.assets["images/cf307/zyoniue.png"];
            label.text = " 上ぢゃ!";
            washi.moveBy(0, -20, 0);
            hidari.moveBy(0, -20, 0);
            migi.moveBy(0, -20, 0);
            ue.moveBy(0, -20, 0);
            sita.moveBy(0, -20, 0);
            label.moveBy(0, -20, 0);
                if(washi.y + washi.height < e.y){
            console.log("しただね");
        washi.image =  core.assets["images/cf307/nuhehidari.png"];
            label.text = " 下ぢゃ!";
            washi.moveBy(0, 20, 0);
            hidari.moveBy(0, 20, 0);
            migi.moveBy(0, 20, 0);
            ue.moveBy(0, 20, 0);
            sita.moveBy(0, 20, 0);
            label.moveBy(0, 20, 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();
}