gosu_android 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,7 @@ module JavaImports
8
8
  java_import "android.opengl.GLSurfaceView"
9
9
  end
10
10
 
11
+ #Opengl dependencies
11
12
  java_import "javax.microedition.khronos.egl.EGL10"
12
13
  java_import "javax.microedition.khronos.egl.EGLConfig"
13
14
  java_import "javax.microedition.khronos.opengles.GL10"
@@ -31,6 +32,9 @@ module JavaImports
31
32
  java_import "android.view.WindowManager"
32
33
  java_import "android.view.KeyEvent"
33
34
 
35
+ #Handles the keyboard
36
+ java_import "android.view.inputmethod.InputMethodManager"
37
+
34
38
  #Fonts
35
39
  java_import "android.graphics.Canvas"
36
40
  java_import "android.graphics.Paint"
@@ -40,5 +44,6 @@ module JavaImports
40
44
  #Audio
41
45
  java_import "android.media.SoundPool"
42
46
  java_import "android.media.AudioManager"
43
- java_import "android.media.MediaPlayer"
47
+ java_import "android.media.MediaPlayer"
48
+ java_import "android.app.Service"
44
49
  end
@@ -1,3 +1,3 @@
1
1
  module Gosu
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gosu_android
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Garoe Dorta
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-04-06 00:00:00 Z
18
+ date: 2013-04-23 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: |
@@ -33,8 +33,12 @@ files:
33
33
  - README.md
34
34
  - Rakefile
35
35
  - examples/arkanoid_activity.rb
36
+ - examples/load_image_activity.rb
36
37
  - examples/pong_activity.rb
37
- - examples/test_game_activity.rb
38
+ - examples/tutorial_activity.rb
39
+ - examples/tutorial_common_activity.rb
40
+ - examples/tutorial_touch_activity.rb
41
+ - examples/use_keyboard_activity.rb
38
42
  - bin/gosu_android
39
43
  - lib/gosu.java.jar
40
44
  - lib/gosu.rb
@@ -61,8 +65,6 @@ files:
61
65
  - lib/gosu_android/input/input.rb
62
66
  - lib/gosu_android/main-window.rb
63
67
  - lib/gosu_android/math.rb
64
- - lib/gosu_android/physics/physicsManager.rb
65
- - lib/gosu_android/physics/physicsObject.rb
66
68
  - lib/gosu_android/requires.rb
67
69
  - lib/gosu_android/timing.rb
68
70
  - lib/gosu_android/version.rb
@@ -70,9 +72,10 @@ files:
70
72
  - res/drawable-nodpi/bar.png
71
73
  - res/drawable-nodpi/bar_hor.png
72
74
  - res/drawable-nodpi/character_atlas8.png
73
- - res/drawable-nodpi/ship.png
74
75
  - res/drawable-nodpi/space.png
75
76
  - res/drawable-nodpi/star.png
77
+ - res/drawable-nodpi/star_fighter.png
78
+ - res/drawable-nodpi/yellow_square.png
76
79
  - res/raw/beep.wav
77
80
  - res/raw/chriss_onac_tempo_red.mp3
78
81
  homepage: https://github.com/neochuky/gosu-android/
@@ -110,3 +113,4 @@ specification_version: 3
110
113
  summary: A Gosu implementation for Android.
111
114
  test_files: []
112
115
 
116
+ has_rdoc:
@@ -1,57 +0,0 @@
1
- require 'gosu_android/physics/physicsObject'
2
-
3
- module Gosu
4
-
5
- class PhysicsManager
6
- attr_accessor :gravity_x, :gravity_y
7
- def initialize(window)
8
- @window = window
9
- @dt = @window.update_interval
10
- @squares = []
11
- @planes = []
12
- @gravity_x = 0
13
- @gravity_y = 98 #10 pixels are 1 meter
14
- end
15
-
16
- def register_new_object object
17
- if object.class == Square
18
- @squares.push object unless @squares.include? object
19
- elsif object.class == Plane
20
- @planes.push object unless @planes.include? object
21
- end
22
- end
23
-
24
- def delete_object object
25
- if object.class == Square
26
- @squares.delete object
27
- elsif object.class == Plane
28
- @planes.delete object
29
- end
30
- end
31
-
32
- def update
33
- #Gravity
34
- @squares.each do |square|
35
- if square.mass_inverted > 0
36
- square.velocity[0] += @dt*@gravity_x
37
- square.velocity[1] += @dt*@gravity_y
38
- end
39
- end
40
-
41
- #Collision detection
42
- @squares.each do |square|
43
- @planes.each do |plane|
44
- square.generate_contact plane
45
- end
46
- end
47
-
48
- #Integrate
49
- @squares.each do |square|
50
- if square.mass_inverted > 0
51
- square.integrate
52
- end
53
- end
54
- end
55
- end
56
-
57
- end
@@ -1,113 +0,0 @@
1
- require 'gosu_android/graphics/image'
2
-
3
- module Gosu
4
-
5
- def self.dot_product(l1, l2)
6
- sum = 0
7
- for i in 0...l1.size
8
- sum += l1[i] * l2[i]
9
- end
10
- sum
11
- end
12
-
13
- def self.cross_product(l1,l2)
14
- res = []
15
- res.push( l1[1]*l2[2] - l1[2]*l2[1] );
16
- res.push( l1[2]*l2[0] - l1[0]*l2[2] );
17
- res.push( l1[0]*l2[1] - l1[1]*l2[0] );
18
- d = res.max
19
- if(d == 0)
20
- d = res.min
21
- res[0] = res[0]/-d
22
- res[1] = res[1]/-d
23
- else
24
- res[0] = res[0]/d
25
- res[1] = res[1]/d
26
- end
27
- res
28
- end
29
-
30
- class Square
31
- attr_accessor :velocity
32
- attr_reader :position, :center
33
- attr_reader :mass_inverted, :restitution
34
- def initialize(window, file_name, x, y, z, size, mass_inverted,
35
- velocity_x = 0, velocity_y = 0, restitution = 1, tileable = false)
36
- @window = window
37
- @position = [x,y]
38
- @size = size / 2
39
- @center = [@position[0] + @size, @position[1] + @size]
40
- @z = z
41
- @restitution = restitution
42
- @velocity = [velocity_x, velocity_y]
43
- @mass_inverted = mass_inverted
44
- @image = Gosu::Image.new(@window, file_name , tileable)
45
- @dt = @window.update_interval
46
- end
47
-
48
- def integrate
49
- @position[0] += @velocity[0]*@dt
50
- @position[1] += @velocity[1]*@dt
51
- @center = [@position[0] + @size, @position[1] + @size]
52
- end
53
-
54
- def generate_contact other_object
55
- if other_object.class == Square
56
- elsif other_object.class == Plane
57
- if @center[0] - @size < other_object.top_limit[0] and other_object.bottom_limit[0] < @center[0] + @size and
58
- @center[1] - @size < other_object.bottom_limit[1] and other_object.top_limit[1] < @center[1] + @size
59
- #Calculate new velocity, after the hit
60
- if other_object.type == :vertical
61
- @velocity[0] -= (1 + @restitution) * @velocity[0]
62
- else
63
- @velocity[1] -= (1 + @restitution) * @velocity[1]
64
- end
65
- #Call window event
66
- @window.object_collided( @position[0], @position[1], other_object )
67
- end
68
- end
69
- end
70
-
71
- def draw
72
- @image.draw(@position[0], @position[1], @z)
73
- end
74
-
75
- end
76
-
77
- # Bottom ----- Top
78
- #
79
- # Top
80
- # |
81
- # |
82
- # |
83
- # Bottom
84
- class Plane
85
- attr_accessor :bottom_limit, :top_limit
86
- attr_reader :type
87
- def initialize(window, file_name, p0, p1, z)
88
- @window = window
89
- @image = Gosu::Image.new(@window, file_name)
90
- @z = z
91
- @top_limit = Array.new p0
92
- @bottom_limit = Array.new p1
93
-
94
- if(@bottom_limit[0] > @top_limit[0] or @bottom_limit[1] < @top_limit[1])
95
- @top_limit, @bottom_limit = @bottom_limit, @top_limit
96
- end
97
-
98
- if @bottom_limit[0] == @top_limit[0]
99
- @type = :vertical
100
- elsif @bottom_limit[1] == @top_limit[1]
101
- @type = :horizontal
102
- else
103
- raise "Planes can only be horizontal or vertical"
104
- end
105
-
106
- end
107
-
108
- def draw(x,y,z = @z)
109
- @image.draw(x,y,z)
110
- end
111
-
112
- end
113
- end