enchant.js を使ってたった50行でゲームを作ってみた

phiary に引っ越しました. 毎日プログラミングやWebに関する情報を発信しています! RSS 登録してたまに覗いたり, tweet やハテブして拡散してもらえると幸いです.

Pocket

どうも〜今回は久々に enchant.js のエントリーです.

最近は, enchant.js 関連のエントリーは書いているものの公開は控えておりました.

一応 enchant.js がバージョンアップしたこと, windows 8 に対応したこと, アメリカで enchant.js, Inc. が設立されること, enchant MOON なるものが 作られようとしていること. ひと通りキャッチアップはしています.

最近は仕事と tmlib.js のことでいっぱいいっぱいだったので…

ですが, 『enchant.js Advent Calendar 2012』という面白いイベントを daishiさんが開かれたので, これは参加しないわけにはいかないだろということで エントリー連投しようと思います.

っということで本題.

今まで

と様々な企画を考えやってきました.

そこで今回は, 100行縛りってやつを更に縛って 50 行縛りでゲームを作ってみました. しかもコメントありでw

Table of contents

50 行縛りのゲームを作ろう

50 行というのはおそらくゲームに対して実装できる仕組みは1つ, 2つが限界です. つまり超シンプルなゲームしか作れません.

そういった縛りの中でどうやったら面白いゲームが作れるかみなさん一緒に考えて見ませんか?

up

ゲーム概要

今回作ったゲームについてです. ただ, 画面にいるくまをタッチしてそのスピードを競うというシンプルなゲームになっております.

up

コード

コードはたったこれだけです.

// おまじない
enchant();

// 定数
var SCREEN_WIDTH    = 320;
var SCREEN_HEIGHT   = 320;
var CHARA_IMAGE     = "http://enchantjs.com/assets/images/chara1.gif";
var SPRITE_MAX_NUM  = 8;

// ランダム値生成
var randint = function(min, max) { return Math.floor( Math.random()*(max-min+1) ) + min; };

// メイン処理
window.onload = function() {
    // ゲームオブジェクトを生成
    var game = new Game(SCREEN_WIDTH, SCREEN_HEIGHT);
    // 画像読み込み
    game.preload(CHARA_IMAGE);

    // ロード完了時の処理
    game.onload = function() {
        var scene = game.rootScene;
        // 背景色を変更
        scene.backgroundColor = "black";
        // スプライトを大量に生成
        for (var i=0; i<SPRITE_MAX_NUM; ++i) {
            // 画像を生成, 表示
            var sprite = new Sprite(32, 32);
            sprite.image = game.assets[CHARA_IMAGE];
            sprite.moveTo( randint(0, SCREEN_WIDTH-32), randint(0, SCREEN_HEIGHT-32) )
            sprite.ontouchstart = function() { this.parentNode.removeChild(this); };
            scene.addChild(sprite);
        }
        // シーン更新時の処理
        scene.onenterframe = function() {
            // スプライトが全て削除されたかどうかを判定
            if (this.childNodes.length <= 0) {
                game.end((300-game.frame)|0, ((300-game.frame)|0) + "point!!");
            }
        };
    };
    
    // ゲーム開始
    game.start();
};

up

みなさんへ

冒頭でも紹介しましたが, 現在 『enchant.js Advent Calendar 2012』という面白いイベントをやっています.

こういった簡単なエントリーでも良いと思うので, みんなでバトンを繋げてenchant.js を盛り上げていきましょう 🙂 ブログやってないって人は, Gist で書いたり, jsdo.it で作ってリンクを送ったりって形でも大丈夫だと思います.

お気軽にぜひ♪

up

TRACK BACK URL

POST COMMENT

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

COMMENT