2016-09-22 3 views
0

Мне нужно сделать функцию, которая будет отображать изображение под другим изображением, только если булевский огонь? является #trueRacket image render

вот мой код:

(define (render-rocket-fire RocketState FIRE) 
    (cond 
    [(or (rocket-state-fire? #true)) 
    (place-image FIRE 
      (rocket-state-pos-x RocketState) 
      (+ FIRE-SKIP (rocket-state-pos-y RocketState)) 
      SCENE-WIDTH SCENE-HEIGHT)) 

    [else (

Я запутался, что положить в другой, чтобы сделать это так, чтобы изображение не отображается

ответ

0

Очерк процедуры, которая условно комбинаты два изображения, основанные на значении третьего аргумента.

(define (maybe-combine-images image1 image2 my-boolean) 
    (if myboolean 
    (under image1 image2) 
    image1))) 

if может быть переписан с использованием «двуногий» cond:

(define (maybe-combine-images image1 image2 my-boolean) 
    (cond 
    [myboolean (under image1 image2)] 
    [else image1])) 
2

Это очень хороший вопрос, и выяснить это поможет вам изменить ваш мозг в очень важном пути ,

Что вам действительно нужно сделать, так это проконсультироваться со своими тестовыми случаями. Или, если вы не создали этот тестовый пример, напишите его. В частности: напишите тестовый пример, который вызывает рендер-ракетный огонь с RocketState, где «огонь»? поле false. Каким должен быть результат? Ответ - это то, что должно идти в поле «else».