jruby-slick 1.1b → 1.1.0
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.
- data/.gitignore +2 -2
- data/bin/jruby-slick.rb +32 -4
- data/jruby-slick/tasks/jruby-slick.rake +62 -24
- data/jruby-slick/template/example.rb +1 -1
- data/jruby-slick/template/example_game_state.rb +116 -0
- metadata +48 -22
data/.gitignore
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
vendor/*
|
2
2
|
.DS_Store
|
3
|
-
*.gem
|
3
|
+
*.gem
|
data/bin/jruby-slick.rb
CHANGED
@@ -3,8 +3,36 @@ require 'rubygems'
|
|
3
3
|
require 'rake'
|
4
4
|
|
5
5
|
gem_dir = Gem::Specification.find_by_name("jruby-slick").gem_dir
|
6
|
-
|
7
6
|
Rake.application.rake_require "jruby-slick", ["#{gem_dir}/jruby-slick/tasks"]
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
|
8
|
+
args = ARGV
|
9
|
+
nothing_run = true
|
10
|
+
|
11
|
+
if args.include? "install"
|
12
|
+
Rake::Task['download_slick'].invoke
|
13
|
+
Rake::Task['setup_natives'].invoke
|
14
|
+
Rake::Task['build_example'].invoke
|
15
|
+
nothing_run = false
|
16
|
+
end
|
17
|
+
|
18
|
+
if args.include? "gamestate"
|
19
|
+
idx = args.index "gamestate"
|
20
|
+
filename = "example_game_state.rb"
|
21
|
+
classname = "ExampleGameState"
|
22
|
+
unless args[idx+1].nil?
|
23
|
+
filename = "#{args[idx+1]}_game_state.rb"
|
24
|
+
classname = "#{args[idx+1]}_game_state".gsub(/\_[a-z]/) do |m|
|
25
|
+
m.upcase.gsub("_","")
|
26
|
+
end.capitalize
|
27
|
+
end
|
28
|
+
|
29
|
+
Rake::Task[:generate_game_state].invoke(filename, classname)
|
30
|
+
nothing_run = false
|
31
|
+
end
|
32
|
+
|
33
|
+
if nothing_run || args.include?("-h") || args.include?("--help")
|
34
|
+
puts "\njruby slick commands:\n"
|
35
|
+
puts " install - downloads the slick.jar, lwjgl natives, and gives an example file."
|
36
|
+
puts " gamestate [name] - generates a base gamestate file for you in lib/. Optional name will change class & filename. Example: `jruby-slick.rb gamestate=awesome` would create awesome.rb"
|
37
|
+
puts " -h | --help - shows this menu"
|
38
|
+
end
|
@@ -1,58 +1,96 @@
|
|
1
1
|
require 'net/http'
|
2
|
+
require 'open-uri'
|
2
3
|
require 'fileutils'
|
3
4
|
require 'rubygems'
|
4
5
|
require 'zip/zipfilesystem'
|
5
6
|
require 'rbconfig'
|
6
|
-
desc 'Download Slick Distribution'
|
7
7
|
|
8
|
+
desc 'Download Slick Distribution'
|
8
9
|
task :download_slick do
|
9
|
-
|
10
|
-
FileUtils.rm_rf "vendor/slick"
|
11
10
|
FileUtils.mkdir_p "vendor/slick"
|
12
11
|
|
13
|
-
res = Net::HTTP.get_response(URI("http://
|
14
|
-
File.open("
|
12
|
+
res = Net::HTTP.get_response(URI("http://www.slick2d.org/downloads/slick.jar"))
|
13
|
+
File.open("vendor/slick/slick.jar", "w+") do |f|
|
15
14
|
f.write(res.body)
|
16
15
|
end
|
17
|
-
|
18
|
-
zipfile.each do |entry|
|
19
|
-
if entry.file? && /^lib\// =~ entry.name
|
20
|
-
entry.extract entry.to_s.gsub(/^lib/, "vendor/slick")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
File.delete("temp.zip")
|
16
|
+
puts "slick.jar downloaded into vendor/slick directory"
|
25
17
|
end
|
26
18
|
|
19
|
+
desc 'Setup lwjgl natives'
|
27
20
|
task :setup_natives do
|
28
21
|
FileUtils.mkdir_p "bin" unless File.exists? "bin"
|
29
22
|
target = RbConfig::CONFIG['target_os'].downcase
|
30
|
-
platform =
|
23
|
+
platform = []
|
31
24
|
if target.index('mswin')
|
32
|
-
platform
|
25
|
+
platform << 'windows'
|
26
|
+
valid = false
|
27
|
+
puts "Since you are using windows, please specify whether you are using 32 or 64 bit (32/64)"
|
28
|
+
bit = ''
|
29
|
+
until valid
|
30
|
+
bit = gets.chomp
|
31
|
+
valid = /^(32|64)$/ =~ bit
|
32
|
+
puts "Please enter 32 or 64" if !valid
|
33
|
+
end
|
34
|
+
platform << bit
|
33
35
|
elsif target.index('darwin')
|
34
|
-
platform
|
36
|
+
platform << 'macosx'
|
37
|
+
puts "Determined you are on OS X"
|
35
38
|
elsif target.index('linux')
|
36
|
-
platform
|
39
|
+
platform << 'linux'
|
40
|
+
puts "Determined you are on Linux"
|
41
|
+
end
|
42
|
+
|
43
|
+
puts "Downloading LWJGL"
|
44
|
+
open("lwjgl.zip", "wb") do |f|
|
45
|
+
f.print open("http://downloads.sourceforge.net/project/java-game-lib/Official%20Releases/LWJGL%202.8.5/lwjgl-2.8.5.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjava-game-lib%2Ffiles%2FOfficial%2520Releases%2FLWJGL%25202.8.5%2F&ts=1354580536&use_mirror=iweb").read
|
37
46
|
end
|
38
47
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
48
|
+
puts "Finished downloading LWJGL"
|
49
|
+
|
50
|
+
Zip::ZipFile.open("lwjgl.zip") do |natives|
|
51
|
+
natives.each do |entry|
|
52
|
+
if entry.file? && /^lwjgl-2.8.5\/native\/#{platform[0]}/ =~ entry.name
|
53
|
+
target = "bin/#{entry.name.split('/')[-1]}"
|
54
|
+
unless File.exists? target
|
55
|
+
entry.extract target
|
56
|
+
puts "wrote file: #{target}"
|
57
|
+
end
|
58
|
+
elsif entry.file? && entry.name == "lwjgl-2.8.5/jar/lwjgl.jar" || entry.name == "lwjgl-2.8.5/jar/jinput.jar"
|
59
|
+
target = "vendor/slick/#{entry.name.split('/')[-1]}"
|
60
|
+
unless File.exists? target
|
61
|
+
entry.extract target
|
62
|
+
puts "wrote file: #{target}"
|
46
63
|
end
|
47
64
|
end
|
48
65
|
end
|
49
66
|
end
|
67
|
+
|
68
|
+
puts "removed lwjgl.zip"
|
69
|
+
FileUtils.rm "lwjgl.zip"
|
50
70
|
end
|
51
71
|
|
72
|
+
desc 'Build base example file'
|
52
73
|
task :build_example do
|
53
74
|
gem_dir = Gem::Specification.find_by_name("jruby-slick").gem_dir
|
54
75
|
|
55
76
|
unless File.exists? "bin/example.rb"
|
56
77
|
FileUtils.cp "#{gem_dir}/jruby-slick/template/example.rb", "bin/example.rb"
|
57
78
|
end
|
79
|
+
end
|
80
|
+
|
81
|
+
desc 'generate a default gamestate file'
|
82
|
+
task :generate_game_state, :file_name, :class_name do |t, args|
|
83
|
+
gem_dir = Gem::Specification.find_by_name("jruby-slick").gem_dir
|
84
|
+
file_name = args[:file_name]
|
85
|
+
class_name = args[:class_name]
|
86
|
+
|
87
|
+
FileUtils.mkdir_p "lib"
|
88
|
+
if File.exists? "lib/#{file_name}"
|
89
|
+
puts "File lib/#{file_name} already exists, will not overwrite. Delete it and run the command again if you wish to replace."
|
90
|
+
else
|
91
|
+
FileUtils.cp "#{gem_dir}/jruby-slick/template/example_game_state.rb", "lib/#{file_name}"
|
92
|
+
text = IO.read("lib/#{file_name}")
|
93
|
+
IO.write("lib/#{file_name}", text.gsub("ExampleGameState", class_name))
|
94
|
+
puts "Created file lib/#{file_name}"
|
95
|
+
end
|
58
96
|
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
java_import org.lwjgl.input.Keyboard
|
2
|
+
java_import org.lwjgl.opengl.Display
|
3
|
+
java_import org.lwjgl.opengl.GL11
|
4
|
+
java_import org.newdawn.slick.GameContainer
|
5
|
+
java_import org.newdawn.slick.Graphics
|
6
|
+
java_import org.newdawn.slick.Image
|
7
|
+
java_import org.newdawn.slick.Input
|
8
|
+
java_import org.newdawn.slick.SlickException
|
9
|
+
java_import org.newdawn.slick.state.GameState
|
10
|
+
java_import org.newdawn.slick.state.StateBasedGame
|
11
|
+
|
12
|
+
class ExampleGameState
|
13
|
+
include GameState
|
14
|
+
|
15
|
+
def enter(gc, sbg)
|
16
|
+
end
|
17
|
+
|
18
|
+
def getID
|
19
|
+
# should return a unique number for each state you have in your game
|
20
|
+
0
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize()
|
24
|
+
end
|
25
|
+
|
26
|
+
def init(gc, sbg)
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
def render(gc, sbg, g)
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def update(gc, sbg, delta)
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
def isAcceptingInput
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
def leave(gc, sbg)
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
def inputEnded
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def setInput(arg)
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def keyPressed(keyval, keyChar)
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
def keyReleased(keyval, keyChar)
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
def isRenderPaused
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
def isUpdatePaused
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
def controllerButtonPressed(arg0, arg1)
|
72
|
+
end
|
73
|
+
|
74
|
+
def controllerButtonReleased(arg0, arg1)
|
75
|
+
end
|
76
|
+
|
77
|
+
def controllerDownPressed(arg0)
|
78
|
+
end
|
79
|
+
|
80
|
+
def controllerDownReleased(arg0)
|
81
|
+
end
|
82
|
+
|
83
|
+
def controllerLeftPressed(arg0)
|
84
|
+
end
|
85
|
+
|
86
|
+
def controllerLeftReleased(arg0)
|
87
|
+
end
|
88
|
+
|
89
|
+
def controllerRightPressed(arg0)
|
90
|
+
end
|
91
|
+
|
92
|
+
def controllerRightReleased(arg0)
|
93
|
+
end
|
94
|
+
|
95
|
+
def controllerUpPressed(arg0)
|
96
|
+
end
|
97
|
+
|
98
|
+
def controllerUpReleased(arg0)
|
99
|
+
end
|
100
|
+
|
101
|
+
def mouseClicked(arg0, arg1, arg2, arg3)
|
102
|
+
end
|
103
|
+
|
104
|
+
def mouseMoved(arg0, arg1, arg2, arg3)
|
105
|
+
end
|
106
|
+
|
107
|
+
def mousePressed(arg0, arg1, arg2, arg3)
|
108
|
+
end
|
109
|
+
|
110
|
+
def mouseReleased(arg0, arg1, arg2, arg3)
|
111
|
+
end
|
112
|
+
|
113
|
+
def mouseWheelMoved(arg0)
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
metadata
CHANGED
@@ -1,32 +1,52 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jruby-slick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 1.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Aaron McLeod
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
|
15
|
+
name: rubyzip
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
MA==
|
17
22
|
none: false
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
18
24
|
requirements:
|
19
25
|
- - ! '>='
|
20
26
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
-
|
27
|
+
version: !binary |-
|
28
|
+
MA==
|
29
|
+
none: false
|
23
30
|
prerelease: false
|
31
|
+
type: :runtime
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rake
|
24
34
|
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: !binary |-
|
39
|
+
MA==
|
25
40
|
none: false
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
26
42
|
requirements:
|
27
43
|
- - ! '>='
|
28
44
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
45
|
+
version: !binary |-
|
46
|
+
MA==
|
47
|
+
none: false
|
48
|
+
prerelease: false
|
49
|
+
type: :runtime
|
30
50
|
description: ''
|
31
51
|
email:
|
32
52
|
- aaron.g.mcleod@gmail.com
|
@@ -35,34 +55,40 @@ executables:
|
|
35
55
|
extensions: []
|
36
56
|
extra_rdoc_files: []
|
37
57
|
files:
|
38
|
-
-
|
39
|
-
|
40
|
-
-
|
58
|
+
- !binary |-
|
59
|
+
anJ1Ynktc2xpY2svdGFza3MvanJ1Ynktc2xpY2sucmFrZQ==
|
60
|
+
- !binary |-
|
61
|
+
anJ1Ynktc2xpY2svdGVtcGxhdGUvZXhhbXBsZS5yYg==
|
62
|
+
- !binary |-
|
63
|
+
anJ1Ynktc2xpY2svdGVtcGxhdGUvZXhhbXBsZV9nYW1lX3N0YXRlLnJi
|
64
|
+
- !binary |-
|
65
|
+
YmluL2pydWJ5LXNsaWNrLnJi
|
41
66
|
- .gitignore
|
42
67
|
- Rakefile
|
43
68
|
homepage: http://github.com/agmcleod/jruby-slick
|
44
69
|
licenses: []
|
45
|
-
post_install_message:
|
70
|
+
post_install_message:
|
46
71
|
rdoc_options: []
|
47
72
|
require_paths:
|
48
73
|
- .
|
49
74
|
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
75
|
requirements:
|
52
76
|
- - ! '>='
|
53
77
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
78
|
+
version: !binary |-
|
79
|
+
MA==
|
56
80
|
none: false
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
82
|
requirements:
|
58
|
-
- - ! '
|
83
|
+
- - ! '>='
|
59
84
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
85
|
+
version: !binary |-
|
86
|
+
MA==
|
87
|
+
none: false
|
61
88
|
requirements: []
|
62
|
-
rubyforge_project:
|
89
|
+
rubyforge_project:
|
63
90
|
rubygems_version: 1.8.24
|
64
|
-
signing_key:
|
91
|
+
signing_key:
|
65
92
|
specification_version: 3
|
66
|
-
summary: A command line tool for downloading and unzipping all the basic jar files
|
67
|
-
of the slick2d library.
|
93
|
+
summary: A command line tool for downloading and unzipping all the basic jar files of the slick2d library.
|
68
94
|
test_files: []
|