|
@@ -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")))
|
|
|
}
|