Save-Point
Sprite Mover - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+--- Thread: Sprite Mover (/thread-2338.html)



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
[Image: zjuhqq.jpg]
The red fire use Sprite Mover, the blue fire doesn't~


Script
Place it above main
[Image: 25thhqt.jpg]
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?