File tree 4 files changed +31
-5
lines changed 4 files changed +31
-5
lines changed Original file line number Diff line number Diff line change 64
64
(recur new-score))))))
65
65
66
66
(defn titlescreen-thread []
67
- (go-while (not (is-pressed? :space ))
67
+ (go-while (and ( not (is-pressed? :space )) ( not ( state/touching? ) ))
68
68
(m/with-sprite canvas :ui
69
- [press-space (pf/make-text :small " Press Space to Start"
69
+ [press-space (pf/make-text :small " Press Space or Touch to Start"
70
70
:scale 2
71
71
:visible false
72
72
:y 150 )
Original file line number Diff line number Diff line change 2
2
(:require [goog.events :as events]
3
3
[goog.events.EventType :as event-type]
4
4
[infinitelives.utils.coordinates :refer [origin-top-left->center]]
5
- [baller.state :refer [set-mouse-position!]]))
5
+ [baller.state :refer [set-mouse-position! set-touch-status!]]))
6
+
7
+ ; Handlers
6
8
7
9
(defn mouse-move-handler [event]
8
10
(set-mouse-position!
9
11
(origin-top-left->center (.-clientX event) (.-clientY event))))
10
12
13
+ (defn touch-status-handler [status event]
14
+ (set-touch-status! status))
15
+
16
+ ; Listeners
17
+
11
18
(defn mouse-listener []
12
19
(events/listen js/window event-type/MOUSEMOVE mouse-move-handler))
20
+
21
+ (defn touch-listener []
22
+ (events/listen js/window event-type/TOUCHMOVE mouse-move-handler))
23
+
24
+ (defn touch-start-listener []
25
+ (events/listen js/window event-type/TOUCHSTART (partial touch-status-handler true )))
26
+
27
+ (defn touch-end-listener []
28
+ (events/listen js/window event-type/TOUCHEND (partial touch-status-handler false )))
Original file line number Diff line number Diff line change 5
5
[cljs.core.async :refer [<!]]
6
6
[goog.events :as events]
7
7
[goog.events.EventType :as event-type]
8
- [baller.events :refer [mouse-listener] ]
8
+ [baller.events :as e ]
9
9
[baller.canvas :refer [canvas]])
10
10
(:require-macros [cljs.core.async.macros :refer [go]]
11
11
[infinitelives.pixi.pixelfont :as pf]))
27
27
(t/set-texture! :ball (r/get-texture :ball :nearest )))
28
28
29
29
(defn handlers []
30
- (mouse-listener ))
30
+ (e/mouse-listener )
31
+ (e/touch-listener )
32
+ (e/touch-start-listener )
33
+ (e/touch-end-listener ))
Original file line number Diff line number Diff line change 7
7
:bounces 0
8
8
:bounce-protection 0
9
9
:playing false
10
+ :touch-status false
10
11
:mouse {:x 9999 :y 9999 }})
11
12
12
13
(defonce game-state (atom default-state ))
37
38
(defn set-gravity! [gravity]
38
39
(swap! game-state assoc :gravity gravity))
39
40
41
+ (defn set-touch-status! [status]
42
+ (swap! game-state assoc :touch-status status))
43
+
40
44
41
45
; State queries
42
46
54
58
55
59
(defn playing? []
56
60
(:playing @game-state))
61
+
62
+ (defn touching? []
63
+ (:touch-status @game-state))
You can’t perform that action at this time.
0 commit comments