---
# System prepended metadata

title: enchant.js 小テスト1-3
tags: [enchant.js 小テスト]

---

# enchant.js 小テスト1-3
## 課題: coinの作成
## タスク:
coinは0.5秒に1回(core.frame % 15 == 0)X座標はランダム、y座標は0に出現し下に5の速さで落ちていきます。
### ヒント
りんごキャッチのりんごと同じように落ちていきます。
コイン作成はrootSceneの"enterframe"内で作ります。
コインの動作はコインのクラスの中に記述していきます。


### 開始コード:

    enchant();

    window.onload = function() {
        const PLAYER = 'player.png';
        const COIN = 'coin.png';
        const ENEMY = 'enemy.png';
        const DISP_SIZE = 320;
        const TIME = 30;
        var score = 0;

        var core = new Core(DISP_SIZE, DISP_SIZE);
        core.preload(PLAYER, COIN, ENEMY);
        core.fps = 30;
        core.onload = function() {
            var player = new Sprite(100, 100);
            player.x = DISP_SIZE / 2;
            player.y = DISP_SIZE - player.height * 2;
            player.image = core.assets[PLAYER];

            player.on('enterframe', function() {
                if (core.input.left) {
                this.x -= 5;
                }
            
                if (core.input.right) {
                    this.x += 5;
                }
            });

            core.rootScene.addChild(player);
            
            var scoreLabel = new Label('Score: ' + score);
            scoreLabel.x = 10;
            scoreLabel.y = 10;
            core.rootScene.addChild(scoreLabel);
             var Coin = Class.create(Sprite, {
                initialize: function(x, y) {
                    Sprite.call(this, 16, 16);
                    this.x = ;
                    this.y = ;
                    this.image = 

                    this.on('', function() {
                        
                    });
                }
            });
            core.rootScene.on('enterframe', function() {
                scoreLabel.text = 'Score: ' + score;
                if () {
                    core.rootScene.addChild(coin);
                }
                
                
                if (core.frame === core.fps * TIME) {
                    core.stop();
                }
            });

            //上記のコインのコード、rootScene"enterframe"を完成させてください。

        };
        core.start();
    };

    function rand(n) {
        return Math.floor(Math.random() * (n + 1));
    }
<details>
    <summary>解答</summary>
    
    enchant();

    window.onload = function() {
        const PLAYER = 'player.png';
        const COIN = 'coin.png';
        const ENEMY = 'enemy.png';
        const DISP_SIZE = 320;
        const TIME = 30;
        var score = 0;

        var core = new Core(DISP_SIZE, DISP_SIZE);
        core.preload(PLAYER, COIN, ENEMY);
        core.fps = 30;
        core.onload = function() {
            var player = new Sprite(100, 100);
            player.x = DISP_SIZE / 2;
            player.y = DISP_SIZE - player.height * 2;
            player.image = core.assets[PLAYER];

            player.on('enterframe', function() {
                if (core.input.left) {
                this.x -= 5;
                }
            
                if (core.input.right) {
                    this.x += 5;
                }
            });

            core.rootScene.addChild(player);
            
            var scoreLabel = new Label('Score: ' + score);
            scoreLabel.x = 10;
            scoreLabel.y = 10;
            core.rootScene.addChild(scoreLabel);
            
            var Coin = Class.create(Sprite, {
                initialize: function(x, y) {
                    Sprite.call(this, 16, 16);
                    this.x = x;
                    this.y = y;
                    this.image = core.assets[COIN];

                    this.on('enterframe', function() {
                        this.y += 5;
                        if (this.intersect(player)) {
                            core.rootScene.removeChild(this);
                            score++;
                        }
                    });
                }
            });
            core.rootScene.on('enterframe', function() {
                scoreLabel.text = 'Score: ' + score;
                if (core.frame % 15 === 0) {
                    var coin = new Coin(rand(DISP_SIZE - 16), 0);
                    core.rootScene.addChild(coin);
                }
                if (core.frame === core.fps * TIME) {
                    core.stop();
                }
            });


        });

        core.start();
    };

    function rand(n) {
        return Math.floor(Math.random() * (n + 1));
    }
</details>