0

我正在学习一组教程,但遇到了一个我无法弄清楚的错误......

我知道这可能是我失明了,因为我懒惰地使用带有红色下划线的 IDE 来表示语法错误,但我有点需要尽快完成!

错误是 TypeError: Tetris.boundingBoxConfig is undefined file:///C:/Users/Timmy/Documents/Emergent%20Tech/Tetris/js/tetris.js Line 127

在这里我定义了 Tetris.boundingBoxConfig

var boundingBoxConfig = {
    width: 360,
    height: 360,
    depth: 1200,
    splitX: 6,
    splitY: 6,
    splitZ: 20
  };

  Tetris.boundingBoxConfig = boundingBoxConfig;

这是第127行

mesh.position.x = (x - Tetris.boundingBoxConfig.splitX/2)*Tetris.blockSize + Tetris.blockSize/2;

如果您需要更多代码,请告诉我,我将进行编辑。任何帮助将非常感激!请只提出建设性的批评

编辑俄罗斯方块对象的定义

var Tetris = {};

有第二种建议的方法是这样的:

window.Tetris = window.Tetris || {};

但我真的不明白这种方式是如何工作的

编辑 2

不确定这是否有助于澄清问题

var boundingBox = new THREE.Mesh(
  new THREE.CubeGeometry(
    boundingBoxConfig.width, boundingBoxConfig.height, boundingBoxConfig.depth, 
    boundingBoxConfig.splitX, boundingBoxConfig.splitY,         boundingBoxConfig.splitZ), 
  new THREE.MeshBasicMaterial( { color: 0xffaa00, wireframe: true } )
);
Tetris.scene.add(boundingBox);
4

3 回答 3

0

在你的俄罗斯方块函数中,尝试改变

Tetris.boundingBoxConfig = boundingBoxConfig;

this.boundingBoxConfig = { //your definition };

以便您的财产公开。

于 2013-08-13T15:45:52.740 回答
0

原来这是因为我在 Firefox 中使用了本地文件。我知道 Chrome 在从本地磁盘加载文件时存在安全问题,因此使用 Firefox 认为由于其他项目正在运行而没有类似的问题。我错了。

教训:永远不要使用本地文件总是使用服务器。

于 2013-08-14T08:42:05.993 回答
-1

您能否包括您定义“俄罗斯方块”对象的代码?(即 var Tetris blah blah blah)

于 2013-08-13T14:46:53.477 回答