2016-05-17 186 views
1

我有一個學校項目在球拍創建一個版本的俄羅斯方塊,我必須 實現暫停/繼續按鈕,我卡上。我嘗試:球拍暫停/繼續按鈕,遊戲

(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 *是遊戲圖形發生的畫布。

我很欣賞所有的答案。

/卡斯帕

編輯:

的錯誤,我得到:

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

你得到哪些錯誤? – soegaard

+0

我在帖子的底部添加了錯誤,我的錯誤。 –

回答

1

問題是這樣的條款:

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

的回調需要考慮兩個參數:按鈕和事件。

試試這個:

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

它工作:)!謝謝 –