started adding a key handler... (still a bit lazy about it but have to get it done)

This commit is contained in:
Alex A. Naanou 2011-07-02 19:00:11 +04:00
parent 1b63fefb5f
commit 015240d7d5

View File

@ -296,9 +296,29 @@ function JSSnakeGame(field){
// //
// NOTE: modes can intersect... // NOTE: modes can intersect...
// NOTE: modes are game state dependant... // NOTE: modes are game state dependant...
key_time_frame: 0.5,
pending_key: null,
_keyHandler: function(evt){ _keyHandler: function(evt){
var name, color
var key = window.event ? event.keyCode : evt.keyCode var key = window.event ? event.keyCode : evt.keyCode
// find a target registered for key...
// XXX
// no one is registered...
// if wait time set and is not exceeded create a player and register keys
if(!this.pending_key || Date().getTime() - this.pending_key['time'] > this.key_time_frame ){
// if no wait time is set, set it and remember the key...
this.pending_key = {time: Date().getTime(), key: key}
} else {
// get name...
// XXX
// get color...
// XXX
this.Player(name, this.pending_key['key'], key, color)
this.pending_key = null
}
return true return true
}, },
// create a new player... // create a new player...
@ -309,7 +329,8 @@ function JSSnakeGame(field){
// error: that the color is already used... // error: that the color is already used...
return return
} }
// XXX register controls... // register controls...
// XXX
if(direction == null){ if(direction == null){
direction = ['n', 's', 'e', 'w'][Math.round(Math.random()*3)] direction = ['n', 's', 'e', 'w'][Math.round(Math.random()*3)]
@ -326,7 +347,7 @@ function JSSnakeGame(field){
// NOTE: position is optional... // NOTE: position is optional...
Apple: function(cell){ Apple: function(cell){
// place an apple at a random and not occupied position... // place an apple at a random and not occupied position...
var c = this._random_empty_cell() var c = cell? cell: this._random_empty_cell()
if(c === null) if(c === null)
return return
return this.field.Apple(c) return this.field.Apple(c)