opal-phaserjs 0.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6b662c35d744907c498c5bdff83a8e5dfa78d0e7
4
+ data.tar.gz: 1ceb7d31a8f6558caf07cb7d7822437b11d8eac2
5
+ SHA512:
6
+ metadata.gz: ad77e2d568065f6d14dc9bcc104d33e4b5f8d85e97837f20e26cf2b750dc585ad964c0b793e00b35a9848bfd11dda347c0e44586bc97dd4c4d030ea620c50d54
7
+ data.tar.gz: 00a75df933e9ca6c253c66bd4d3fe440820df95acffdd6814c43352475f4d860500a58ba68369dc83c3f8bd3eefd09b9a3741bad7ccff1c014e31776f43c90ca
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ prepros.cfg
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
data/Gemfile.lock ADDED
@@ -0,0 +1,34 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ opal-phaserjs (0.0.1)
5
+ opal (~> 0.6.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ hike (1.2.3)
11
+ json (1.8.1)
12
+ multi_json (1.10.1)
13
+ opal (0.6.3)
14
+ source_map
15
+ sprockets
16
+ rack (1.6.0)
17
+ rake (10.4.2)
18
+ source_map (3.0.1)
19
+ json
20
+ sprockets (2.12.3)
21
+ hike (~> 1.2)
22
+ multi_json (~> 1.0)
23
+ rack (~> 1.0)
24
+ tilt (~> 1.1, != 1.3.0)
25
+ tilt (1.4.1)
26
+ yard (0.8.7.6)
27
+
28
+ PLATFORMS
29
+ ruby
30
+
31
+ DEPENDENCIES
32
+ opal-phaserjs!
33
+ rake
34
+ yard
data/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # opal-phaserjs
2
+ The goal of this project is to completely wrap the Phaser api in opal, to allow developers to write HTML5 and WebGL games entirely from ruby code.
3
+
4
+ If you have not heard of Phaser, check out these links:
5
+
6
+ * Phaser: https://github.com/photonstorm/phaser
7
+ * Phaser Examples: https://github.com/photonstorm/phaser-examples
8
+
9
+ ## Cloning this repository
10
+
11
+ ```
12
+ $ git clone https://github.com/orbitalimpact/opal-phaserjs
13
+ ```
14
+
15
+ ## Getting involved
16
+
17
+ To contribute to this project, follow the steps below.
18
+
19
+ 1. Fork the repo ( https://github.com/orbitalimpact/opal-phaserjs/fork )
20
+ 2. Create your feature branch (`git checkout -b new-branch`)
21
+ 3. Commit your changes (`git commit -am 'description of commit'`)
22
+ 4. Push to the branch (`git push origin new-branch`)
23
+ 5. Create a Pull Request
24
+
25
+ ## Licenses
26
+
27
+ Phaser and all examples are released under the MIT License: http://opensource.org/licenses/MIT
28
+
29
+ opal-phaser is released under the Berkeley Software Distribution (BSD) 3-Clause License: http://opensource.org/licenses/BSD-3-Clause
30
+
31
+ Copyright (c) 2014, Orbital Impact
32
+ All rights reserved.
@@ -0,0 +1 @@
1
+ 2.1.5
data/demo/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ #Gemfile
2
+ source 'https://rubygems.org'
3
+
4
+ gem 'opal-phaserjs', path: '..'
data/demo/Gemfile.lock ADDED
@@ -0,0 +1,30 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ opal-phaserjs (0.0.1)
5
+ opal (~> 0.6.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ hike (1.2.3)
11
+ json (1.8.1)
12
+ multi_json (1.10.1)
13
+ opal (0.6.3)
14
+ source_map
15
+ sprockets
16
+ rack (1.6.0)
17
+ source_map (3.0.1)
18
+ json
19
+ sprockets (2.12.3)
20
+ hike (~> 1.2)
21
+ multi_json (~> 1.0)
22
+ rack (~> 1.0)
23
+ tilt (~> 1.1, != 1.3.0)
24
+ tilt (1.4.1)
25
+
26
+ PLATFORMS
27
+ ruby
28
+
29
+ DEPENDENCIES
30
+ opal-phaserjs!
data/demo/app/main.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'opal'
2
+ require 'opal/phaser'
3
+
4
+ class Game
5
+ def initialize
6
+ @phaser = Phaser::Game.new(800, 654) do |state|
7
+ state.preload do |game|
8
+ game.load.image('logo', 'phaser.png')
9
+ end
10
+
11
+ state.create do |game|
12
+ game.add.sprite(game.world.centerX, game.world.centerY, 'logo')
13
+ end
14
+ end
15
+ end
16
+ end
data/demo/block.png ADDED
Binary file
data/demo/config.ru ADDED
@@ -0,0 +1,10 @@
1
+ require 'bundler'
2
+ Bundler.require
3
+
4
+ run Opal::Server.new { |s|
5
+ s.append_path 'app'
6
+
7
+ s.main = 'main'
8
+
9
+ s.index_path = 'index.html'
10
+ }
data/demo/index.html ADDED
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset= "utf-8" />
5
+ <title>Opal-Phaser</title>
6
+ <link rel="stylesheet" href="style.css">
7
+ <script src="//cdnjs.cloudflare.com/ajax/libs/phaser/2.2.1/phaser.js"></script>
8
+ <script src="/assets/main.js"></script>
9
+ </head>
10
+
11
+ <body>
12
+ <script>
13
+ window.onload = function() {
14
+ Opal.Game.$new()
15
+ }
16
+ </script>
17
+ </body>
18
+ </html>
data/demo/main.js ADDED
@@ -0,0 +1,15 @@
1
+ // This file is just a sanity check to see if this demo works in plain JS
2
+
3
+ function Game () {
4
+ this.game = new Phaser.Game(800, 600, Phaser.AUTO, "", { preload: preload, create: create });
5
+
6
+ function preload () {
7
+ this.game.load.image("logo", "phaser.png");
8
+ }
9
+
10
+ function create () {
11
+ this.logo = this.game.add.sprite(100, 100, "logo");
12
+ }
13
+ }
14
+
15
+ phaserGame = new Game();
data/demo/phaser.png ADDED
Binary file
data/demo/style.css ADDED
@@ -0,0 +1,5 @@
1
+ body {
2
+ margin: 0;
3
+ padding: 0;
4
+ background-color: #000000;
5
+ }
@@ -0,0 +1 @@
1
+ require 'opal/phaser'
@@ -0,0 +1,8 @@
1
+ if RUBY_ENGINE == 'opal'
2
+ require 'opal/phaser/core'
3
+ else
4
+ require 'opal'
5
+ require 'opal/phaser/version'
6
+
7
+ Opal.append_path File.expand_path('../..', __FILE__).untaint
8
+ end
@@ -0,0 +1,2 @@
1
+ require 'opal/phaser/core/state'
2
+ require 'opal/phaser/core/game'
@@ -0,0 +1,34 @@
1
+ require 'native'
2
+ module Phaser
3
+ AUTO = %x{ Phaser.AUTO }
4
+
5
+ class Game
6
+ include ::Native
7
+ def initialize(width, height, renderer = Phaser::AUTO,
8
+ parent = '', state = nil, transparent = false, antialias = true,
9
+ physics = nil, &block)
10
+
11
+ if state
12
+ state.game = self
13
+ else
14
+ state = State.new(self)
15
+ end
16
+
17
+ if block_given?
18
+ state.instance_eval(&block)
19
+ end
20
+
21
+ _native = %x{
22
+ new Phaser.Game(width, height, renderer, parent, #{state.to_n}, transparent,
23
+ antialias, physics)
24
+ }
25
+ super(_native)
26
+ end
27
+
28
+ alias_native :load, :load
29
+ alias_native :add, :add
30
+ alias_native :world, :world
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,43 @@
1
+ module Phaser
2
+ class State
3
+ attr_writer :game
4
+ def initialize(game = nil, &block)
5
+ @game = game
6
+ @native = %x{ new Phaser.State() }
7
+
8
+ @preload = proc {}
9
+ @create = proc {}
10
+ @update = proc {}
11
+ @render = proc {}
12
+
13
+ if block_given?
14
+ instance_eval(&block)
15
+ end
16
+ end
17
+
18
+
19
+ def preload(&block)
20
+ @preload = proc { block.call(@game) }
21
+ end
22
+
23
+ def create(&block)
24
+ @create = proc { block.call(@game) }
25
+ end
26
+
27
+ def update(&block)
28
+ @update = proc { block.call(@game) }
29
+ end
30
+
31
+ def render(&block)
32
+ @render = proc { block.call(@game) }
33
+ end
34
+
35
+ def to_n
36
+ %x{
37
+ var obj = { preload: #@preload, create: #@create }
38
+ }
39
+
40
+ return %x{ obj }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,5 @@
1
+ module Opal
2
+ module Phaser
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/opal/phaser/version', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'opal-phaserjs'
6
+ s.version = Opal::Phaser::VERSION
7
+ s.authors = ['George Plymale', 'Gabriel Rios']
8
+ s.email = ['george@orbitalimpact.com', 'gabrielfalcaorios@gmail.com']
9
+ s.homepage = 'http://github.com/orbitalimpact/opal-phaserjs'
10
+ s.summary = 'Opal access to phaser'
11
+ s.description = 'Phaser library for opal'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.require_paths = ['lib']
17
+
18
+ s.add_runtime_dependency 'opal', '~> 0.6.0'
19
+ s.add_development_dependency 'yard'
20
+ s.add_development_dependency 'rake'
21
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: opal-phaserjs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - George Plymale
8
+ - Gabriel Rios
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-12-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: opal
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.6.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.6.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: yard
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ description: Phaser library for opal
57
+ email:
58
+ - george@orbitalimpact.com
59
+ - gabrielfalcaorios@gmail.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - ".gitignore"
65
+ - Gemfile
66
+ - Gemfile.lock
67
+ - README.md
68
+ - demo/.ruby-version
69
+ - demo/Gemfile
70
+ - demo/Gemfile.lock
71
+ - demo/app/main.rb
72
+ - demo/block.png
73
+ - demo/config.ru
74
+ - demo/index.html
75
+ - demo/main.js
76
+ - demo/phaser.png
77
+ - demo/style.css
78
+ - lib/opal-phaser.rb
79
+ - lib/opal/phaser.rb
80
+ - lib/opal/phaser/core.rb
81
+ - lib/opal/phaser/core/game.rb
82
+ - lib/opal/phaser/core/state.rb
83
+ - lib/opal/phaser/version.rb
84
+ - opal-phaserjs.gemspec
85
+ homepage: http://github.com/orbitalimpact/opal-phaserjs
86
+ licenses: []
87
+ metadata: {}
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ requirements: []
103
+ rubyforge_project:
104
+ rubygems_version: 2.2.2
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: Opal access to phaser
108
+ test_files: []
109
+ has_rdoc: