b. class Game_Switches
Kelas ini menangani Switch yang disusun berdasarkan ‘Array’.
def initialize data = []
end
def []switch_id if data[switch_id] == nil
return false else
return data[switch_id] end
end
def []=switch_id, value if switch_id = 5000
data[switch_id] = value end
end end
Universitas Sumatera Utara
c. class Game_Variables
Kelas ini menangani variable yang disusun berdasarkan ‘Array’.
def initialize data = []
end
def []variable_id if data[variable_id] == nil
return 0 else
return data[variable_id] end
end
def []=variable_id, value if variable_id = 5000
data[variable_id] = value end
end end
Universitas Sumatera Utara
3. Sprites a. class Sprite_Base
Kelas untuk menambahkan animasi sprite. class Sprite_Base Sprite
animations = [] _reference_count = {}
def initializeviewport = nil superviewport
use_sprite = true animation_duration = 0
end def dispose
super dispose_animation
end def update
super if animation = nil
animation_duration -= 1 if animation_duration 4 == 0
update_animation end
end animations.clear
end
Universitas Sumatera Utara
def animation? return animation = nil
end def start_animationanimation, mirror = false
dispose_animation animation = animation
return if animation == nil animation_mirror = mirror
animation_duration = animation.frame_max 4 + 1 load_animation_bitmap
animation_sprites = [] if animation.position = 3 or not animations.include?animation
if use_sprite for i in 0..15
sprite = ::Sprite.newviewport sprite.visible = false
animation_sprites.pushsprite end
unless animations.include?animation animations.pushanimation
end end
end if animation.position == 3
if viewport == nil
Universitas Sumatera Utara
animation_ox = 544 2 animation_oy = 416 2
else animation_ox = viewport.rect.width 2
animation_oy = viewport.rect.height 2 end
else animation_ox = x - ox + width 2
animation_oy = y - oy + height 2 if animation.position == 0
animation_oy -= height 2 elsif animation.position == 2
animation_oy += height 2 end
end end
def load_animation_bitmap animation1_name = animation.animation1_name
animation1_hue = animation.animation1_hue animation2_name = animation.animation2_name
animation2_hue = animation.animation2_hue animation_bitmap1 = Cache.animationanimation1_name,
animation1_hue animation_bitmap2 = Cache.animationanimation2_name,
animation2_hue
Universitas Sumatera Utara
if _reference_count.include?animation_bitmap1 _reference_count[animation_bitmap1] += 1
else _reference_count[animation_bitmap1] = 1
end if _reference_count.include?animation_bitmap2
_reference_count[animation_bitmap2] += 1 else
_reference_count[animation_bitmap2] = 1 end
Graphics.frame_reset end
def dispose_animation if animation_bitmap1 = nil
_reference_count[animation_bitmap1] -= 1 if _reference_count[animation_bitmap1] == 0
animation_bitmap1.dispose end
end if animation_bitmap2 = nil
_reference_count[animation_bitmap2] -= 1 if _reference_count[animation_bitmap2] == 0
animation_bitmap2.dispose end
end
Universitas Sumatera Utara
if animation_sprites = nil for sprite in animation_sprites
sprite.dispose end
animation_sprites = nil animation = nil
end animation_bitmap1 = nil
animation_bitmap2 = nil end
def update_animation if animation_duration 0
frame_index = animation.frame_max - animation_duration + 3 4 animation_set_spritesanimation.frames[frame_index]
for timing in animation.timings if timing.frame == frame_index
animation_process_timingtiming end
end else
dispose_animation end
end def animation_set_spritesframe
cell_data = frame.cell_data
Universitas Sumatera Utara
for i in 0..15 sprite = animation_sprites[i]
next if sprite == nil pattern = cell_data[i, 0]
if pattern == nil or pattern == -1 sprite.visible = false
next end
if pattern 100 sprite.bitmap = animation_bitmap1
else sprite.bitmap = animation_bitmap2
end sprite.visible = true
sprite.src_rect.setpattern 5 192, pattern 100 5 192, 192, 192
if animation_mirror sprite.x = animation_ox - cell_data[i, 1]
sprite.y = animation_oy + cell_data[i, 2] sprite.angle = 360 - cell_data[i, 4]
sprite.mirror = cell_data[i, 5] == 0 else
sprite.x = animation_ox + cell_data[i, 1] sprite.y = animation_oy + cell_data[i, 2]
sprite.angle = cell_data[i, 4]
Universitas Sumatera Utara
sprite.mirror = cell_data[i, 5] == 1 end
sprite.z = self.z + 300 + i sprite.ox = 96
sprite.oy = 96 sprite.zoom_x = cell_data[i, 3] 100.0
sprite.zoom_y = cell_data[i, 3] 100.0 sprite.opacity = cell_data[i, 6] self.opacity 255.0
sprite.blend_type = cell_data[i, 7] end
end def animation_process_timingtiming
timing.se.play case timing.flash_scope
when 1 self.flashtiming.flash_color, timing.flash_duration 4
when 2 if viewport = nil
viewport.flashtiming.flash_color, timing.flash_duration 4 end
when 3 self.flashnil, timing.flash_duration 4
end end
end
Universitas Sumatera Utara
b. class Sprite_Character