-
Notifications
You must be signed in to change notification settings - Fork 1
/
ball.rb
61 lines (47 loc) · 788 Bytes
/
ball.rb
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
require 'pp'
class Ball
def initialize(window, x)
@y = 0.0
@x = x
@vel_y = 3.0
@vel_x = 4.0
@image = Gosu::Image.new(window, "ball.jpg", true)
end
def restart
@y = 0.0
@x = 300
@vel_y = 2.0
@vel_x = 3.0
end
def move
@x += @vel_x
@y += @vel_y
check_bounce_y
end
def bounce_x
@vel_x *= -1
end
def bounce_y
@vel_y *= -1
end
def check_bounce_x
end
def check_bounce_y
bounce_y if @y + @vel_y < 0
bounce_y if @y + @vel_y > 480
end
def draw
@image.draw(@x, @y, 0)
end
def hitbox
hitbox_x = ((@x - @image.width/2).to_i..(@x + @image.width/2.to_i)).to_a
hitbox_y = ((@y - @image.width/2).to_i..(@y + @image.width/2).to_i).to_a
{:x => hitbox_x, :y => hitbox_y}
end
def y
return @y
end
def get_x
return @x
end
end