]> git.jsancho.org Git - gacela.git/blobdiff - src/gacela.scm
Gacela as Guile modules.
[gacela.git] / src / gacela.scm
index f8dcaf45e75647534045ad9946a4d52f9a62cccc..bfb4d123d47a9d896bb4cdc8d9c615845f5bacc6 100644 (file)
 
 (define set-frames-per-second #f)
 (define init-frame-time #f)
+(define get-frame-time #f)
 (define delay-frame #f)
 
 (let ((time 0) (time-per-frame (/ 1000.0 *frames-per-second*)))
        (lambda ()
          (set! time (SDL_GetTicks))))
 
+  (set! get-frame-time
+       (lambda ()
+         time))
+
   (set! delay-frame
        (lambda ()
          (let ((frame-time (- (SDL_GetTicks) time)))
 (define game-running? #f)
 (define set-game-code #f)
 
-(let ((running #f) (game-code #f) (mobs '()))
+(let ((running #f) (game-code #f))
   (set! game-loop
        (lambda ()
-         (set! mobs (get-active-mobs))
+         (refresh-active-mobs)
          (set! running #t)
          (quit! #f)
          (do () ((quit?))
                   (cond ((video-mode-on?)
                          (glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
                          (to-origin)))
-                  (cond ((mobs-changed?) (set! mobs (get-active-mobs))))
+                  (refresh-active-mobs)
                   (if (procedure? game-code)
                       (catch #t
                              (lambda () (game-code))
                              (lambda (key . args) #f)))
                   (cond ((video-mode-on?)
-                         (run-mobs mobs)
+                         (run-mobs)
                          (SDL_GL_SwapBuffers)))
                   (delay-frame))))
          (set! running #f)))