diff options
Diffstat (limited to 'lisparuga/actor.scm')
-rw-r--r-- | lisparuga/actor.scm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lisparuga/actor.scm b/lisparuga/actor.scm index 5439e6b..625a2a1 100644 --- a/lisparuga/actor.scm +++ b/lisparuga/actor.scm @@ -93,7 +93,7 @@ (world-hitboxes #:accessor world-hitboxes #:init-form '()) (bullet-field #:accessor bullet-field #:init-keyword #:bullet-field)) -(define (sync-hitboxes actor) +(define-method (sync-hitboxes (actor <actor>)) ;; Sync hitboxes to world coordinates. (let ((pos (position actor))) (for-each (lambda (world-hitbox) @@ -106,6 +106,14 @@ (map make-world-hitbox (hitboxes actor))) (sync-hitboxes actor)) +(define-method (move-to (actor <actor>) x y) + (next-method) + (sync-hitboxes actor)) + +(define-method (teleport (actor <actor>) x y) + (next-method) + (sync-hitboxes actor)) + (define-method (update (actor <actor>) dt) (let ((v (velocity actor))) (unless (and (= (vec2-x v) 0.0) |