big-bang
只存储一条信息,通常称为“世界状态”。所有与 一起使用的函数big-bang
,例如您的绘图函数、刻度处理程序等,都必须接受该世界状态作为单个参数。
由你决定在你的世界状态中存储什么。如果你想存储两个位置(每个桨一个),列表或结构是要走的路。例如,下面是您可以如何定义一个名为的结构world
,它可以同时保持两个位置。
; Create a type called `world` that holds two locations.
(define-struct world [paddle1 paddle2])
; Create a variable to store the initial state of the world.
(define initial-world (make-world (make-posn 0 100) (make-posn 300 100)))
当您编写绘图函数时,它必须一次接受整个世界状态:
(define (draw-game world)
(place-image
paddle1
(posn-x (world-paddle1 world))
(posn-y (world-paddle1 world))
(place-image
paddle2
(posn-x (world-paddle2 world))
(posn-y (world-paddle2 world))
BACKGROUND)))
在您的big-bang
中,将世界状态视为任何其他类型的数据:
(big-bang
initial-world
[to-draw draw-game])