I'm not sure how you'd be able to do that with the bitmap drawing method (
blt()), but it is very easily done with use of a sprite. If you'd set up the sprite for the battler(s) you want to shrink you can easily apply a scale effect. Like so:
@battler_sprite = Sprite.new
@battler_sprite.bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
@battler_sprite.zoom_x = 0.75
@battler_sprite.zoom_y = 0.75
This will work fine. If you're intending to scale battlers for all allies, you could do something similar to this for convenience:
@battlers = []
for actor in $game_party.actors
sprite = Sprite.new
sprite.bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
sprite.zoom_x = 0.75
sprite.zoom_y = 0.75
@battlers << sprite
end
You'd need to position them yourself. In that case, use an integer for loop for that if necessary eg "for i in 0...$game_party.actors.size".
A quick note for the latter prospect, you can dispose of these sprites by one single line of code while they are inside an array:
@battlers.each {|sprite| sprite.dispose}
Which also means if you expand this sprite array later, you don't need to expand the disposing code.
This is all I can think of for scaling sprites inside the program rather than scaling them manually in an image editing application.
EDIT: Just to clarify, the "draw_actor_*" methods always draw on a Bitmap instance object, whereas they make use of the blt method, which draws the bitmap from the cache onto an area on the Bitmap instance and leaves it there. Changing it would require a redraw, which is a heavier task than moving or scaling an existing sprite object.
/Sark