2013-01-21 1 views
1

Donc j'essaye de faire un programme qui pousse l'image "HI" en utilisant big-bang. Je l'ai placé au centre de la toile. Je veux que la taille du texte commence à 1 et cesse de croître quand la taille atteindra 80. J'ai ajouté le sur-tick mais il ne commencera toujours pas à 1 et grandira. Des idées sur ce que je fais mal?en utilisant big-bang et sur-tick

edit-

(require 2htdp/image) 
    (require 2htdp/universe) 

    (define word "HELLO WORLD") 

    (define (draw-world world) 
     (place-image (text word world "olive") 
        240 210 
        (empty-scene 500 300))) 


     (define (next t) 
    (cond [(>= (draw-world t) 80) t] 
     [else (+ t 1)])) 

    (big-bang 1 
       (on-tick add1) 
       (to-draw draw-world) 
       (stop-when zero?)) 

Répondre

1

Il y a quelques choses. Le plus important est dans draw-world où vous dessinez un texte de taille 11. Si vous dessinez à la place un texte de taille world alors votre texte aura la même taille que le monde actuel. Après avoir corrigé ce bug, vous remarquerez immédiatement la prochaine chose à corriger.

Mise à jour:

(define (stop? a-world) 
    (<= a-world 80)) 
+0

J'ai eu à travailler. Tout ce que je dois faire maintenant, c'est de cesser de croître quand il atteint la taille du texte de 80. Je suppose que je dois changer la dernière partie du big-bang. Des idées? –

+0

quelqu'un avec un indice? –

+2

Êtes-vous dans Fundies 1 par hasard? @JerryLynch –

0

Vous pouvez le faire de cette façon:

(require 2htdp/image) 
(require 2htdp/universe) 

(define WORD "HELLO WORLD") 

(define (main x) 
    (big-bang x 
      (on-tick next)  ; World -> World 
      (to-draw draw-world) ; World -> Image 
      (stop-when stop?))) ; World -> Boolean 


; World -> World 
; Gives the next world 
(define (next world) 
    (cond [(>= world 80) world] 
     [else (+ world 1)])) 

; World -> Image 
; Draw the current world 
(define (draw-world world) 
    (place-image (text WORD world "olive") 
       240 210 
       (empty-scene 500 300))) 

; World -> Boolean 
; Check if this is the last world 
(define (stop? world) 
    (= world 80)) 

(main 1)