Class: OIS::KeyManager

Inherits:
KeyListenerProxy
  • Object
show all
Defined in:
lib/shattered_ogrerb/key_manager.rb

Overview

TODO: make this a singleton(the constructor takes arguments, which makes this difficult)

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ KeyManager

Returns a new instance of KeyManager.



6
7
8
9
10
11
12
13
14
15
# File 'lib/shattered_ogrerb/key_manager.rb', line 6

def initialize(*args)
	if(args.empty?)
		puts "Warning:  Do not initialize KeyManager via the default constructor unless you are running tests."
	else
		super(*args)
	end
	@pressed={}
	@held={}
	@released={}
end

Instance Method Details

#flushObject

Clear out the newly pressed/released events



33
34
35
36
# File 'lib/shattered_ogrerb/key_manager.rb', line 33

def flush
	@released={}
	@pressed={}
end

#key_held?(key) ⇒ Boolean

Is the key pressed or pressed from a previous frame

Returns:

  • (Boolean)


28
29
30
# File 'lib/shattered_ogrerb/key_manager.rb', line 28

def key_held?(key)
	return @held[key] || false
end

#key_pressed(e) ⇒ Object

Called from the key listener



39
40
41
42
43
# File 'lib/shattered_ogrerb/key_manager.rb', line 39

def key_pressed(e)
	@pressed[e.key]=true
	@held[e.key]=true
	@released[e.key]=false
end

#key_pressed?(key) ⇒ Boolean

Is key new from the last flush event?

Returns:

  • (Boolean)


18
19
20
# File 'lib/shattered_ogrerb/key_manager.rb', line 18

def key_pressed?(key)
	return @pressed[key] || false
end

#key_released(e) ⇒ Object

Called from the key listener



46
47
48
49
50
# File 'lib/shattered_ogrerb/key_manager.rb', line 46

def key_released(e)
	@released[e.key]=true
	@held[e.key]=false
	@pressed[e.key]=false
end

#key_released?(key) ⇒ Boolean

Is key not pressed new from the last flush event?

Returns:

  • (Boolean)


23
24
25
# File 'lib/shattered_ogrerb/key_manager.rb', line 23

def key_released?(key)
	return @released[key] || false
end