Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================
- # ● [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
- attr_accessor :event_mov_offset
- attr_accessor :event_mov_current_offset
- alias wora_mover_gameve_setup initialize
- def initialize(*args)
- @event_mov_offset = []
- wora_mover_gameve_setup(*args)
- for i in 0...self.event.pages.size
- tmp_offset = comment_in_list?('MOVE', self.event.pages[i].list)
- if tmp_offset
- tmp_offset.sub!('MOVE','').gsub!(/\s+/){''}
- tmp_offset = tmp_offset.split(',')
- tmp_offset.each_index {|i| tmp_offset[i] = tmp_offset[i].to_i }
- @event_mov_offset.push(tmp_offset)
- else
- @event_mov_offset.push([0, 0])
- end
- end
- end
- def comment_in_list?(comment, list)
- if !list.nil?
- for i in 0...list.size - 1
- next if list[i].code != 108
- if list[i].parameters[0].include?(comment)
- return list[i].parameters[0]
- end
- end
- return false
- else
- return false
- end
- end
- alias soul_update_game_event update
- def update
- soul_update_game_event
- # pages to zwykła tablica, więc chyba trzeba po prostu porównywać czy
- # jest tym samym elementem (event serio nie przechowuje nigdzie ID aktualnie
- # wybranej strony XD?)
- for i in 0...self.event.pages.size
- if @list === self.event.pages[i].list
- @event_mov_current_offset = @event_mov_offset[i]
- break
- end
- end
- 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.event_mov_current_offset.nil?
- print("Offset: ", @character.event_mov_current_offset[0], " " , @character.event_mov_current_offset[1], "\n")
- self.x = @character.screen_x + @character.event_mov_current_offset[0]
- self.y = @character.screen_y + @character.event_mov_current_offset[1]
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement