0

ゲーム エンジンを JavaScript で記述しようとしています。ゲーム コードを実行する前に、すべてのエンジン コードをロードしたいと考えています。これは最初のステップにすぎません。ゲーム コード内のすべてのエンジン コードを 1 つのファイルにロードしたいからです。そのため、すべてのエンジン コードをロードし、メインのゲーム オブジェクトを返し、それをゲーム コード内で返すブート ファイルを作成します。

define(['engine'[,...[]]], function(engine){
    // do what you want in order for you to make a game
});

私のエンジン ファイルでは、次のようなすべてのエンジン コードをロードします。

requirejs.config({
        baseUrl: '/js/libraries/engine',
        paths: {

            message         : "message",
            debug           : "debug",
            vector2         : "helpers/vector2",
            settings        : "settings",
            engine          : "engine",
            loop            : "loop",
            extra           : "extras",
            scene           : "scene",
            scenemanager    : "scenemanager",
            audio           : "audio",
            input           : "input",
            canvas          : "canvas",
            drawable        : "drawables/drawable",
            sprite          : "drawables/sprite",
            animation       : "drawables/animation",
            boxcollider     : "colliders/boxcollider",
            spherecollider  : "colliders/spherecollider",
            actor           : "actor",
            world           : "world"

        }
});

require(["message", "debug", "vector2", "settings", "engine", "loop", "extra", "scene", "scenemanager",
            "audio", "input","canvas","drawable","sprite","animation","boxcollider", "spherecollider", "actor", "world"]
    , function(
            message,   debug,    vector2,   settings,   engine,   loop,   extra,   scene,  scenemanager,
            audio,   input,   canvas, drawable, sprite,   animation,   boxcollider,   spherecollider,   actor,  world)
        {
         return engine;
        }
    );

基本的に、engine.js ファイルはエンジン コードのマニフェストになるので、engine.js ファイルをロードして、そこで定義されているすべてのコンポーネントにアクセスしたいだけです。現在、それを行う方法がわかりません。

4

1 に答える 1

0

単一の (場合によっては圧縮された) ファイルを作成するには、RequireJS オプティマイザーを使用します。

ファイルのレイアウトに関して:

エンジン.js

engine はここで定義されており、残りのすべてのエンジン サブコンポーネントに依存しています。

define(["message", "debug", "vector2", "settings", "loop", "extra", "scene", "scenemanager",
        "audio", "input","canvas","drawable","sprite","animation","boxcollider", "spherecollider", "actor", "world"]
, function(
        message,   debug,    vector2,   settings,   loop,   extra,   scene,   scenemanager,
        audio,   input,   canvas, drawable, sprite,   animation,   boxcollider,   spherecollider,   actor,  world) {
        var engine = ...;
        return engine;
    }
);

index.html

<head>
...
<script>
require.config({
    baseUrl: '/js/libraries/',
    paths: {
        engine          : "engine",
        message         : "message",
        debug           : "debug",
        vector2         : "helpers/vector2",
        settings        : "settings",
        engine          : "engine",
        loop            : "loop",
        extra           : "extras",
        scene           : "scene",
        scenemanager    : "scenemanager",
        audio           : "audio",
        input           : "input",
        canvas          : "canvas",
        drawable        : "drawables/drawable",
        sprite          : "drawables/sprite",
        animation       : "drawables/animation",
        boxcollider     : "colliders/boxcollider",
        spherecollider  : "colliders/spherecollider",
        actor           : "actor",
        world           : "world"
    }
});
</script>
<script>
require(['engine'], function(engine) {
    // do something with the game
});
</script>
...
</head>
于 2013-04-22T07:53:56.903 に答える