乒乓球比赛,检测球是否超出界限

时间:2013-08-11 11:54:20

标签: haskell pong frp kubernetes-helm

我正在写一个乒乓球游戏,我需要一些游戏逻辑方面的帮助。我的问题是,当我检测到球是否在地图之外时我遇到了麻烦,这导致球刚出界并没有得分。目前它的工作原理如下:

stepScore :: State -> State
stepScore s
  | s^.ball.pos.x <= 15 = resetGame $ score.right +~ 1 $ s
  | s^.ball.pos.x >= 585 = resetGame $ score.left +~ 1 $ s
  | otherwise = s

常数的原因是游戏尺寸为600x400,球的宽度为15像素,位置在核心位置。 resetGame的工作原理如下:

resetGame :: State -> State
resetGame s = ball.pos.y .~ 200 $ ball.pos.x .~ 300 $ state .~ Pause $ s

但不知何故,由于某种原因这不起作用。球仍然离开地图,游戏基本上已经破裂。

所以,我的问题如下;我怎么能写这个,所以它的工作原理,基本上,所以当球超出界限时,游戏重置和得分是按照预期给予每个玩家的?完整的源代码在这里http://lpaste.net/91745,其中上面的代码在第107到114行定义,并在第118行使用。

我很感激帮助,谢谢。

编辑:我在stepScore中尝试了不同的常量,而stepScore是问题所在,由于某些原因它不起作用。 :(

1 个答案:

答案 0 :(得分:1)

代码失明......我忘了将stepScore置于'Play'状态。