乒乓球游戏,检测球是否出界



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

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就是问题所在,由于某种原因它不起作用。:(

代码闪烁。。。我忘了将stepScore置于"播放"状态。

相关内容

  • 没有找到相关文章

最新更新