Sprite Mover - woratana - 01-22-2009
Sprite Mover
Version 1.0
by Woratana
Release Date: 02/06/2008
Introduction
This is a little snippet I wrote for my project.
It's to fix the problem that sprite is too high or too low for the tiles
behind.
I actually ran into this problem when I'm trying to put stuffs in 1
block height of cave's ground.
So I think to use script is easier than edit the sprite image~ :D
Enjoy~ :lol:
Screenshots
The red fire use Sprite Mover, the blue fire doesn't~
Script
Place it above main
Code: #===============================================================
# ? [VX Snippet] ? Sprite Mover ? ?
# * Move sprite in pixel to get right location~ *
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 02/06/2008
# ? Version: 1.0
#--------------------------------------------------------------
#==================================================================
# ** HOW TO USE **
#-----------------------------------------------------------------
# * In the event page that you want to move sprite, add comment:
# MOVE x_plus, y_plus
# ** x_plus: how many pixel you want to move sprite horizontally
# (- number: move left | + number: move right)
# ** y_plus: how many pixel you want to move sprite vertically
# (- number: move up | + number: move down)
# * For example, add comment:
# MOVE 0, -20
# ** to move sprite up 20 pixel~
#==================================================================
class Game_Event < Game_Character
attr_accessor :spr_move
alias wora_mover_gameve_setup setup
def setup(*args)
wora_mover_gameve_setup(*args)
mover = comment?('MOVE', true)
if !mover[0]
@spr_move = nil
else
@spr_move = @list[mover[1]].parameters[0].clone
@spr_move.sub!('MOVE','').gsub!(/\s+/){''}
@spr_move = @spr_move.split(',')
@spr_move.each_index {|i| @spr_move[i] = @spr_move[i].to_i }
end
end
def comment?(comment, return_index = false )
if !@list.nil?
for i in 0...@list.size - 1
next if @list[i].code != 108
if @list[i].parameters[0].include?(comment)
return [true, i] if return_index
return true
end
end
end
return [false, nil] if return_index
return false
end
end
class Sprite_Character < Sprite_Base
alias wora_mover_sprcha_upd update
def update
wora_mover_sprcha_upd
if @character.is_a?(Game_Event) and !@character.spr_move.nil?
self.x = @character.screen_x + @character.spr_move[0]
self.y = @character.screen_y + @character.spr_move[1]
end
end
end
Instruction
In the event page that you want to move sprite, add comment:
Quote:MOVE x_plus, y_plus
** x_plus: how many pixel you want to move sprite horizontally
(- number: move left | + number: move right)
** y_plus: how many pixel you want to move sprite vertically
(- number: move up | + number: move down)
For example, add comment:
Quote:MOVE 0, -20
to move sprite up 20 pixel~
Author's Notes
Free for use in your work if credit is included.
Bug Report?
Please give me these informations:
Quote:- What is it says in error window?
- When is it get error? (Right after run game, when you choose
something, etc.)
- Do you have any other scripts running in your game that may crash with
this script?
|