Browse Source

try using a global Pong instance

Getty Ritter 4 years ago
parent
commit
2759f5ce1a
2 changed files with 9 additions and 8 deletions
  1. 1 1
      mode/end.fnl
  2. 8 7
      mode/main.fnl

+ 1 - 1
mode/end.fnl

@@ -10,7 +10,7 @@
   :update (fn update [dt set-mode])
 
   :keypressed (fn keypressed [key set-mode]
-    (when (= "y" key) (set-mode "mode.pong"))
+    (when (= "y" key) (set-mode "mode.main"))
     (when (= "n" key) (love.event.quit)))
 
   :draw (fn draw [m]

+ 8 - 7
mode/main.fnl

@@ -12,7 +12,8 @@
 ;;       (and (< (- w 20) state.x)
 ;;            (< state.right state.y) (< state.y (+ state.right 100)))))
 
-(local Pong {})
+(global Pong {})
+(set Pong.__index Pong)
 
 (fn Pong.new [cls]
   (let [t {:x 100 :y 100
@@ -34,23 +35,23 @@
  :name "pong"
 
  :init (fn init []
-         (set pong (Pong:new)))
+         (global pong (: Pong :new)))
 
  :update (fn update [dt set-mode]
            (when (not pong.pause)
-             (set pong.x (+ pong.x (* pong.dx dt ball-speed)))
-             (set pong.y (+ pong.y (* pong.dy dt ball-speed)))
+             (set pong.x (+ pong.x (* pong.dx dt pong.ball-speed)))
+             (set pong.y (+ pong.y (* pong.dy dt pong.ball-speed)))
              (each [key action (pairs keys)]
                (let [[player dir] action]
                  (when (love.keyboard.isDown key)
-                   (tset state player (+ (. state player) (* dir speed))))))
+                   (tset pong player (+ (. pong player) (* dir pong.speed))))))
 
              (when (or
                      (< pong.y 0)
                      (> pong.y h))
                (set pong.dy (- 0 pong.dy)))
 
-             (when (pong.on-paddle?)
+             (when (: pong :on-paddle?)
                (set pong.dx (- 0 pong.dx)))
 
              (when (< pong.x 0)
@@ -67,6 +68,6 @@
            (love.graphics.rectangle "fill" 10 pong.left 10 100)
            (love.graphics.rectangle "fill" (- w 20) pong.right 10 100)
            (love.graphics.circle "fill" pong.x pong.y 10))
-         (when (pong.pause)
+         (when pong.pause
            (love.graphics.printf "Press 'p' to unpause" 0 (/ h 3) w "center")))
  }