기타

파노라마 스크롤 스크립트 개량판 by Guillaume777

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
RPG Advocate님의 파노라마 스크롤 스크립트를 개량한 것입니다.  사용법은 원본(http://www.phylomortis.com/resource/script/scr040.html )과 같습니다(원본 페이지에 첨부된 스크린샷을 참조).


#==============================================================================
# Autoscroll script
#------------------------------------------------------------------------------
# Script by RPG Advocate, modified by Guillaume777
# 1
# 2005/12/25
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# Adds accessor for $game_system.autoscroll_x_speed and autoscroll_y_speed
#--------------------------------------------------------------------------
attr_accessor :autoscroll_x_speed
attr_accessor :autoscroll_y_speed
end

class Spriteset_Map
#--------------------------------------------------------------------------
# * Change the panorama x-y for new autoscroll values
#--------------------------------------------------------------------------
alias g7_as_spriteset_map_update update
def update
g7_as_spriteset_map_update # do the normal update

if @panorama.bitmap == nil then return end # if no panorama then do nothing

# if custom autoscroll values are set
if self.autoscroll_x_speed != 0 or self.autoscroll_y_speed != 0
self.scroll #get new scroll_point values

#change the paronama ox and oy for new values
@panorama.ox = self.scroll_point_x
@panorama.oy = self.scroll_point_y

end
end


#--------------------------------------------------------------------------
# Set scroll point x and scroll point y to reflect autoscrolling
#--------------------------------------------------------------------------
def scroll
w = @panorama.bitmap.width
h = @panorama.bitmap.height

self.scroll_frames_x += self.autoscroll_x_speed
self.scroll_frames_y += self.autoscroll_y_speed
while self.scroll_frames_x >= 8
self.scroll_frames_x -= 8
self.scroll_point_x += 1
end
while self.scroll_frames_x <= -8
self.scroll_frames_x += 8
self.scroll_point_x -= 1
end
while self.scroll_frames_y >= 8
self.scroll_frames_y -= 8
self.scroll_point_y += 1
end
while self.scroll_frames_y <= -8
self.scroll_frames_y += 8
self.scroll_point_y -= 1
end
if self.scroll_point_x > w
self.scroll_point_x -= w
end
if self.scroll_point_x < -w
self.scroll_point_x += w
end
if self.scroll_point_y > h
self.scroll_point_y -= h
end
if self.scroll_point_y < -h
self.scroll_point_y += h
end
end

#--------------------------------------------------------------------------
# Returns $game_system.autoscroll_x_speed or 0 if it is nil
#--------------------------------------------------------------------------
def autoscroll_x_speed
return $game_system.autoscroll_x_speed != nil ? $game_system.autoscroll_x_speed : 0
end

#--------------------------------------------------------------------------
# Returns $game_system.autoscroll_y_speed or 0 if it is nil
#--------------------------------------------------------------------------
def autoscroll_y_speed
return $game_system.autoscroll_y_speed != nil ? $game_system.autoscroll_y_speed : 0
end

#--------------------------------------------------------------------------
# Returns @scroll_frames_x or 0 if it is nil
#--------------------------------------------------------------------------
def scroll_frames_x
return @scroll_frames_x != nil ? @scroll_frames_x : 0
end
#--------------------------------------------------------------------------
# Set new @scroll_frames_x
#--------------------------------------------------------------------------
def scroll_frames_x=(value)
@scroll_frames_x = value
end

#--------------------------------------------------------------------------
# Returns @scroll_frames_y or 0 if it is nil
#--------------------------------------------------------------------------
def scroll_frames_y
return @scroll_frames_y != nil ? @scroll_frames_y : 0
end

#--------------------------------------------------------------------------
# Set new @scroll_frames_y
#--------------------------------------------------------------------------
def scroll_frames_y=(value)
@scroll_frames_y = value
end

#--------------------------------------------------------------------------
# Returns @scroll_point_x or 0 if it is nil
#--------------------------------------------------------------------------
def scroll_point_x
return @scroll_point_x != nil ? @scroll_point_x : 0
end

#--------------------------------------------------------------------------
# Set new @scroll_point_x
#--------------------------------------------------------------------------
def scroll_point_x=(value)
@scroll_point_x = value
end

#--------------------------------------------------------------------------
# Returns @scroll_point_y or 0 if it is nil
#--------------------------------------------------------------------------
def scroll_point_y
return @scroll_point_y != nil ? @scroll_point_y : 0
end

#--------------------------------------------------------------------------
# Set new @scroll_point_y
#--------------------------------------------------------------------------
def scroll_point_y=(value)
@scroll_point_y = value
end
end