lotu 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.1.6
@@ -38,7 +38,7 @@ class Example < Lotu::Window
38
38
  super
39
39
  set_keys(KbEscape => :close)
40
40
 
41
- with_path(__FILE__) do
41
+ with_path_from_file(__FILE__) do
42
42
  load_images '../media'
43
43
  end
44
44
 
@@ -19,7 +19,7 @@ class Example < Lotu::Window
19
19
  super
20
20
  set_keys KbEscape => :close
21
21
 
22
- with_path __FILE__ do
22
+ with_path_from_file(__FILE__) do
23
23
  load_images '../media'
24
24
  end
25
25
 
@@ -21,7 +21,7 @@ class Example < Lotu::Window
21
21
  set_keys(KbEscape => :close,
22
22
  MsRight => :reset_ruby)
23
23
 
24
- with_path __FILE__ do
24
+ with_path_from_file(__FILE__) do
25
25
  load_images '../media'
26
26
  end
27
27
 
@@ -36,7 +36,7 @@ module Lotu
36
36
  load_resources(@songs, /\.ogg|\.mp3|\.wav/, path, Gosu::Song)
37
37
  end
38
38
 
39
- def with_path(path, &blk)
39
+ def with_path_from_file(path, &blk)
40
40
  @path = File.expand_path(File.dirname path)
41
41
  yield
42
42
  end
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Lotu
2
3
  class Vector2d
3
4
  attr_reader :x, :y
@@ -108,15 +109,30 @@ module Lotu
108
109
  Gosu.angle_diff(angle, v.angle)
109
110
  end
110
111
 
111
- def sign_to(v)
112
- if @y * v.x > @x * v.y
112
+ def sign_to(vector)
113
+ if @y * vector.x > @x * vector.y
113
114
  return -1
114
115
  else
115
116
  return 1
116
117
  end
117
118
  end
118
119
 
120
+ def clockwise?(vector)
121
+ sign_to(vector) == 1
122
+ end
123
+
124
+ def counter_clockwise?(vector)
125
+ !clockwise?
126
+ end
127
+
128
+ def facing_to?(vector)
129
+ dot(vector) > 0
130
+ end
131
+
119
132
  def to_s
133
+ # TODO tratar de reducir la cantidad de vectores creados, al
134
+ # menos cuando no se está moviendo
135
+ #format('%d %.2f, %.2f', object_id, @x, @y)
120
136
  format('%.2f, %.2f', @x, @y)
121
137
  end
122
138
 
@@ -185,7 +185,18 @@ module Lotu
185
185
  end
186
186
 
187
187
  def distance_to_target
188
- @target && (@target - @pos).length
188
+ (@target - @pos).length
189
+ end
190
+
191
+ def facing_target?
192
+ @heading.facing_to?(@target - @pos)
193
+ end
194
+
195
+ def draw
196
+ super
197
+ $window.draw_line(0, 0, 0xff999999, @pos.x, @pos.y, 0xff333333)
198
+ $window.draw_line(@pos.x, @pos.y, 0xffffffff, (@pos + @heading*50).x, (@pos+@heading*50).y, 0xffff0000)
199
+ $window.draw_line(@pos.x, @pos.y, 0xffffffff, @target.x, @target.y, 0xff00ff00) if @target
189
200
  end
190
201
 
191
202
  # to_s utility methods
@@ -195,7 +206,9 @@ module Lotu
195
206
  "@heading(#{@heading})",
196
207
  "@vel |#{format('%.2f', @vel.length)}| (#{@vel})",
197
208
  "@accel |#{format('%.2f', @accel.length)}| (#{@accel})",
198
- "@seek_target(#{@seek_target})"]
209
+ "facing_target? #{facing_target? if @target}",
210
+ "angle_to(@target) #{format('%.2f', @heading.angle_to(@target - @pos)) if @target}",
211
+ "@seek_target(#{@target})"]
199
212
  end
200
213
 
201
214
  end
data/lib/lotu/text_box.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Lotu
2
3
  class TextBox < Actor
3
4
 
@@ -7,6 +8,8 @@ module Lotu
7
8
  }
8
9
  opts = default_opts.merge!(opts)
9
10
  super(opts)
11
+ #TODO puede especificar a quién watchear y sus opciones de
12
+ #dibujado en los parámetros
10
13
  @watch_list = []
11
14
  @subject_opts = {}
12
15
  @font_size = opts[:font_size]
data/lotu.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{lotu}
8
- s.version = "0.1.5"
8
+ s.version = "0.1.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["lobo_tuerto"]
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 5
9
- version: 0.1.5
8
+ - 6
9
+ version: 0.1.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - lobo_tuerto