opal-pixi 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
@@ -0,0 +1,12 @@
1
+ module PIXI
2
+ class Container #< `PIXI.Container`
3
+ include Native
4
+
5
+ def initialize
6
+ super(`new PIXI.Container()`)
7
+ end
8
+
9
+ alias_native :add_child, :addChild
10
+
11
+ end
12
+ end
@@ -0,0 +1,28 @@
1
+ module PIXI
2
+ class Graphics #< `PIXI.Graphics`
3
+ include Native
4
+
5
+ def initialize
6
+ super(`new PIXI.Graphics()`)
7
+ end
8
+
9
+ alias_native :height
10
+ alias_native :isMask
11
+ alias_native :lineColor
12
+ alias_native :lineWidth
13
+
14
+ alias_native :worldVisible
15
+ alias_native :clear
16
+ alias_native :beginFill
17
+ alias_native :lineStyle
18
+
19
+ alias_native :moveTo
20
+ alias_native :quadraticCurveTo
21
+ alias_native :drawRect
22
+ alias_native :bezierCurveTo
23
+ alias_native :lineTo
24
+
25
+ alias_native :add_child, :addChild
26
+
27
+ end
28
+ end
@@ -1,12 +1,66 @@
1
-
2
1
  module PIXI
3
2
  class Point
4
- %x{
5
- #{self}._proto = window.PIXI.Point.prototype, def = #{self}._proto;
6
- window.PIXI.Point.prototype._klass = #{self};
7
- }
8
- def self.new(x,y)
9
- `new window.PIXI.Point(x,y)`
3
+ include Native
4
+
5
+ def self.new(x_or_native , y)
6
+ if native?(x_or_native)
7
+ super(x_or_native)
8
+ else
9
+ super(`new PIXI.Point(x_or_native, y)`)
10
+ end
10
11
  end
12
+
13
+ alias_native :set
14
+ alias_native :x
15
+ alias_native :y
16
+
17
+ alias_native :x=
18
+ alias_native :y=
19
+
20
+ # just add another point to this one
21
+ # return self for chaining
22
+ def add point
23
+ self.x += point.x
24
+ self.y += point.y
25
+ self
26
+ end
27
+
28
+ # add a point (the first arg), but "bounce" off the wall, second arg
29
+ # second arg is a pint that defines a rectangle with 0,0
30
+ # if the adding makes the point go beyond the rectangle it bounces off the wall back in
31
+ def add_and_bounce distance , wall
32
+ self.add(distance).bounce(wall)
33
+ self
34
+ end
35
+
36
+ # check if the point is outside the rectangle spanned by the wall arg (a point)
37
+ def bounce wall
38
+ self.x = - self.x if self.x < 0
39
+ self.x = wall.x - (self.x - wall.x) if self.x > wall.x
40
+ self.y = -self.y if self.y < 0
41
+ self.y = wall.y - (self.y - wall.y) if self.y > wall.y
42
+ end
43
+
44
+ # scale the point down by the given factor.
45
+ # off course for factors smaller than 1 that means it gets bigger
46
+ # try to avoid 0 division by applying a minimum of 0.0001
47
+ def scale_by num
48
+ min = 0.001
49
+ num = min if num < min and num > -min
50
+ self.x = self.x / num
51
+ self.y = self.y / num
52
+ self
53
+ end
54
+
55
+ # return new point with same x coordiante but the given y
56
+ def at_y new_y
57
+ PIXI::Point.new(self.x ,new_y)
58
+ end
59
+
60
+ # return new point with same y coordiante but the given x
61
+ def at_x new_x
62
+ PIXI::Point.new(new_x , self.y)
63
+ end
64
+
11
65
  end
12
66
  end
@@ -1,26 +1,27 @@
1
+ require 'opal/pixi/point'
2
+ require 'pp'
3
+
1
4
  module PIXI
2
5
  class Sprite
3
- %x{
4
- #{self}._proto = window.PIXI.Sprite.prototype, def = #{self}._proto;
5
- window.PIXI.Sprite.prototype._klass = #{self};
6
- }
7
- def self.new(texture)
8
- `new window.PIXI.Sprite(texture)`
9
- end
10
- def anchor
11
- Point.new `#{self}.anchor.x`,`#{self}.anchor.y`
12
- end
13
- def rotation
14
- `self.rotation`
15
- end
16
- def rotation=(r)
17
- `self.rotation = r`
18
- end
19
- def anchor=(a)
20
- `self.anchor = a`
21
- end
22
- def position=(p)
23
- `self.position = p`
6
+ include Native
7
+
8
+ def initialize(native_or_texture)
9
+ if native?(native_or_texture)
10
+ super
11
+ else
12
+ super `new PIXI.Sprite(#{native_or_texture.to_n})`
13
+ end
24
14
  end
15
+
16
+
17
+ alias_native :anchor, :anchor, as: Point
18
+ alias_native :rotation
19
+ alias_native :interactive=
20
+ alias_native :position, :position, as: Point
21
+ alias_native :on
22
+ alias_native :anchor=
23
+ alias_native :position=
24
+ alias_native :rotation=
25
+
25
26
  end
26
27
  end
@@ -0,0 +1,22 @@
1
+ module PIXI
2
+ class Text
3
+ include Native
4
+
5
+ # options according to http://pixijs.github.io/docs/PIXI.Text.html
6
+ def initialize(x_or_native, y)
7
+ if native?(x_or_native)
8
+ super(x_or_native)
9
+ else
10
+ super(`new PIXI.Text(x_or_native,y)`)
11
+ end
12
+ end
13
+
14
+ alias_native :width
15
+ alias_native :position, :position, as: Point
16
+
17
+ alias_native :position=
18
+ alias_native :text=
19
+
20
+
21
+ end
22
+ end
@@ -1,11 +1,10 @@
1
1
  module PIXI
2
2
  class Texture
3
- %x{
4
- #{self}._proto = window.PIXI.Texture.prototype, def = #{self}._proto;
5
- window.PIXI.Texture.prototype._klass = #{self};
6
- }
3
+
4
+ include Native
5
+
7
6
  def self.from_image(name)
8
- `window.PIXI.Texture.fromImage(name)`
7
+ new(`PIXI.Texture.fromImage(name)`)
9
8
  end
10
9
  end
11
10
  end
@@ -1,5 +1,5 @@
1
1
  module Opal
2
2
  module PIXI
3
- VERSION = '0.0.1'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
@@ -1,19 +1,18 @@
1
1
  module PIXI
2
- class WebGLRenderer
3
- %x{
4
- #{self}._proto = window.PIXI.WebGLRenderer.prototype, def = #{self}._proto;
5
- window.PIXI.WebGLRenderer.prototype._klass = #{self};
6
- }
7
- def self.new(width, height)
8
- `new window.PIXI.WebGLRenderer(width, height)`
9
- end
2
+ class WebGLRenderer #< `PIXI.WebGLRenderer`
3
+ include Native
10
4
 
11
- def render(stage)
12
- `self.render(stage)`
5
+ def initialize(w_or_native, height, options)
6
+ if native?(w_or_native)
7
+ super(w_or_native)
8
+ else
9
+ super(`new PIXI.WebGLRenderer(w_or_native, height , #{ options.to_n })`)
10
+ end
13
11
  end
14
12
 
15
- def view
16
- `self.view`
17
- end
13
+ alias_native :render
14
+ alias_native :view
15
+ alias_native :width
16
+
18
17
  end
19
18
  end
data/lib/opal/pixi.rb CHANGED
@@ -1,7 +1,10 @@
1
1
  if RUBY_ENGINE == 'opal'
2
- require 'opal/pixi/stage'
2
+ require 'native'
3
+ require 'opal/pixi/container'
4
+ require 'opal/pixi/graphics'
3
5
  require 'opal/pixi/web_gl_renderer'
4
6
  require 'opal/pixi/sprite'
7
+ require 'opal/pixi/text'
5
8
  require 'opal/pixi/point'
6
9
  require 'opal/pixi/texture'
7
10
  else
data/opal-pixi.gemspec CHANGED
@@ -7,14 +7,14 @@ Gem::Specification.new do |s|
7
7
  s.authors = [ 'George D. Plymale II', 'Gabriel Rios' ]
8
8
  s.email = [ 'gabrielfalcaorios@gmail.com']
9
9
  s.homepage = 'http://github.com/orbitalimpact/opal-pixi'
10
- s.summary = [ 'Pixi wrapper for opal' ]
11
- s.description = [ 'Pixi wrapper for opal' ]
10
+ s.summary = 'Pixi wrapper for opal'
11
+ s.description = 'Pixi wrapper for opal'
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
14
14
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
16
  s.require_paths = ['lib']
17
17
 
18
- s.add_runtime_dependency 'opal', '~> 0.6.0'
18
+ s.add_runtime_dependency 'opal', '~> 0.7.0'
19
19
  s.add_development_dependency 'rake'
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-pixi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - George D. Plymale II
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-27 00:00:00.000000000 Z
12
+ date: 2015-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: opal
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.6.0
20
+ version: 0.7.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 0.6.0
27
+ version: 0.7.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
- description: '["Pixi wrapper for opal"]'
42
+ description: Pixi wrapper for opal
43
43
  email:
44
44
  - gabrielfalcaorios@gmail.com
45
45
  executables: []
@@ -56,13 +56,19 @@ files:
56
56
  - demo/bunny.png
57
57
  - demo/config.ru
58
58
  - demo/index.html
59
- - demo/main.js
59
+ - demo/pixi.js
60
+ - demo/pixi.js.map
61
+ - demo/pixi.min.js
62
+ - demo/pixi.min.js.map
63
+ - demo/pixi_main.js
60
64
  - demo/style.css
61
65
  - lib/opal-pixi.rb
62
66
  - lib/opal/pixi.rb
67
+ - lib/opal/pixi/container.rb
68
+ - lib/opal/pixi/graphics.rb
63
69
  - lib/opal/pixi/point.rb
64
70
  - lib/opal/pixi/sprite.rb
65
- - lib/opal/pixi/stage.rb
71
+ - lib/opal/pixi/text.rb
66
72
  - lib/opal/pixi/texture.rb
67
73
  - lib/opal/pixi/version.rb
68
74
  - lib/opal/pixi/web_gl_renderer.rb
@@ -86,8 +92,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
92
  version: '0'
87
93
  requirements: []
88
94
  rubyforge_project:
89
- rubygems_version: 2.2.2
95
+ rubygems_version: 2.4.5
90
96
  signing_key:
91
97
  specification_version: 4
92
- summary: '["Pixi wrapper for opal"]'
98
+ summary: Pixi wrapper for opal
93
99
  test_files: []
@@ -1,16 +0,0 @@
1
- module PIXI
2
- class Stage
3
- %x{
4
- #{self}._proto = window.PIXI.Stage.prototype, def = #{self}._proto;
5
- window.PIXI.Stage.prototype._klass = #{self};
6
- }
7
-
8
- def self.new(color)
9
- `new window.PIXI.Stage(color)`
10
- end
11
-
12
- def add_child(child)
13
- `#{self}.addChild(child)`
14
- end
15
- end
16
- end