summaryrefslogtreecommitdiffstats
path: root/five/ufo.rkt
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2020-07-03 15:49:09 -0400
committerrsiddharth <s@ricketyspace.net>2020-07-03 15:49:09 -0400
commit9d23e66fe8332abc7a1bbd9022f3e58e1133b3fb (patch)
tree5bf435cd979dcb785624d43c75f379ae684f97e3 /five/ufo.rkt
parent0f072be231d0bd875d1c87ff127834e60979263a (diff)
name directories like the realm repo.
Diffstat (limited to 'five/ufo.rkt')
-rw-r--r--five/ufo.rkt86
1 files changed, 0 insertions, 86 deletions
diff --git a/five/ufo.rkt b/five/ufo.rkt
deleted file mode 100644
index 6f8136c..0000000
--- a/five/ufo.rkt
+++ /dev/null
@@ -1,86 +0,0 @@
-#lang racket
-(require 2htdp/universe 2htdp/image)
-
-;;; world structure
-(struct ufo (x y fart))
-
-;;; constants
-(define WORLD-WIDTH 300)
-(define WORLD-HEIGHT 325)
-(define MOVE-LEN 3)
-(define UFO (bitmap/file "resources/zarking-ufo.png"))
-(define UFO-FART (bitmap/file "resources/ufo-fart.png"))
-(define UFO-WIDTH (image-width UFO))
-(define UFO-HEIGHT (image-height UFO))
-(define UFO-FART-HEIGHT (image-height UFO-FART))
-
-;;; ufo movement functions
-(define (ufo-move-up current-state)
- (let ((x (ufo-x current-state))
- (y-up (- (ufo-y current-state) MOVE-LEN))
- (fart #t))
- (cond [(>= y-up (+ (/ UFO-HEIGHT 2) (/ UFO-FART-HEIGHT 2)))
- (ufo x y-up fart)]
- [else current-state])))
-
-(define (ufo-move-down current-state)
- (let ((x (ufo-x current-state))
- (y-down (+ (ufo-y current-state) MOVE-LEN)))
- (cond [(<= y-down (- (+ WORLD-HEIGHT (/ UFO-FART-HEIGHT 2))
- (/ UFO-HEIGHT 2)))
- (ufo x y-down #t)]
- [else current-state])))
-
-
-(define (ufo-move-left current-state)
- (let ((x-left (- (ufo-x current-state) MOVE-LEN))
- (y (ufo-y current-state))
- (fart #t))
- (cond [(>= x-left (/ UFO-WIDTH 2))
- (ufo x-left y fart)]
- [else current-state])))
-
-(define (ufo-move-right current-state)
- (let ((x-right (+ (ufo-x current-state) MOVE-LEN))
- (y (ufo-y current-state))
- (fart #t))
- (cond [(<= x-right (- WORLD-WIDTH (/ UFO-WIDTH 2)))
- (ufo x-right y fart)]
- [else current-state])))
-
-
-;;; big bang functions
-(define (draw-a-ufo current-state)
- (place-image (overlay/align/offset
- "middle" "bottom" UFO 0 35
- (if (ufo-fart current-state)
- UFO-FART
- (circle 0 "outline" "white")))
- (ufo-x current-state)
- (ufo-y current-state)
- (empty-scene WORLD-WIDTH WORLD-HEIGHT)))
-
-(define (add-3-to-posy current-state)
- (ufo (ufo-x current-state)
- (+ (ufo-y current-state) 3)))
-
-(define (posy-is-300 current-state)
- (>= (ufo-y current-state) 300))
-
-(define (move-ufo current-state key)
- (cond [(key=? key "up") (ufo-move-up current-state)]
- [(key=? key "down") (ufo-move-down current-state)]
- [(key=? key "left") (ufo-move-left current-state)]
- [(key=? key "right") (ufo-move-right current-state)]
- [else current-state]))
-
-(define (ufo-stopped current-state key)
- (let ((fart #f))
- (ufo (ufo-x current-state) (ufo-y current-state) fart)))
-
-;;; the big bang
-(big-bang (ufo (/ WORLD-WIDTH 2) (/ WORLD-HEIGHT 2) #f)
- (to-draw draw-a-ufo)
- (on-key move-ufo)
- (on-release ufo-stopped))
-