diff options
author | Gene Pasquet <dev@etenil.net> | 2024-05-26 12:15:54 +0100 |
---|---|---|
committer | Gene Pasquet <dev@etenil.net> | 2024-05-26 12:15:54 +0100 |
commit | a2810e35feda4cd6138e020f6c89daf4aefef423 (patch) | |
tree | bc969dc4dfeb764d340f378f6f38ee5b990fa9e1 | |
parent | b90d133377c259d00477491d9a58319fece77f14 (diff) |
Create bundles
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | bundle.scm | 4 | ||||
-rw-r--r-- | turbo.scm | 49 |
4 files changed, 58 insertions, 2 deletions
@@ -46,4 +46,6 @@ flycheck_*.el # network security /network-security.data -*.kra
\ No newline at end of file +*.kra + +/*.tar.gz
\ No newline at end of file @@ -2,3 +2,6 @@ play: chickadee play -t turbo turbo.scm +.PHONY: bundle +bundle: + chickadee bundle diff --git a/bundle.scm b/bundle.scm new file mode 100644 index 0000000..6bb1054 --- /dev/null +++ b/bundle.scm @@ -0,0 +1,4 @@ +'((asset-directories . ("sprites" "sound" "fonts")) + (bundle-name . "turbo-racer-3000-1.0") + (code . "turbo.scm") + (launcher-name . "turbo-racer-3000")) @@ -1,12 +1,59 @@ (use-modules (chickadee graphics sprite) (chickadee) (chickadee graphics viewport) + (chickadee math vector) + (chickadee math rect) + (srfi srfi-9) (chickadee audio) (ice-9 pretty-print) (ice-9 format) - (turbo vehicles) (srfi srfi-1)) + +;;;; Vehicles module +(define vehicle-height 44) +(define vehicle-length 100) +(define vehicle-steering-speed 4.0) + +(define-record-type <vehicle> + (make-vehicle id sprite position speed active?) + vechicle? + (id vehicle-id) + (sprite vehicle-sprite) + (position vehicle-position set-vehicle-position!) + (speed vehicle-speed set-vehicle-speed!) + (active? vehicle-active? set-vehicle-active!)) + +(define (make-inactive-vehicle id tile initial-position) + (make-vehicle id tile initial-position 4 #f)) + +(define (vehicle-hitbox vehicle) + (rect (vec2-x (vehicle-position vehicle)) + (vec2-y (vehicle-position vehicle)) + vehicle-length + vehicle-height)) + +(define (vehicle-safety-distance? vehicle1 vehicle2) + (let ((vehicle1-x (vec2-x (vehicle-position vehicle1))) + (vehicle2-x (vec2-x (vehicle-position vehicle2)))) + (> (abs (- vehicle2-x vehicle1-x)) + (+ (* 3 vehicle-length))))) + +(define (vehicle-speed- vehicle1 vehicle2) + (- (vehicle-speed vehicle1) (vehicle-speed vehicle2))) + +(define (vehicle-move! vehicle translation) + (set-vehicle-position! + vehicle + (vec2+ (vehicle-position vehicle) translation))) + +(define (vehicle-inactive? vehicle) + (not (vehicle-active? vehicle))) + +(define (vehicle= vehicle1 vehicle2) + (= (vehicle-id vehicle1) (vehicle-id vehicle2))) +;;;; End vehicles module + ;;;; Constants and variables (define the-font (load-bitmap-font "fonts/thick_8x8.xml")) |