Advertisement
Guest User

Untitled

a guest
Mar 31st, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.43 KB | None | 0 0
  1. ;;Exercicio 2:
  2. ;;(make-obj-jogo tipo centro tamanho  velocidade)
  3. ;;tipo: dar um simbolo que represente o que sera desenhado(nave-espacial ou tiro ou monstro)
  4. ;;centro:posn( dar um posn que indica o centro do objeto
  5. ;;tamanho: dar um valor que sera o raio da hitbox do objeto
  6. ;;velocidade:posn(dar as informações Dx e Dy, considerando que ele saia da origem,
  7. ;;que representa o deslocamento do objeto na tela em uma unidade de tempo)
  8. ;;cria um objeto do jogo
  9. (define-struct obj-jogo(tipo centro tamanho vel) )
  10.  
  11. ;;exemplo:
  12. (define obj1 (make-obj-jogo 'nave-espacial  (make-posn 5 6) 10 (make-posn 10 20)))
  13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14.  
  15.  
  16.  
  17. ;;exercicio 3
  18. ;;dentro-da-tela?: posn obj-jogo -> Booleano
  19. ;;(define dentro-da-tela?( dimensoes obj-jogo)
  20. ;;verifica se o centro do objeto esta dentro dentro da tela
  21. ;;dim:posn( dar um posn com as informações de altura e de largura da tela, nessa ordem)
  22. ;;obj: dar o nome do objeto que se deseja testar
  23. ;; Exemplo: (dentro-da-tela? dimensao1 obj1)=>true
  24. ;;          (dentro-da-tela? dimensao2 obj1)=>false
  25.  
  26. (define (dentro-da-tela? dim obj)
  27.   (cond
  28.     [(and (>= (posn-y dim) (posn-y (obj-jogo-centro obj))) (>=(posn-x dim) (posn-x(obj-jogo-centro obj)))) true]
  29.     [else false]))
  30. ;;teste
  31. (define dimensao1 (make-posn  100 410))
  32. (define dimensao2 (make-posn  100 5))
  33.  
  34. (check-expect  (dentro-da-tela? dimensao1 obj1) true)
  35. (check-expect  (dentro-da-tela? dimensao2 obj1) false)
  36.  
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;; Exercicio 4
  39. ;; gera-tiro: posn simbolo=> obj-jogo
  40. ;; recebe as coordenadas da posição inicial,em forma de um posn, e um simbolo( o+++u 'N, para o norte, ou 'S , para o sul)
  41. ;; e gera um objeto dentro do jogo que tera tamanho e velocidade padrão, já definida pelo programador, e será do tipo tiro
  42. ;; Ex: (gera-tiro (make-posn 5 5) 'N=> (make-obj-jogo 'tiro (make-posn 5 5) 2 (make-posn 0 3))
  43. ;;     (gera-tiro (make-posn 8 7) 'S=> (make-obj-jogo 'tiro (make-posn 8 7) 2 (make-posn 0 -3))
  44. (define (gera-tiro pos-ini direção)
  45.   (cond
  46.   [(symbol=? direção 'N)
  47.   (make-obj-jogo 'tiro pos-ini 2 (make-posn 0 3))]  
  48.   [(symbol=? direção 'S)
  49.   (make-obj-jogo 'tiro pos-ini 2 (make-posn 0 -3))]  
  50.   ))
  51. (check-expect (gera-tiro (make-posn 5 5) 'N) (make-obj-jogo 'tiro (make-posn 5 5) 2 (make-posn 0 3)))
  52. (check-expect (gera-tiro (make-posn 8 7) 'S) (make-obj-jogo 'tiro (make-posn 8 7) 2 (make-posn 0 -3)))
  53.  
  54. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement