X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fmisc%2Futils%2FSpriteUtils.kt;h=a26c5b95dd8b3699fb4bf8362b8e7c6ed890520d;hb=3a443514027417133d7a7e18766720dfea028a87;hp=7d7aae110b22aa7a02b2c571fd1481906012cfd3;hpb=462f97f8da742fe35f516fec00ca9a581d688e7a;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt b/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt index 7d7aae1..a26c5b9 100644 --- a/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt +++ b/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt @@ -1,5 +1,6 @@ package ru.deadsoftware.cavedroid.misc.utils +import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.Sprite import com.badlogic.gdx.graphics.g2d.SpriteBatch @@ -7,10 +8,27 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch * Draw sprite at given position rotated by [rotation] degrees */ @JvmOverloads -fun SpriteBatch.drawSprite(sprite: Sprite, x: Float, y: Float, rotation: Float = 0f) { - sprite.rotation = rotation +fun SpriteBatch.drawSprite( + sprite: Sprite, + x: Float, + y: Float, + rotation: Float = 0f, + width: Float = sprite.regionWidth.toFloat(), + height: Float = sprite.regionHeight.toFloat(), + tint: Color? = null, +) { + val oldColor = sprite.color + sprite.setPosition(x, y) + sprite.setSize(width, height) + sprite.rotation = rotation + tint?.let(sprite::setColor) + sprite.draw(this) + + sprite.setSize(sprite.regionWidth.toFloat(), sprite.regionHeight.toFloat()) + sprite.rotation = 0f + sprite.color = oldColor } fun Sprite.applyOrigin(origin: SpriteOrigin) {