游戏

时间:2016-05-17 16:20:13

标签: button canvas racket pause

我有一个学校项目,用球拍创建一个俄罗斯方块版本,我必须这样做 实现一个我停下来的暂停/继续按钮..我的尝试:

(define *my-timer*
  (new timer%
       [notify-callback (lambda () (send *my-game-canvas* refresh))]))

(define *pause*
  (new button%
       [parent *my-window*]
       [label "Pause"]
       [callback (lambda ()
                   (send *my-timer* stop))]))

目前只实现了暂停功能,但它不起作用。我在第二个定义上收到错误消息。

* my-game-canvas *是游戏画面发生的画布。

我很欣赏所有答案。

/ Kasper

编辑:

我得到的错误:

initialization for button%: contract violation
  expected: (procedure-arity-includes/c 2)
  given: #<procedure:...0160511/game.rkt:61:17>

1 个答案:

答案 0 :(得分:1)

问题在于这个条款:

   [callback (lambda ()
               (send *my-timer* stop))]

回调需要带两个参数:按钮和事件。

试试这个:

   [callback (lambda (button event)
               (send *my-timer* stop))]