Skip to content

Commit

Permalink
track game events and stats
Browse files Browse the repository at this point in the history
  • Loading branch information
Krzysztof Urbas committed Nov 30, 2013
1 parent ee26799 commit 8e24bc3
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 23 deletions.
52 changes: 35 additions & 17 deletions app/scripts/game.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 20 additions & 4 deletions app/scripts/game/init.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ window.Game =
# rest of init
@prepareAssets()
@initStats()
@initUnloadEvent()

# helpers
Q.tilePos = (col, row, otherParams = {}) ->
Expand Down Expand Up @@ -128,11 +129,11 @@ window.Game =
stats.setMode(0) # 0: fps, 1: ms

# Align top-left
stats.domElement.style.position = 'absolute'
stats.domElement.style.left = '0px'
stats.domElement.style.top = '140px'
# stats.domElement.style.position = 'absolute'
# stats.domElement.style.left = '0px'
# stats.domElement.style.top = '140px'

document.body.appendChild( stats.domElement )
# document.body.appendChild( stats.domElement )

stageLevel: (number = 1) ->
Q = @Q
Expand Down Expand Up @@ -170,6 +171,10 @@ window.Game =

stageLevelSelectScreen: ->
@Q.input.disableTouchControls()

# reset current level state
@Q.state.set "currentLevel", 0

@Q.clearStages()
@Q.stageScene "levelSelect"

Expand Down Expand Up @@ -206,6 +211,17 @@ window.Game =
minY: 0
maxY: Game.map.p.h

trackEvent: (category, action, label, value) ->
unless value?
# _gaq.push ['_trackEvent', category, action, label.toString()]
console.log('_gaq.push', category + ' | ', action + ' | ', label.toString())
else
# _gaq.push ['_trackEvent', category, action, label.toString(), parseInt(value, 10)]
console.log('_gaq.push', category + ' | ', action + ' | ', label.toString() + ' | ', parseInt(value, 10))

initUnloadEvent: ->
# window.addEventListener "beforeunload", (e) ->
# Game.trackEvent("Unload", "Current Page", "")

# init game
Game.init()
4 changes: 2 additions & 2 deletions app/scripts/game/scenes/end.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ Q.scene "end", (stage) ->
button.on "click", (e) ->
Game.stageLevelSelectScreen()

# reset current level state
Q.state.set "currentLevel", 0
# track events
Game.trackEvent("End Screen", "displayed", true)
3 changes: 3 additions & 0 deletions app/scripts/game/scenes/game_over.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@ Q.scene "gameOver", (stage) ->

button.on "click", (e) ->
Game.stageLevelSelectScreen()

# track events
Game.trackEvent("Game Over Screen", "displayed", true)
10 changes: 10 additions & 0 deletions app/scripts/game/scenes/level_summary.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,13 @@ Q.scene "levelSummary", (stage) ->

x += scoreImg.p.w + 20


# track events
Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "score", score)
Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "stars", stars)

Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "Zombie Mode", stage.options.zombieModeFound)
Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "Health collected", stage.options.health.collected + "/" + stage.options.health.available)
Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "Zombies healed", stage.options.zombies.healed + "/" + stage.options.zombies.available)
Game.trackEvent("levelSummary:" + Q.state.get("currentLevel"), "Bullets waisted", stage.options.bullets.waisted + "/" + stage.options.bullets.available)

4 changes: 4 additions & 0 deletions app/scripts/game/sprites/ui/audio_button.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,12 @@ Q.UI.AudioButton = Q.UI.Button.extend "UI.AudioButton",
@p.sheet = "hud_audio_off_button"
Game.isMuted = true

Game.trackEvent("Audio Button", "clicked", "off")

else
Q.AudioManager.unmute()
@p.sheet = "hud_audio_on_button"
Game.isMuted = false

Game.trackEvent("Audio Button", "clicked", "on")

3 changes: 3 additions & 0 deletions app/scripts/game/sprites/ui/level_button.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ Q.UI.LevelButton = Q.UI.Button.extend "UI.LevelButton",
Game.stageLevel(@p.level)
else
Game.stageControlsScreen()

else
Game.trackEvent("Level Button", "clicked", "locked")
2 changes: 2 additions & 0 deletions app/scripts/game/sprites/ui/menu_button.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ Q.UI.MenuButton = Q.UI.Button.extend "UI.MenuButton",

@on 'click', =>
Game.stageLevelSelectScreen()

Game.trackEvent("Menu Button", "clicked", true)
4 changes: 4 additions & 0 deletions app/scripts/game/sprites/ui/pause_button.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ Q.UI.PauseButton = Q.UI.Button.extend "UI.PauseButton",
@stage.insert pausedScreen
pausedScreen.insert pausedText

Game.trackEvent("Pause Button", "clicked", "on")

else
Q.stage().unpause()
if !Game.isMuted
Expand All @@ -45,3 +47,5 @@ Q.UI.PauseButton = Q.UI.Button.extend "UI.PauseButton",

@stage.remove pausedScreen

Game.trackEvent("Pause Button", "clicked", "off")

0 comments on commit 8e24bc3

Please sign in to comment.