Class: RubySketch::SpriteWorld
- Inherits:
-
Object
- Object
- RubySketch::SpriteWorld
- Defined in:
- lib/rubysketch/sprite.rb
Overview
A class Manages sprites.
Instance Method Summary collapse
-
#addSprite(array = nil, sprite) ⇒ Sprite
Adds sprite to the physics engine.
-
#createSprite(*args, klass: nil, context: nil, **kwargs) ⇒ Sprite
Creates a new sprite and add it to physics engine.
- #debug=(state) ⇒ Object
- #debug? ⇒ Boolean
-
#gravity(*args) ⇒ nil
Sets gravity for the physics engine.
-
#initialize(pixelsPerMeter: 0) ⇒ SpriteWorld
constructor
Create a new physics world.
-
#offset ⇒ Vector
Returns the offset of the sprite world.
-
#offset=(arg) ⇒ Vector
Sets the offset of the sprite world.
-
#ox ⇒ Numeric
Returns the x-axis offset of the sprite world.
-
#ox=(x) ⇒ Numeric
Sets the x-axis offset of the sprite world.
-
#oy ⇒ Numeric
Returns the y-axis offset of the sprite world.
-
#oy=(x) ⇒ Numeric
Sets the y-axis offset of the sprite world.
-
#removeSprite(array = nil, sprite) ⇒ Sprite
Removes sprite from the physics engine.
-
#zoom ⇒ Numeric
Returns the zoom value of the sprite world.
-
#zoom=(zoom) ⇒ Numeric
Sets the zoom value of the sprite world.
Constructor Details
#initialize(pixelsPerMeter: 0) ⇒ SpriteWorld
Create a new physics world.
1070 1071 1072 |
# File 'lib/rubysketch/sprite.rb', line 1070 def initialize(pixelsPerMeter: 0) @view, @debug = View.new(pixelsPerMeter: pixelsPerMeter), false end |
Instance Method Details
#addSprite(array = nil, sprite) ⇒ Sprite
Adds sprite to the physics engine.
1135 1136 1137 1138 1139 |
# File 'lib/rubysketch/sprite.rb', line 1135 def addSprite(array = nil, sprite) @view.add sprite.getInternal__ array&.push sprite sprite end |
#createSprite(x, y, w, h) ⇒ Sprite #createSprite(image: img) ⇒ Sprite #createSprite(x, y, image: img) ⇒ Sprite #createSprite(x, y, image: img, offset: off) ⇒ Sprite #createSprite(x, y, image: img, shape: shp) ⇒ Sprite #createSprite(x, y, image: img, offset: off, shape: shp) ⇒ Sprite #createSprite(x, y, shape: shp) ⇒ Sprite
Creates a new sprite and add it to physics engine.
1122 1123 1124 1125 1126 |
# File 'lib/rubysketch/sprite.rb', line 1122 def createSprite(*args, klass: nil, context: nil, **kwargs) klass ||= RubySketch::Sprite context ||= Context.context__ addSprite klass.new(*args, context: context, **kwargs) end |
#debug=(state) ⇒ Object
1269 1270 1271 |
# File 'lib/rubysketch/sprite.rb', line 1269 def debug=(state) @view.debug = state end |
#debug? ⇒ Boolean
1273 |
# File 'lib/rubysketch/sprite.rb', line 1273 def debug? = @view.debug? |
#gravity(vec) ⇒ nil #gravity(ary) ⇒ nil #gravity(x, y) ⇒ nil
Sets gravity for the physics engine.
1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 |
# File 'lib/rubysketch/sprite.rb', line 1168 def gravity(*args) x, y = case arg = args.first when Vector then arg.array when Array then arg else args end @view.gravity x, y nil end |
#offset ⇒ Vector
Returns the offset of the sprite world.
1183 1184 1185 1186 |
# File 'lib/rubysketch/sprite.rb', line 1183 def offset() s, z = @view.scroll, zoom Vector.new -s.x / z, -s.y / z, -s.z / z end |
#offset=(vec) ⇒ Vector #offset=(ary) ⇒ Vector
Sets the offset of the sprite world.
1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 |
# File 'lib/rubysketch/sprite.rb', line 1198 def offset=(arg) zoom_ = zoom x, y, z = case arg when Vector then [arg.x, arg.y, arg.z] when Array then [arg[0] || 0, arg[1] || 0, arg[2] || 0] when nil then [0, 0, 0] else raise ArgumentError end @view.scroll_to -x * zoom_, -y * zoom_, -z * zoom_ offset end |
#ox ⇒ Numeric
Returns the x-axis offset of the sprite world.
1215 1216 1217 |
# File 'lib/rubysketch/sprite.rb', line 1215 def ox() offset.x end |
#ox=(x) ⇒ Numeric
Sets the x-axis offset of the sprite world.
1225 1226 1227 1228 1229 1230 |
# File 'lib/rubysketch/sprite.rb', line 1225 def ox=(x) o = offset o.x = x self.offset = o x end |
#oy ⇒ Numeric
Returns the y-axis offset of the sprite world.
1236 1237 1238 |
# File 'lib/rubysketch/sprite.rb', line 1236 def oy() offset.y end |
#oy=(x) ⇒ Numeric
Sets the y-axis offset of the sprite world.
1246 1247 1248 1249 1250 1251 |
# File 'lib/rubysketch/sprite.rb', line 1246 def oy=(x) o = offset o.y = y self.offset = o y end |
#removeSprite(array = nil, sprite) ⇒ Sprite
Removes sprite from the physics engine.
1148 1149 1150 1151 1152 |
# File 'lib/rubysketch/sprite.rb', line 1148 def removeSprite(array = nil, sprite) @view.remove sprite.getInternal__ array&.delete sprite sprite end |
#zoom ⇒ Numeric
Returns the zoom value of the sprite world.
1257 1258 1259 |
# File 'lib/rubysketch/sprite.rb', line 1257 def zoom() @view.zoom end |
#zoom=(zoom) ⇒ Numeric
Sets the zoom value of the sprite world.
1265 1266 1267 |
# File 'lib/rubysketch/sprite.rb', line 1265 def zoom=(zoom) @view.zoom = zoom end |