Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;Exercicio 2:
- ;;(make-obj-jogo tipo centro tamanho velocidade)
- ;;tipo: dar um simbolo que represente o que sera desenhado(nave-espacial ou tiro ou monstro)
- ;;centro:posn( dar um posn que indica o centro do objeto
- ;;tamanho: dar um valor que sera o raio da hitbox do objeto
- ;;velocidade:posn(dar as informações Dx e Dy, considerando que ele saia da origem,
- ;;que representa o deslocamento do objeto na tela em uma unidade de tempo)
- ;;cria um objeto do jogo
- (define-struct obj-jogo(tipo centro tamanho vel) )
- ;;exemplo:
- (define obj1 (make-obj-jogo 'nave-espacial (make-posn 5 6) 10 (make-posn 10 20)))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;exercicio 3
- ;;dentro-da-tela?: posn obj-jogo -> Booleano
- ;;(define dentro-da-tela?( dimensoes obj-jogo)
- ;;verifica se o centro do objeto esta dentro dentro da tela
- ;;dim:posn( dar um posn com as informações de altura e de largura da tela, nessa ordem)
- ;;obj: dar o nome do objeto que se deseja testar
- ;; Exemplo: (dentro-da-tela? dimensao1 obj1)=>true
- ;; (dentro-da-tela? dimensao2 obj1)=>false
- (define (dentro-da-tela? dim obj)
- (cond
- [(and (>= (posn-y dim) (posn-y (obj-jogo-centro obj))) (>=(posn-x dim) (posn-x(obj-jogo-centro obj)))) true]
- [else false]))
- ;;teste
- (define dimensao1 (make-posn 100 410))
- (define dimensao2 (make-posn 100 5))
- (check-expect (dentro-da-tela? dimensao1 obj1) true)
- (check-expect (dentro-da-tela? dimensao2 obj1) false)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Exercicio 4
- ;; gera-tiro: posn simbolo=> obj-jogo
- ;; 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)
- ;; e gera um objeto dentro do jogo que tera tamanho e velocidade padrão, já definida pelo programador, e será do tipo tiro
- ;; Ex: (gera-tiro (make-posn 5 5) 'N=> (make-obj-jogo 'tiro (make-posn 5 5) 2 (make-posn 0 3))
- ;; (gera-tiro (make-posn 8 7) 'S=> (make-obj-jogo 'tiro (make-posn 8 7) 2 (make-posn 0 -3))
- (define (gera-tiro pos-ini direção)
- (cond
- [(symbol=? direção 'N)
- (make-obj-jogo 'tiro pos-ini 2 (make-posn 0 3))]
- [(symbol=? direção 'S)
- (make-obj-jogo 'tiro pos-ini 2 (make-posn 0 -3))]
- ))
- (check-expect (gera-tiro (make-posn 5 5) 'N) (make-obj-jogo 'tiro (make-posn 5 5) 2 (make-posn 0 3)))
- (check-expect (gera-tiro (make-posn 8 7) 'S) (make-obj-jogo 'tiro (make-posn 8 7) 2 (make-posn 0 -3)))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement