Should I use Pictures or Sprites for flash-like animations?


Nov 13, 2018
Reaction score
First Language
Primarily Uses
Some time ago I created this thread because I was planning on using sprites to create bone animations that would be played during the game. The reason why I opted for sprites, was mainly their z property that I imagined I could use to change the "layer" of the image whenever I needed, while I tried to do that with pictures by copying the properties of one ID and move it to another, it came unsuccesful.

However, I can't find an angle property for sprites, and being able to spin and tilt an image is essential for what I want to do. So I needed to ask some questions to put me in the right path.
  • Is there a way to spin sprite images at all? If there isn't any in the engine itself, would be possible for a plugin to allow that?
  • Is there a way I can change the "z" of a picture without changing their ID by messing with the code? Or maybe even change the ID itself of a picture being shown?
Sorry if this sounds overly complicated, just know that I need to be able to tilt and rotate an image at the same time I make it appear over and below another periodically.

Thanks for the patience.


Well this is embarassing...

I went back and made a long code that actually works for trading properties between different pictureIds, so now it looks like the pictures are overlaying each other, but are just the layers copying the state of each other, feels unnecessary complicated.

On top of that, I'm sure my code is the most rudimentary thing ever, and there is a much more professional way of doing it.

var tradeAngle = $gameScreen.picture(1)._angle;
var tradeBlendMode = $gameScreen.picture(1)._blendMode;
var tradeDuration = $gameScreen.picture(1)._duration;
var tradeName = $gameScreen.picture(1)._name;
var tradeOpacity = $gameScreen.picture(1)._opacity;
var tradeOrigin = $gameScreen.picture(1)._origin;
var tradeRotationSpeed = $gameScreen.picture(1)._rotationSpeed;
var tradeScaleX = $gameScreen.picture(1)._scaleX;
var tradeScaleY = $gameScreen.picture(1)._scaleY;
var tradeTargetOpacity = $gameScreen.picture(1)._targetOpacity;
var tradeTargetScaleX = $gameScreen.picture(1)._targetScaleX;
var tradeTargetScaleY = $gameScreen.picture(1)._targetScaleY;
var tradeTargetX = $gameScreen.picture(1)._targetX;
var tradeTargetY = $gameScreen.picture(1)._targetY;
var tradeTone = $gameScreen.picture(1)._tone;
var tradeToneDuration = $gameScreen.picture(1)._toneDuration;
var tradeToneTarget = $gameScreen.picture(1)._toneTarget;
var tradeX = $gameScreen.picture(1)._x;
var tradeY = $gameScreen.picture(1)._y;

$gameScreen.picture(1)._angle = $gameScreen.picture(2)._angle;
$gameScreen.picture(1)._blendMode = $gameScreen.picture(2)._blendMode;
$gameScreen.picture(1)._duration = $gameScreen.picture(2)._duration;
$gameScreen.picture(1)._name = $gameScreen.picture(2)._name;
$gameScreen.picture(1)._opacity = $gameScreen.picture(2)._opacity;
$gameScreen.picture(1)._origin = $gameScreen.picture(2)._origin;
$gameScreen.picture(1)._rotationSpeed = $gameScreen.picture(2)._rotationSpeed;
$gameScreen.picture(1)._scaleX = $gameScreen.picture(2)._scaleX;
$gameScreen.picture(1)._scaleY = $gameScreen.picture(2)._scaleY;
$gameScreen.picture(1)._targetOpacity = $gameScreen.picture(2)._targetOpacity;
$gameScreen.picture(1)._targetScaleX = $gameScreen.picture(2)._targetScaleX;
$gameScreen.picture(1)._targetScaleY = $gameScreen.picture(2)._targetScaleY;
$gameScreen.picture(1)._targetX = $gameScreen.picture(2)._targetX;
$gameScreen.picture(1)._targetY = $gameScreen.picture(2)._targetY;
$gameScreen.picture(1)._tone = $gameScreen.picture(2)._tone;
$gameScreen.picture(1)._toneDuration = $gameScreen.picture(2)._toneDuration;
$gameScreen.picture(1)._toneTarget = $gameScreen.picture(2)._toneTarget;
$gameScreen.picture(1)._x = $gameScreen.picture(2)._x;
$gameScreen.picture(1)._y = $gameScreen.picture(2)._y;

$gameScreen.picture(2)._angle = tradeAngle;
$gameScreen.picture(2)._blendMode = tradeBlendMode;
$gameScreen.picture(2)._duration = tradeDuration;
$gameScreen.picture(2)._name = tradeName;
$gameScreen.picture(2)._opacity = tradeOpacity;
$gameScreen.picture(2)._origin = tradeOrigin;
$gameScreen.picture(2)._rotationSpeed = tradeRotationSpeed;
$gameScreen.picture(2)._scaleX = tradeScaleX;
$gameScreen.picture(2)._scaleY = tradeScaleY;
$gameScreen.picture(2)._targetOpacity = tradeTargetOpacity;
$gameScreen.picture(2)._targetScaleX = tradeTargetScaleX;
$gameScreen.picture(2)._targetScaleY = tradeTargetScaleY;
$gameScreen.picture(2)._targetX = tradeTargetX;
$gameScreen.picture(2)._targetY = tradeTargetY;
$gameScreen.picture(2)._tone = tradeTone;
$gameScreen.picture(2)._toneDuration = tradeToneDuration;
$gameScreen.picture(2)._toneTarget = tradeToneTarget;
$gameScreen.picture(2)._x = tradeX;
$gameScreen.picture(2)._y = tradeY;

Now it seems that playing this code on a map event while the pictures are in constant movement has caused some bugs, like the wrong picture going to the starting point of another. I suspect it is conflicting with the image manager update function, so I gonna try making the function wait until the trade is over to update.


I should have noticed it earlier, the problem has nothing to do with the "image manager" (which should really be the sprite prototype, my bad), but the fact that the move picture command obviously uses the id of the picture to decides where it moves (duh!), when I planned for the id's to only work as layers, so I shouldn't use it this way.

Maybe I can write a code that returns the id of a picture by scanning through all of them and picking the one with the right name? I'll try it later.
Last edited:

Latest Threads

Latest Profile Posts

Watched a video of a kid in China leaning against a giant ceramic teletuby statue (valued at nearly $4000 apparently) in a toy store and everyone arguing whether it's the parents or the store's fault. I'm just sitting up wondering why anyone would make a giant ceramic toddler toy in the first place other than to deliberately cause exactly that from happening in the first place though.
Plans for vacation? Maybe I'll go visit
So I was working with the save system (yes I'm going to at least use RM's save system, I'm not a total monster)... And I realized I was lonely so I brought along some friends to test stuff out. :LZSexcite:
>Wake up in the night
>Can't sleep
>Draw little freak
>Come up with pancake based puns for attacks
>Back to bed

Forum statistics

Latest member