初心者の方でも楽しくゲームの作り方やプログラミングを学べる情報を発信中!

enchant.js

ゲームを作成しながらプログラミング勉強!enchant.js講座 #4

前回は敵キャラを画面上に表示させるプログラムを作りました。

今回は敵キャラを自動的に下に移動してくるプログラムを作ろうと思います。

 

前回の記事

 

敵キャラ”しろくま”を自動的に動かす

enchant.js講座 #2で使用したサンプルを元に改造したいと思います。

既にForkしたプロジェクトがある方はEditボタンを押して、編集しましょう。

まだForkしていない方は、「enchant.jsサンプル(基礎編)」→「クリックしたところにキャラを移動させてみよう」と書かれたサンプルをForkしましょう。

 

 

緑枠で囲った箇所を改造していきたいと思います。

 

では、早速以下のように改造して白クマを表示させましょう。

        bear = new Sprite(32, 32);
        bear.image = game.assets['chara1.gif'];
        game.rootScene.addChild(bear); //シーンに普通のクマを追加

        //rootSceneへのイベントは画面全体のイベントとなる
        game.rootScene.addEventListener('touchend', function(event) {
            bear.x = event.x; //event変数にタップされた座標が入る
            bear.y = event.y;
        });

        //白クマくん
        bear2 = new Sprite(32, 32); 
        bear2.image = game.assets['chara1.gif']; 
        bear2.x=50;
        bear2.y=20;
        bear2.frame=5;
        game.rootScene.addChild(bear2);//シーンに普通のクマを追加

 

前回同様にbear2を追加してRunボタンを押すと、白クマが出現することを確認できました。

 

次に白クマを下に移動させるための命令を追加したいと思います。

以下のようにコードを書き換えてみて下さい。

        //白クマくん
        bear2 = new Sprite(32, 32); 
        bear2.image = game.assets['chara1.gif']; 
        bear2.x=50;
        bear2.y=20;
        bear2.frame=5;
        bear2.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear2);//シーンに普通のクマを追加

 

「bear2.addEventListener(‘enterframe’,function(){this.y++;});」という命令を追加しました。

実はこの命令、前回でも同じような命令が書かれていましたが、一度に説明するとややこしいと思ったので、解説はしていませんでした。

この書き方、touchendでクマを操作する書き方と似ています。

「bear2.addEventListener(‘enterframe’」はbear2が定期的に処理するという意味になり、function(event) { から } の囲まれた間の処理を実行するという命令になります。

 

今回の場合、以下の処理がbear2が定期的に実行することになります。

this.y++;

 

thisという書き方は、定期的に処理を実行するbear2自身のことを指します。

つまり、bear2.y++;と同じ意味です。

y++という命令はyを+1するという意味になり、定期的にyが+1されることで下に移動するという仕組みです。

y–という書き方にするとy1を-1するという意味に変わるので、逆に上に移動するという意味になります。

 

白クマを増やしてみる

白クマが1匹だけだと寂しいので、増やしてみましょう。

以下のように書き換えて実行すると白クマが増えます!

        //白クマくん
        bear2 = new Sprite(32, 32); 
        bear2.image = game.assets['chara1.gif']; 
        bear2.x=50;
        bear2.y=20;
        bear2.frame=5;
        bear2.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear2);//シーンに普通のクマを追加

        //白クマくん
        bear3 = new Sprite(32, 32); 
        bear3.image = game.assets['chara1.gif']; 
        bear3.x=150;
        bear3.y=20;
        bear3.frame=5;
        bear3.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear3);//シーンに普通のクマを追加

        //白クマくん
        bear4 = new Sprite(32, 32); 
        bear4.image = game.assets['chara1.gif']; 
        bear4.x=200;
        bear4.y=20;
        bear4.frame=5;
        bear4.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear4);//シーンに普通のクマを追加

 

bear3、bear4を増やしました。

xの数値は適当にいじって下さい。

game.rootScene.addChildのかっこ内をbear3、bear4に書き換えないと増えないので注意!

 

完成コード

完成コードを用意したので、参考にして下さい!

enchant();
window.onload = function() {
    var game = new Game(320, 320);
    game.preload('chara1.gif'); // chara1.gifを読み込む
    game.onload = function() {

        bear = new Sprite(32, 32);
        bear.image = game.assets['chara1.gif'];
        game.rootScene.addChild(bear); //シーンに普通のクマを追加

        //rootSceneへのイベントは画面全体のイベントとなる
        game.rootScene.addEventListener('touchend', function(event) {
            bear.x = event.x; //event変数にタップされた座標が入る
            bear.y = event.y;
        });

        //白クマくん
        bear2 = new Sprite(32, 32); 
        bear2.image = game.assets['chara1.gif']; 
        bear2.x=50;
        bear2.y=20;
        bear2.frame=5;
        bear2.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear2);//シーンに普通のクマを追加

        //白クマくん
        bear3 = new Sprite(32, 32); 
        bear3.image = game.assets['chara1.gif']; 
        bear3.x=150;
        bear3.y=20;
        bear3.frame=5;
        bear3.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear3);//シーンに普通のクマを追加

        //白クマくん
        bear4 = new Sprite(32, 32); 
        bear4.image = game.assets['chara1.gif']; 
        bear4.x=200;
        bear4.y=20;
        bear4.frame=5;
        bear4.addEventListener('enterframe',function(){
            this.y++;});
        game.rootScene.addChild(bear4);//シーンに普通のクマを追加
    }
    game.start();
}

 

スポンサーリンク
シェアする

関連記事

ゲームを作成しながらプログラミング勉強!enchant.js講座 #5

前回は敵キャラを自動的に下に移動してくるプログラムを作りました。 複数敵キャラを表示させたのですが、今回は複数敵キャラの表示を”配列”と”繰り返し”とい …

ゲームを作成しながらプログラミング勉強!enchant.js講座 #1

こんにちは! 今回はenchant.jsというゲームエンジンを使ってゲームを作成しながらプログラミングにチャレンジしたいと思います!     enchant.jsとは enchan …

ゲームを作成しながらプログラミング勉強!enchant.js講座 #6

前回は”配列”と”繰り返し”を使って、敵キャラを複数表示させるプログラムを作りました。 しかし、敵キャラの位置が規則正しく並んでしまっていたので、ゲーム …

ゲームを作成しながらプログラミング勉強!enchant.js講座 #7

前回は”乱数”を使って、敵キャラをランダムに出現させるプログラムを作りました。 今回は、いよいよ敵キャラと自分のクマがぶつかった時の処理を作っていきたいと思います。 &nbsp …

ゲームを作成しながらプログラミング勉強!enchant.js講座 #2

こんにちは! 前回はcode.9leap.netのアカウント取得から、くまを表示させるところまで作りました。   今回はクリックした場所へくまを移動させるプログラムにチャレンジしたいと思いま …