Skip to content

Instantly share code, notes, and snippets.

@Beyamor
Last active August 29, 2015 14:13
Show Gist options
  • Save Beyamor/bcb3af36b994bf5f8a15 to your computer and use it in GitHub Desktop.
Save Beyamor/bcb3af36b994bf5f8a15 to your computer and use it in GitHub Desktop.
(let [gravity 4
max-velocity 50]
(defrule gravity-pulls-things-down
:on :frame-entered
(r/do entities <- (r/get-in-scene :entities)
faller << (r/get-entities-with #{:velocity :gravity :hitbox})
(r/when (not (e/collides-with? entities
faller
:below))
(r/update-entity faller
(update-in faller [:velocity :y]
#(-> %
(+ gravity)
(min max-velocity)))))))
(defrule the-keyboard-jumps
:on :frame-entered
(r/do input <- (r/get-in-app :input)
(r/when (i/was-pressed? input :jump)
entities <- (r/get-in-scene :entities)
jumper << (r/get-entities-with #{:velocity :keyboard-jumper})
(r/when (e/collides-with? entities
jumper
:below)
(r/update-entity jumper
(update-in jumper [:velocity :y]
- (-> jumper :keyboard-jumper :speed)))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment