aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2024-05-26 12:15:54 +0100
committerGene Pasquet <dev@etenil.net>2024-05-26 12:15:54 +0100
commita2810e35feda4cd6138e020f6c89daf4aefef423 (patch)
treebc969dc4dfeb764d340f378f6f38ee5b990fa9e1
parentb90d133377c259d00477491d9a58319fece77f14 (diff)
Create bundles
-rw-r--r--.gitignore4
-rw-r--r--Makefile3
-rw-r--r--bundle.scm4
-rw-r--r--turbo.scm49
4 files changed, 58 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 8a4cbb7..29e40ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/Makefile b/Makefile
index 2b9967f..e1dc26c 100644
--- a/Makefile
+++ b/Makefile
@@ -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"))
diff --git a/turbo.scm b/turbo.scm
index f2b5b07..2a9f3d3 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -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"))