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.
1107 1108 1109 |
# File 'lib/rubysketch/sprite.rb', line 1107 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.
1172 1173 1174 1175 1176 |
# File 'lib/rubysketch/sprite.rb', line 1172 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.
1159 1160 1161 1162 1163 |
# File 'lib/rubysketch/sprite.rb', line 1159 def createSprite(*args, klass: nil, context: nil, **kwargs) klass ||= RubySketch::Sprite context ||= Context.current__ addSprite klass.new(*args, context: context, **kwargs) end |
#debug=(state) ⇒ Object
1306 1307 1308 |
# File 'lib/rubysketch/sprite.rb', line 1306 def debug=(state) @view.debug = state end |
#debug? ⇒ Boolean
1310 |
# File 'lib/rubysketch/sprite.rb', line 1310 def debug? = @view.debug? |
#gravity(vec) ⇒ nil #gravity(ary) ⇒ nil #gravity(x, y) ⇒ nil
Sets gravity for the physics engine.
1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 |
# File 'lib/rubysketch/sprite.rb', line 1205 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.
1220 1221 1222 1223 |
# File 'lib/rubysketch/sprite.rb', line 1220 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.
1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 |
# File 'lib/rubysketch/sprite.rb', line 1235 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.
1252 1253 1254 |
# File 'lib/rubysketch/sprite.rb', line 1252 def ox() offset.x end |
#ox=(x) ⇒ Numeric
Sets the x-axis offset of the sprite world.
1262 1263 1264 1265 1266 1267 |
# File 'lib/rubysketch/sprite.rb', line 1262 def ox=(x) o = offset o.x = x self.offset = o x end |
#oy ⇒ Numeric
Returns the y-axis offset of the sprite world.
1273 1274 1275 |
# File 'lib/rubysketch/sprite.rb', line 1273 def oy() offset.y end |
#oy=(x) ⇒ Numeric
Sets the y-axis offset of the sprite world.
1283 1284 1285 1286 1287 1288 |
# File 'lib/rubysketch/sprite.rb', line 1283 def oy=(x) o = offset o.y = y self.offset = o y end |
#removeSprite(array = nil, sprite) ⇒ Sprite
Removes sprite from the physics engine.
1185 1186 1187 1188 1189 |
# File 'lib/rubysketch/sprite.rb', line 1185 def removeSprite(array = nil, sprite) @view.remove sprite.getInternal__ array&.delete sprite sprite end |
#zoom ⇒ Numeric
Returns the zoom value of the sprite world.
1294 1295 1296 |
# File 'lib/rubysketch/sprite.rb', line 1294 def zoom() @view.zoom end |
#zoom=(zoom) ⇒ Numeric
Sets the zoom value of the sprite world.
1302 1303 1304 |
# File 'lib/rubysketch/sprite.rb', line 1302 def zoom=(zoom) @view.zoom = zoom end |