class Game_Switches class Game_Variables

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