2016-05-17 5 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 * есть полотно, где есть графика игры.

Я ценю все ответы.

/Kasper

Edit:

Я получаю ошибку:

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

Это сработало :)! благодаря –

Смежные вопросы