09-21-2005, 01:00 PM
zelda-like map scrolling script
by nakuribon
Sep 21 2005
hope this is of some use to someone!
by nakuribon
Sep 21 2005
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
hope this is of some use to someone!
Code:
class Game_Map
#--------------------------------------------------------------------------
# * Scroll Down
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_down(distance)
@display_y = @display_y + distance
end
#--------------------------------------------------------------------------
# * Scroll Left
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_left(distance)
@display_x = @display_x - distance
end
#--------------------------------------------------------------------------
# * Scroll Right
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_right(distance)
@display_x = @display_x + distance
end
#--------------------------------------------------------------------------
# * Scroll Up
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_up(distance)
@display_y = @display_y - distance
end
end
class Game_Player
def update
# Remember whether or not moving in local variables
last_moving = moving?
# If moving, event running, move route forcing, and message window
# display are all not occurring
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# Move player in the direction the directional button is being pressed
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
# Remember coordinates in local variables
last_real_x = @real_x
last_real_y = @real_y
super
# If character moves down and is positioned lower than the center
# of the screen
if @y % 15 == 0 and @real_y > last_real_y
# Scroll map down
$game_map.scroll_down(16 * 15)
end
# If character moves left and is positioned more let on-screen than
# center
if @x % 20 == 19 and last_real_x > @real_x
# Scroll map left
$game_map.scroll_left(16 * 20)
end
# If character moves right and is positioned more right on-screen than
# center
if @x % 20 == 0 and @real_x > last_real_x
# Scroll map right
$game_map.scroll_right(16 * 20)
end
# If character moves up and is positioned higher than the center
# of the screen
if @y % 15 == 14 and last_real_y > @real_y
# Scroll map up
$game_map.scroll_up(16 * 15)
end
# If not moving
unless moving?
# If player was moving last time
if last_moving
# Event determinant is via touch of same position event
result = check_event_trigger_here([1,2])
# If event which started does not exist
if result == false
# Disregard if debug mode is ON and ctrl key was pressed
unless $DEBUG and Input.press?(Input::CTRL)
# Encounter countdown
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# If C button was pressed
if Input.trigger?(Input::C)
# Same position and front event determinant
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
end