

MonacaおよびJavaScript、アプリ開発初心者です。  
恐れ入りますがお力添えいただきたく質問させていただきます。

以下のサイトで初歩の初歩を勉強しており、実際にMonacaで同じソースコードをコピーして動かしているのですがクラスを呼び出すようにすると、なぜか画面に何も出てこなくなってしまいます。  
<http://code.9leap.net/>

  1. 想定どおり画像が表示されるソースコード
[code]     enchant(); // おまじない

    
    // ここで自作クラスBearをつくる
    Bear = Class.create(Sprite, // Spriteクラスを継承
    {
        initialize: function(x, y) { //初期化する
            Sprite.call(this, 32, 32); //Spriteオブジェクトを初期化
            this.image = game.assets['./img/chara1.png'];
            this.x = x;
            this.y = y;
    
            this.tx = this.x; //行きたい場所のX座標
            this.ty = this.y; //行きたい場所のY座標
            this.frame = 0;
            game.rootScene.addChild(this);
        },
        //enterframeイベントのリスナーを定義する
        onenterframe: function() {
            slow = 30; //クマが行きたい場所へ近づく遅さ
            //行きたい場所へ近づく
            this.x += (this.tx - this.x) / slow;
            this.y += (this.ty - this.y) / slow;
        }
    });
    
    window.onload = function() {
        var game = new Game(320, 320); // ゲーム本体を準備すると同時に、表示される領域の大きさを設定しています。
        game.fps = 24; // frames（フレーム）per（毎）second（秒）：ゲームの進行スピードを設定しています。
        game.preload('./img/chara1.png'); // pre（前）-load（読み込み）：ゲームに使う素材をあらかじめ読み込んでおきます。
        game.onload = function() { // ゲームの準備が整ったらメインの処理を実行します。
            //bear = new Bear(100, 120); // クマさんをつくる  
    
            var kuma = new Sprite(32, 32);  // くまというスプライト(操作可能な画像)を準備すると同時に、スプライトの表示される領域の大きさを設定しています。
            kuma.image = game.assets['./img/chara1.png']; // くまにあらかじめロードしておいた画像を適用します。
            kuma.x = 100; // くまの横位置を設定します。
            kuma.y = 120; // くまの縦位置を設定します。
            game.rootScene.addChild(kuma); // ゲームのシーンにくまを表示させます。
            game.rootScene.backgroundColor  = '#7ecef4'; // ゲームの動作部分の背景色を設定しています。
        };
        game.start(); // ゲームをスタートさせます![画像の説明をここに入力][1]        
    };
    
[/code]

  2. クラス呼び出しのために以下のコメントアウトを取り消すと何も表示されなくなってしまいます
[code]     bear = new Bear(100, 120); // クマさんをつくる

    
[/code]

コンソールにエラーなども出ておらず、何が原因か見当もつかない状態でして、何かお気づきの方いらっしゃいましたら助けていただけないでしょうか…。

以上よろしくお願いいたします。

![画像の説明をここに入力](https://i.stack.imgur.com/yYS5N.png)


CC BY-SA 3.0
2015-04-02T04:51:44.000
8680
2015-04-02T06:04:07.190
2015-04-02T06:04:07.190
3068
9119
question
javascript monaca
Monacaを使ってjavascriptでクラスを作成し呼び出しに失敗


たぶん、window.onloadの中で宣言しているローカル変数gameを、グローバル変数にしなければならないのではないでしょうか。  
でないと、Bearクラスのinitializeから変数gameを参照できないです。  
変数gameの宣言だけ外に出せばいいと思います。

[code]

    var game;
    window.onload = function () {
        game = new Game(300, 300);
    // あとは同じ
    
[/code]


CC BY-SA 3.0
2015-04-02T05:48:58.493
8683
2015-04-02T05:48:58.493
8078
8680
answer