platform-but-no-platforms-poc.fnl
#739
- Author
- winny
- Created
- May 1, 2023, 2:38 a.m.
- Expires
- Never
- Size
- 2.1Â KB
- Hits
- 65
- Syntax
- Fennel
- Private
- â No
;; title: platform PoC
;; author: game developer, email, etc.
;; desc: short description
;; site: website link
;; license: MIT License (change this to your license of choice)
;; version: 0.1
;; script: fennel
;; strict: true
(var UP 0)
(var DOWN 1)
(var LEFT 2)
(var RIGHT 3)
(var PLATFORM-THICKNESS 3)
(var FLOOR-Y 125)
(var FLOOR-COLOR 3)
(var BG 1)
(var AVATAR-SIZE 4)
(var AVATAR-COLOR 5)
(var pos-x 120)
(var pos-y 20)
(var jumping 0)
(var double-jump false)
(fn jumpingp []
(and jumping (> jumping 0)))
;; Is the avator airborne?
(fn airbornep []
(< pos-y (- FLOOR-Y AVATAR-SIZE)))
(fn move [dx dy]
(set pos-x (math.min (- 240 AVATAR-SIZE) (math.max 0 (+ dx pos-x))))
(set pos-y (math.min (- FLOOR-Y AVATAR-SIZE) (math.max 0 (+ dy pos-y)))))
(fn _G.TIC []
(when (btn RIGHT) (move 1 0))
(when (btn LEFT) (move -1 0))
(when (and (btnp UP) (not double-jump))
(when (airbornep)
(set double-jump true))
(set jumping (+ jumping 4)))
(if (jumpingp)
(do
(move 0 (- (* 1.5 AVATAR-SIZE)))
(set jumping (- jumping 1)))
(if (airbornep)
(move 0 .8)
(set double-jump false)))
(cls BG)
(rect 0 FLOOR-Y 240 PLATFORM-THICKNESS FLOOR-COLOR)
(rect pos-x pos-y AVATAR-SIZE AVATAR-SIZE AVATAR-COLOR))
;; <TILES>
;; 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc
;; 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c
;; 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc
;; 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c
;; 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
;; 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
;; 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
;; 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
;; </TILES>
;; <TRACKS>
;; 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
;; </TRACKS>
;; <PALETTE>
;; 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
;; </PALETTE>