RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: woratana am Juni 11, 2008, 07:49:24

Titel: + [ Sprite Mover ] +
Beitrag von: woratana am Juni 11, 2008, 07:49:24
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
(http://i25.tinypic.com/zjuhqq.jpg)
The red fire use Sprite Mover, the blue fire doesn't~


Script
Place it above main
(http://i28.tinypic.com/25thhqt.jpg)
#===============================================================
# ? [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:
Zitat
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:
Zitat
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:
Zitat
- 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?
Titel: + [ Sprite Mover ] +
Beitrag von: Caith am Juni 11, 2008, 08:07:46
hey it works great.
no more speciel edits for TileE^^

if a thanks button would be here, you could be sure that i press it.

(If it dont work with other scripts, i will post it.)
Titel: + [ Sprite Mover ] +
Beitrag von: Hanmac am Juni 11, 2008, 08:16:58
i think you can use a rgex ala /MOVE \d+,\d+/
Titel: + [ Sprite Mover ] +
Beitrag von: woratana am Juni 11, 2008, 08:49:21
@Caith
Thanks! :)I'm glad you like it.

@Hanmac
String is easier for everyone who are learning how to script. :D
+ I'm not good at regexp. So this is also easier to me~
Titel: + [ Sprite Mover ] +
Beitrag von: Hanmac am Juni 11, 2008, 09:16:22
after work i make this.
Titel: + [ Sprite Mover ] +
Beitrag von: woratana am Juni 11, 2008, 09:19:19
What did you made?

Sorry, I am pretty confuse in your English. :P
Titel: + [ Sprite Mover ] +
Beitrag von: KeksX am Juni 11, 2008, 09:28:31
i think that he meant:"  i'll try this after work" ...xD

Anyways:
Great script!
SimplePortal 2.3.3 © 2008-2010, SimplePortal