我正在尝试使用Hexi(一个JS游戏引擎)重新创建超级Mario兄弟1-1级。

我的问题是JavaScript本身。

我声明了要在游戏中使用的几个全局变量

var marioStats = {
'startingPos':[g.canvas.width / 8, 185],
'lives': 3,
'currentPos':[g.canvas.width / 8, 185],
'checkPointPos':[g.canvas.width / 8, 185],
 };  
 var spritesResources = ['resources/graphics/item_objects.png',
                    'resources/graphics/smb_enemies_sheet.png',
                    'resources/graphics/tile_set.png',
                    ];

 var spritesFrames = { 'simpleBlock': [g.frame(spritesResources[2], 15,1, 17,13)],
                    'coinBlock': [g.frame(spritesResources[0], 1,80, 14,14)],
                    'usedBlock': [g.frame(spritesResources[2], 48,1, 14,14)],
                    'gumba': [g.frame(spritesResources[1], 0,4, 15,15)],
                    'koopa': [g.frame(spritesResources[1], 90,1, 14,22)],
                  };

var levelLayout = {
'META': {
  'checkPoints': [],
  'renderArea': 0,
  'horizontalPos': 0,
},

0: [ ['simpleBlock', spritesFrames['simpleBlock'][0], [g.canvas.width /2, g.canvas.height /4]]

],

1: [

],

2: [

],
}; 

现在河西是这样的:

var g = hexi(255, 223, levelSetup, thingsToLoad, load);
g.start();

加载对象的“ thingsToLoad”数组后,河西将运行“ levelSetup”

我可以在levelSetup中访问marioStats和sepriteResources,但是当我尝试访问spritesFrames或levelLayout时,它给我未定义的信息

   function levelSetup() {
        decors.visible = false;
        var level11 = g.group();

        var gameMusic = g.sound('resources/music/main_theme.ogg');
        gameMusic.play();

        var lvlbg = g.sprite("resources/graphics/level_1.png");
        level11.addChild(lvlbg);

        var lvlBlocks = [], lvlEnemies = []; // hold the blocks and enemies of the level to perform collesion on them

        renderLvlSprite(levelLayout[0], lvlBlocks, level11); // this line doesn't work since levelLayout is undefined

        g.state = levelPlay;
    }

我在这里做错了什么?

spriteResources下面的所有变量均未定义!

  ask by fahadJ translate from so

本文未有回复,本站智能推荐:

1回复

更新全局变量javascript/html[重复]

这个问题已经在这里有了答案: 在页面加载之间保持变量 4个答案 所以目前我正在建立一个网站,从谷歌电子表格中获取数据,然后将其绘制在我的网站上... 但是,由于此数据是不断从其他地方流式传输的,因此我每次必须能够在图形上显示10个数据点。 (因此显示10个数据点,然后显示
1回复

JavaScript中的全局变量不起作用?

我在JavaScript中有两个功能。 一个是change_BASE_ID() ,另一个是change_BASE_ID() Display_img(a,b) 。 在mouseclick上调用change_BASE_ID() ,并在内部调用Display_img() 。 鼠标悬停时,将调用
1回复

未定义全局变量[重复]

这个问题已经在这里有了答案: 如何从异步调用返回响应? 36个答案 我有一个函数(省略了所有不相关的部分),定义了一个全局变量window.playerLibrary 。 当我在函数本身中检查window.playerLibrary (`var check#1时,我得到一个
3回复

为什么定义的全局变量未定义?[复制]

这个问题在这里已经有了答案: '提升' JavaScript 变量(7 个回答) 6年前关闭。 我这里有一个简单的函数和一个全局变量。 为什么mynam
2回复

全局变量说未定义-js

我试图获取一些数据并将其存储在数组中。 当我这样做时,它可以正常工作并在$ .each内的$ .eachJSON中显示结果,但除此之外,表示数组元素未定义。 当我在$ .each内记录数组的长度时,它也表示为0。我什至更改了数组名称,但没有更改。 为什么这样表现呢? 谢谢!
1回复

JS全局变量读取未定义

我这样全局定义了变量产品ID 然后我将元素的点击ID分配给全局变量 我能够从上述日志中确认clickedID已添加到控制台的ProductID中。 现在,我想在新函数中使用相同的ProductID.value,但ProductID.value变为未定义。 我需要在其他函数中使用P
2回复

JavaScript-全局变量显示为未定义

关于这个话题有很多话题,但是我仍然找不到适合我的情况的答案... 这是我想要做的: 1)定义一个函数,以使用Google Maps API v3获取地理编码 2)使用有问题的地址调用该函数,以便获取该特定地址的地理编码 如果我放置该代码,可以很好地工作 后 由于我需要将其
2回复

JS全局变量作为未定义传递-jQuerymobile

我正在尝试连接2个js文件,但似乎无法将变量传递给它。 language.js文件: main.js文件: 这给了我:login_button:undefined 如何在第一个文件的函数中传递变量值? 如果我在获取json值的函数外部分配它,则它会正确传递,但函数内部的任何东西