2

这可能是非常基本的东西,但我被卡住了,有点无能为力。

我最近在 CoffeeScript 中编写了一个 Snake 游戏,但我对构建代码的方式一点也不满意。

我正在尝试使用类重写它。我有一个游戏课、一个蛇课、一个食物课。在我看来这样做是有道理的。但是,为了访问变量和函数,我使用了 '@' (this) 关键字,我觉得我完全做得过火了。例如,我的 Game 类顶部有一个常量列表。我必须将它们全部声明为@CONSTANT能够访问它们。或者,在方法内部:

clearCanvas: ->
    @ctx.clearRect 0, 0, @canvas.width, @canvas.height

方法调用也是如此。例如:

init: ->
    window.snake = new Snake()
    @showStartScreen()

有人可以告诉我这是否可以,或者我应该如何构建我的代码?如果有人愿意为我审查它,我可以将链接指向我目前正在使用的代码。(编辑:实际上在这里

非常感谢。

4

2 回答 2

5

如果您使用的是 CoffeeScript 类,您将大量使用@. 对象上的任何属性都必须通过@或访问this。以下是您应该如何使用常量:

class Game
  up:     1
  right:  2
  down:   4
  left:   8

  someMethod: ->
    console.log @up, @right, @down, @left

console.log "Class accessible #{Game::up}"

g = new Game
console.log "Object accessinble #{g.up}"

g.someMethod()

另外,@thejh 是对的。您应该使用 2 个空间宽度的软标签。

于 2011-11-24T21:06:51.097 回答
2

除了制表符(您应该改用空格)之外,它对我来说看起来不错。哦,最后一行的分号不应该在那里。:)

于 2011-11-24T21:07:16.247 回答