Skip to content

Commit

Permalink
Merge branch 'master' of github.com:DarthBurrit0/nomadaxe.com
Browse files Browse the repository at this point in the history
  • Loading branch information
emkay committed May 12, 2013
2 parents 6d6f939 + bd3a296 commit 878c3c6
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 19 deletions.
30 changes: 11 additions & 19 deletions lib/game.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,24 @@ var domready = require('domready')
, sock = shoe('/sock')
, $qs = document.querySelector.bind(document)
, iio = require('./vendor/iio-engine')
, user = require('./user-input')

function resizeCanvas(c) {
c.width = window.innerWidth
c.height = window.innerHeight
}

function initEvents(c) {
window.addEventListener('resize', resizeCanvas, false)
c.addEventListener('touchstart', touchDown, false)
c.addEventListener('touchmove', touchMove, true)
c.addEventListener('touchend', touchUp, false)
}

function touchDown() {
console.log('touch down')
}

function touchUp() {
console.log('touch up')
}

function touchMove() {
console.log('touch xy')
}

domready(function(){
iio.start(function(io){
io.addObj(new iio.ioText('The darkest depths await your blade.', io.canvas.center)
.setFont('18px monaco')
.setTextAlign('center')
.setFillStyle('black'))

user(io.canvas)
.on('tap', onTap)
.on('hold', onHold)

var hero
, sprites

Expand Down Expand Up @@ -111,4 +97,10 @@ domready(function(){
// })
})

function onTap(x, y){
console.log('tap', x, y)
}

function onHold(){
console.log('hold')
}
75 changes: 75 additions & 0 deletions lib/user-input.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@

var EE = require('events').EventEmitter

module.exports = function(element) {
var emitter = Object.create(EE.prototype
, { hold: { value: 400 }
})
, noTouch = 'ontouchstart' in document === false

element.addEventListener('touchstart', start, false)
element.addEventListener('touchmove', move, false)
element.addEventListener('touchend', end, false)
element.addEventListener('touchcancel', cancel, false)

// pseudo touch events
if (noTouch) {
element.addEventListener('mousedown', start, false)
element.addEventListener('mouseup', end, false)
}

return emitter

function start(event){
if (noTouch) {
event.touches = []
event.touches[0] = { pageX: event.x
, pageY: event.y
}
}

emitter.x = event.touches[0].pageX
emitter.y = event.touches[0].pageY
emitter.started = (new Date).getTime()
emitter.moving = false

emitter.timer = setInterval(function(){
var now = (new Date).getTime()
, difference = now - emitter.started

if (difference >= emitter.hold) {
emitter.emit('hold')
clearInterval(emitter.timer)
}
}, 10)
}

function move(event){
// prevent the window from rubber banding
event.preventDefault()

emitter.moving = true

emitter.x = event.touches[0].pageX
emitter.y = event.touches[0].pageY

// emitter.moved = (new Date).getTime()
}

function end(event){
emitter.emit('tap', emitter.x, emitter.y)
reset()
}

function cancel(event){
console.log('touch cancel')
}

function reset(){
emitter.moving = false
delete emitter.started
delete emitter.moved

if (emitter.timer) clearInterval(emitter.timer)
}
}

0 comments on commit 878c3c6

Please sign in to comment.