-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdriver.rkt
More file actions
92 lines (79 loc) · 1.93 KB
/
driver.rkt
File metadata and controls
92 lines (79 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#lang racket
(require lang/posn)
(require 2htdp/image)
(require 2htdp/universe)
(require racket_tanks )
;enemy tank
;find good guy()
; if good guy is near enemy be alerted
; head towards good guy
;make sure enemy is not in the way
; get location
; fire
(define ( randomMovement Enemies )
(map
(lamnda (bad)
;is enemy alive?
(if (eq? (bad 'alive?) #t)
;enemy is alive true: wait until time frame is finished
(if (eq? (bad 'clockRunning?) #t)
(cond (< (bad 'time?) 0) (bad 'stop) )
;if not choose a random acceptable time & speed .
(setTime_speed)
)
; enemy is dead
()'
)
)
Enemies
)
)
(define E-sprite (scale 2 (bitmap/file (build-path ImgDir "P1_tank.png"))))
(define (make-etank E-sprite pos angle pnum)
;include player class
(define (make-player E-sprite pos angle pnum))
(define clockRunning #f)
(define time 0)
(define alive #t)
(define health 5)
(define alert #f)
(lambda (mes)
(cond
((eq? mes 'alive?) alive)
((eq? mes 'clockRunning?) clockRunning)
((eq? mes 'health?) health)
((eq? mes 'time?) time)
((eq? mes 'die) (set! alive #f))
((eq? mes 'alive) (set! alive #t))
((eq? mes 'setTime) setTime)
((eq? mes 'start) start)
((eq? mes 'stop) stop)
((eq? obj 'damage) (set! damage (- damage 1)))
(else mes)
)
)
(define (setTime_speed)
(set! time (random 1 5)) ; dont forget to convert clock speeds to seconds
(set! speed (random 1 10)) ; should choose path directions from player class
)
(define (start clock)
(set! clockRunning #t)
(set! time clock)
)
(define (stop)
(set! clockRunning #f)
(set! time 0)
)
)
(define (CreateEnemies amount)
(if (< amount 1)
'()
(cons (make-etank E-sprite (cons (random 1 800) (random 1 900)) (random 0 360) 0) (CreateEnemies (- amount 1) ))
)
)
(define (amountOfenemies level)
(if (= level 0 )
(amountOfenemies 1)
(* level 10)
)
)