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.
1096 1097 1098 |
# File 'lib/rubysketch/sprite.rb', line 1096 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.
1161 1162 1163 1164 1165 |
# File 'lib/rubysketch/sprite.rb', line 1161 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.
1148 1149 1150 1151 1152 |
# File 'lib/rubysketch/sprite.rb', line 1148 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
1295 1296 1297 |
# File 'lib/rubysketch/sprite.rb', line 1295 def debug=(state) @view.debug = state end |
#debug? ⇒ Boolean
1299 |
# File 'lib/rubysketch/sprite.rb', line 1299 def debug? = @view.debug? |
#gravity(vec) ⇒ nil #gravity(ary) ⇒ nil #gravity(x, y) ⇒ nil
Sets gravity for the physics engine.
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 |
# File 'lib/rubysketch/sprite.rb', line 1194 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.
1209 1210 1211 1212 |
# File 'lib/rubysketch/sprite.rb', line 1209 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.
1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 |
# File 'lib/rubysketch/sprite.rb', line 1224 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.
1241 1242 1243 |
# File 'lib/rubysketch/sprite.rb', line 1241 def ox() offset.x end |
#ox=(x) ⇒ Numeric
Sets the x-axis offset of the sprite world.
1251 1252 1253 1254 1255 1256 |
# File 'lib/rubysketch/sprite.rb', line 1251 def ox=(x) o = offset o.x = x self.offset = o x end |
#oy ⇒ Numeric
Returns the y-axis offset of the sprite world.
1262 1263 1264 |
# File 'lib/rubysketch/sprite.rb', line 1262 def oy() offset.y end |
#oy=(x) ⇒ Numeric
Sets the y-axis offset of the sprite world.
1272 1273 1274 1275 1276 1277 |
# File 'lib/rubysketch/sprite.rb', line 1272 def oy=(x) o = offset o.y = y self.offset = o y end |
#removeSprite(array = nil, sprite) ⇒ Sprite
Removes sprite from the physics engine.
1174 1175 1176 1177 1178 |
# File 'lib/rubysketch/sprite.rb', line 1174 def removeSprite(array = nil, sprite) @view.remove sprite.getInternal__ array&.delete sprite sprite end |
#zoom ⇒ Numeric
Returns the zoom value of the sprite world.
1283 1284 1285 |
# File 'lib/rubysketch/sprite.rb', line 1283 def zoom() @view.zoom end |
#zoom=(zoom) ⇒ Numeric
Sets the zoom value of the sprite world.
1291 1292 1293 |
# File 'lib/rubysketch/sprite.rb', line 1291 def zoom=(zoom) @view.zoom = zoom end |