Return 来自 CoffeeScript 函数的对象
Return an object from a function in CoffeeScript
我正在编写一段代码,应该为 3D 场景设置动画。我使用 类 和函数在代码中整齐地构建了 3D 场景。这本身就是一个文本输出的东西。
从逻辑上讲,它不需要只吐出文本。 Threejs 库应该与我构建的内容交互。
我想做这样的事情,例如:
class Tile extends SuperSpace
height: 2
sideLength: 10
class Plain extends Tile
constructor: ( { @color = 'lightgreen', @height = @height, @heightPlacement = 2 } = {} ) ->
console.log """
New plain:
color: '#{@color}'
sideLength: #{@sideLength}
height: #{@height}
heightPlacement: #{@heightPlacement}
"""
mesh: ->
geometry = new THREE.BoxGeometry 10/10, 2/10, 10/10
material = new THREE.MeshBasicMaterial { color: 0x22ff22 }
cube = new THREE.Mesh geometry, material
return cube
并在场景中简单地这样调用它:
scene.add plain.mesh
这只不过是对文档中现有示例的修改。 plain.mesh
应该是返回的 cube
不知何故,对象没有进入低谷。我要么得到 undefined
,要么在控制台中得到我的整个功能:
function () {
var cube, geometry, material;
geometry = new THREE.BoxGeometry(10 / 10, 2 / 10, 10 / 10);
material = new THREE.MeshBasicMaterial({
color: 0x22ff22
});
cube …
很难令人满意。有什么建议吗?
这个有效:
class Tile extends SuperSpace
height: 2
sideLength: 10
class Plain extends Tile
constructor: ( { @color = 'lightgreen', @height = @height, @heightPlacement = 2 } = {} ) ->
console.log """
New plain:
color: '#{@color}'
sideLength: #{@sideLength}
height: #{@height}
heightPlacement: #{@heightPlacement}
"""
mesh: ->
geometry = new THREE.BoxGeometry 10/10, 2/10, 10/10
material = new THREE.MeshBasicMaterial { color: 0x22ff22 }
cube = new THREE.Mesh geometry, material
return cube
plain = new Plain()
console.log plain.mesh()
我正在编写一段代码,应该为 3D 场景设置动画。我使用 类 和函数在代码中整齐地构建了 3D 场景。这本身就是一个文本输出的东西。
从逻辑上讲,它不需要只吐出文本。 Threejs 库应该与我构建的内容交互。
我想做这样的事情,例如:
class Tile extends SuperSpace
height: 2
sideLength: 10
class Plain extends Tile
constructor: ( { @color = 'lightgreen', @height = @height, @heightPlacement = 2 } = {} ) ->
console.log """
New plain:
color: '#{@color}'
sideLength: #{@sideLength}
height: #{@height}
heightPlacement: #{@heightPlacement}
"""
mesh: ->
geometry = new THREE.BoxGeometry 10/10, 2/10, 10/10
material = new THREE.MeshBasicMaterial { color: 0x22ff22 }
cube = new THREE.Mesh geometry, material
return cube
并在场景中简单地这样调用它:
scene.add plain.mesh
这只不过是对文档中现有示例的修改。 plain.mesh
应该是返回的 cube
不知何故,对象没有进入低谷。我要么得到 undefined
,要么在控制台中得到我的整个功能:
function () {
var cube, geometry, material;
geometry = new THREE.BoxGeometry(10 / 10, 2 / 10, 10 / 10);
material = new THREE.MeshBasicMaterial({
color: 0x22ff22
});
cube …
很难令人满意。有什么建议吗?
这个有效:
class Tile extends SuperSpace
height: 2
sideLength: 10
class Plain extends Tile
constructor: ( { @color = 'lightgreen', @height = @height, @heightPlacement = 2 } = {} ) ->
console.log """
New plain:
color: '#{@color}'
sideLength: #{@sideLength}
height: #{@height}
heightPlacement: #{@heightPlacement}
"""
mesh: ->
geometry = new THREE.BoxGeometry 10/10, 2/10, 10/10
material = new THREE.MeshBasicMaterial { color: 0x22ff22 }
cube = new THREE.Mesh geometry, material
return cube
plain = new Plain()
console.log plain.mesh()