0

我正在编写一个 cocos2d 代码,想要运行我在 res 文件夹中定义的第一个场景,并且必须对其执行 ontouch 事件。我已经编写了一个代码,但它给出了一个错误“g_resources not defined”

以下是发生错误的“main.js”文件的代码:

"use strict";
var cocos2dApp = cc.Application.extend({
    config : document.ccConfig,
    ctor : function(scene) {
        this._super();
        this.startScene = scene;
        cc.COCOS2D_DEBUG = this.config['COCOS2D_DEBUG'];
        cc.setup(this.config['tag']);
        cc.AppController.shareAppController().didFinishLaunchingWithOptions();
    },
    applicationDidFinishLaunching : function() {
        var that = this;
        // initialize director
        var director = cc.Director.getInstance();
        var resourceSize = cc.size(1024, 768);
        var designSize = cc.size(1024, 768);
        var policy = new cc.ResolutionPolicy(cc.ContainerStrategy.PROPORTION_TO_FRAME, cc.ContentStrategy.NO_BORDER);
          cc.EGLView.getInstance().setDesignResolutionSize(designSize.width,designSize.height,policy);

        cc.EGLView.getInstance().resizeWithBrowserSize(true);

//        director.setContentScaleFactor(2,2)
        // enable High Resource Mode(2x, such as iphone4) and maintains low
        // resource on other devices.
        // director->enableRetinaDisplay(true);

//        cc.setScaleX(0.5)
//        cc.setScaleY(0.5)

//        this.scale(0.5,0.5)

        // turn on display FPS
        director.setDisplayStats(this.config['showFPS']);

        // set FPS. the default value is 1.0/60 if you don't call this
        director.setAnimationInterval(1.0 / this.config['frameRate']);

        // create a scene. it's an autorelease object

        // load resources and run
        cc.LoaderScene.preload(g_resources, function() {
            var startSceneInstance = new that.startScene();
            director.replaceScene(startSceneInstance);
        });

        return true;
    }
});

var myApp = new cocos2dApp(helloworldScene);

我已将所有图像存储在“resource.js”中,变量名称与 g_resources 相同。我不知道为什么它会给出这个错误。任何人都可以帮助我解决这个问题

4

1 回答 1

1

您使用的是 Cocos2D-JS v3.0 (rc3) 吗?如果我没有大错特错,那代码看起来像是来自 v2.3。如果您刚开始,我强烈建议您从学习 3.0 开始。

现在,如果您真的希望继续使用 v2.3,您很可能需要进入您的cocos2d.js配置文件并查看appFiles并确保在任何包含代码的文件之前"src/resource.js"放置(或任何路径)这需要使用..jsg_resources

如果您使用的是 Cocos2D-JS v3.0 并且您的代码正常,但您遇到了该错误,您可以执行以下操作:检查您的project.json配置文件,查看"jsList"并确保"src/resource.js"已放置(或任何路径)在任何包含需要使用..jsg_resources

我可能弄错了,但是如果您一开始没有将浏览器置于严格模式下,则可能不需要严格的优先级"use strict";(也就是说,与使用严格模式的所有优点相比,我更喜欢这个小缺点) )。

如果问题是您正在使用 JSHint 并且您在编辑器中收到该错误,请确保将 a/*global g_resource*/放在您收到错误的文件的开头。

另一个解决方法是,也在文件的开头 write var g_resource = g_resource || []

于 2014-09-04T02:49:51.890 回答