blob: 7e93f7ed2dbd312b433a67c6a2ba22009d73902d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
class Camera
def self.elasticity
@elasticity ||= 1
end
def self.elasticity= speed
@elasticity = speed
end
def self.follow item
self.move_to((item.x - (Window.width / 2))/self.elasticity,
(item.y - (Window.height / 2))/self.elasticity)
end
def self.objects
@objects ||= []
end
def self.<< item
unless self.objects.include?(item)
self.objects.push(item)
end
end
def self.add item
self << item
end
def self.remove item
if self.objects.include?(item)
self.objects.delete(item)
end
end
def self.move_by(x,y)
self.camera_position[0] += x
self.camera_position[1] += y
objects.each do |object|
object.x -= x
object.y -= y
end
end
def self.move_to(x,y)
self.camera_position = [x+camera_position[0],y+camera_position[1]]
objects.each do |object|
object.x -= x
object.y -= y
end
end
def self.camera_position
@camera_position ||= [0,0]
end
private
def self.camera_position= array
@camera_position = array
end
end
|