Fixed sprites getting stuck
This commit is contained in:
parent
7703128749
commit
f50a346e22
1 changed files with 6 additions and 6 deletions
|
@ -29,11 +29,6 @@ void MaskedSprite::preRenderUpdate()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (previousAngle == angle && previousRenderPosition == renderPosition)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (angle == 0)
|
if (angle == 0)
|
||||||
{
|
{
|
||||||
renderPosition = coordinates->isometric().toScreen();
|
renderPosition = coordinates->isometric().toScreen();
|
||||||
|
@ -45,6 +40,11 @@ void MaskedSprite::preRenderUpdate()
|
||||||
sprite->setPosition(renderPosition);
|
sprite->setPosition(renderPosition);
|
||||||
sprite->setRotation(angle);
|
sprite->setRotation(angle);
|
||||||
|
|
||||||
|
if (previousAngle == angle && previousRenderPosition == renderPosition)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
updateFreshMaskedSprite();
|
updateFreshMaskedSprite();
|
||||||
|
|
||||||
previousAngle = angle;
|
previousAngle = angle;
|
||||||
|
@ -78,7 +78,7 @@ void MaskedSprite::updateFreshMaskedSprite()
|
||||||
coordinatesTopLeftCorner.diagonalWorld().vertical);
|
coordinatesTopLeftCorner.diagonalWorld().vertical);
|
||||||
auto xAxis = rotateVectorByAngle(sf::Vector2f(1, 0), angle);
|
auto xAxis = rotateVectorByAngle(sf::Vector2f(1, 0), angle);
|
||||||
auto yAxis = rotateVectorByAngle(sf::Vector2f(0, -1), angle);
|
auto yAxis = rotateVectorByAngle(sf::Vector2f(0, -1), angle);
|
||||||
float xFactorPerPixel = sprite->getScale().x / WORLD_TO_ISO_SCALE;
|
float xFactorPerPixel = sprite->getScale().x / WORLD_TO_ISO_SCALE * sqrt(2);
|
||||||
float yFactorPerPixel = sprite->getScale().y / WORLD_TO_ISO_SCALE;
|
float yFactorPerPixel = sprite->getScale().y / WORLD_TO_ISO_SCALE;
|
||||||
for (int yOffset = 0; yOffset < textureRect.height; yOffset++)
|
for (int yOffset = 0; yOffset < textureRect.height; yOffset++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue