1

所以我有两个变量。

一个是ammo,另一个是ammoAvailable

当用户左键单击时,ammo减 1,但永远不能超过 0。

当用户右键单击时,ammoAvailable减少 50(如果不可用,则减少)并ammo增加相同的数量。

在 Javascript 中处理这种变量关系的最优雅的方法是什么,这样就不会创建额外的弹药,也不会使变量低于 0?

例子:

@ammo = 0
@ammoAvailable = 500

userClick = =>
  if @ammoAvailable >= 50
    @ammo += 50
    @ammoAvailable -= 50
  else
    @ammo += @ammoAvailable
    @ammoAvailable = 0

我怎样才能更雄辩,更短地做到这一点?

4

1 回答 1

2

我的看法:

“当用户左键单击时,ammo减 1,但永远不能超过 0。”

leftClick = =>
  @ammo-- if @ammo

“当用户右键单击时,ammoAvailable减少 50(如果不可用,则减少)并ammo增加相同的数量。”

rightClick = =>
  reloadAmmo = Math.min @ammoAvailable, 50
  @ammo += reloadAmmo
  @availableAmmo -= reloadAmmo
于 2013-06-04T22:02:57.410 回答