这可能是一个愚蠢的问题,但我对编程完全陌生。我在“如何设计程序”(第 2 版)中接近序言的底部,您需要对 DrRacket 中的“火箭着陆”程序进行 4 项更改。
我被困在第四个,特别是粗体部分:
您将如何更改程序,使火箭降落在比场景底部高 10 像素的平坦岩床上?也别忘了换风景。
; constants
(define WIDTH 200)
(define HEIGHT 400)
(define SCENE-CENTER (/ WIDTH 2))
(define MTSCN (empty-scene WIDTH HEIGHT "blue"))
(define ROCKET (overlay (circle 10 "solid" "green")
(rectangle 40 4 "solid" "green")))
(define ROCKET-CENTER-TO-TOP
(- (- HEIGHT 10) (/ (image-height ROCKET)2)))
;functions
(define (picture-of-rocket.v2 h)
(cond
[(<= h ROCKET-CENTER-TO-TOP)
(place-image ROCKET SCENE-CENTER h MTSCN)]
[(> h ROCKET-CENTER-TO-TOP)
(place-image ROCKET SCENE-CENTER ROCKET-CENTER-TO-TOP MTSCN)]))
(animate picture-of-rocket.v2)
我的火箭(不明飞行物)正在做第一部分,从底部停止 10 像素,但我不确定如何使用我目前学到的命令在底部绘制岩床。我是否在底部(覆盖)一个 10 像素的矩形?还是作者只是将场景背景更改为灰色?