Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[VX] Necro's Twilight Battles

Necro's Twilight BattlesVersion: 1.0
By: Matt Kaes (Necro_100000)

Introduction

So this is a simple script that I thought would be a really cool addition to anyone's game. It takes the normal background for any battle (You know the wavy one if your not using any battle back scripts.) Well it takes that and changes it slowly in to different colors in a 255 format slowly up and down for each color. It makes a real memorizing effect...

All the same I just made this script and I love it! I think it's an awesome script and no one's tried it before right?

FIXED IT!
It runs smoothly now. Well at least for me now. Thanks Kain Noble.

Features
<Post a bulleted list of features here. This section is optional.>
  • Creates a colorful background for your battle's!
  • Even in battle it constantly changes colors!
  • Plug and Play! No editing needed! Also compatible with all (That I've tired) Scripts!
  • NOW WORKS WITH ALLLLLLLLL CUSTOM BATTLE TYPES! ... Even the tactics one but it's kinda weird....

Screenshots

picture.jpg


Now focus on the background and imagine it changing colors.

Demo

I don't have a demo up right now but It's 1 AM =P Maybe tomorrow...

Script

Code:
 

#==============================================================================

# Necro_100000's (Matt Kaes) Twilight battle script.

#----------------------------------------------------------------------------------------------------

 

#==============================================================================

# ** Spriteset_Battle

#------------------------------------------------------------------------------

#  This class brings together battle screen sprites. It's used within the

# Scene_Battle class.

#==============================================================================

 

class Spriteset_Battle

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    @Color = 255

    @Color1 = 3

    @Color2 = 3

    create_viewports

    create_battleback

    create_battlefloor

    create_enemies

    create_actors

    create_pictures

    create_timer

    update

  end

  #--------------------------------------------------------------------------

  # * Create Viewport

  #--------------------------------------------------------------------------

  def create_viewports

    @viewport1 = Viewport.new(0, 0, 544, 416)

    @viewport2 = Viewport.new(0, 0, 544, 416)

    @viewport3 = Viewport.new(0, 0, 544, 416)

    @viewport2.z = 50

    @viewport3.z = 100

  end

  #--------------------------------------------------------------------------

  # * Create Battleback Sprite

  #--------------------------------------------------------------------------

  def create_battleback

    source = $game_temp.background_bitmap

    bitmap = Bitmap.new(640, 480)

    bitmap.stretch_blt(bitmap.rect, source, source.rect)

    bitmap.radial_blur(90, 12)

    @battleback_sprite = Sprite.new(@viewport1)

    @battleback_sprite.bitmap = bitmap

    @battleback_sprite.ox = 320

    @battleback_sprite.oy = 240

    @battleback_sprite.x = 272

    @battleback_sprite.y = 176

    @battleback_sprite.wave_amp = 8

    @battleback_sprite.wave_length = 240

    @battleback_sprite.wave_speed = 120

      source = $game_temp.background_bitmap

    bitmap = Bitmap.new(640, 480)

    bitmap.stretch_blt(bitmap.rect, source, source.rect)

    bitmap.radial_blur(90, 12)

    @battleback_sprite2 = Sprite.new(@viewport1)

    @battleback_sprite2.bitmap = bitmap

    @battleback_sprite.ox = 320

    @battleback_sprite.oy = 240

    @battleback_sprite.x = 272

    @battleback_sprite.y = 176

    @battleback_sprite2.blend_type = 2

    @battleback_sprite2.z = 1

    @battleback_sprite2.opacity = 155

  end

  #--------------------------------------------------------------------------

  # * Create Battlefloor Sprite

  #--------------------------------------------------------------------------

  def create_battlefloor

    @battlefloor_sprite = Sprite.new(@viewport1)

    @battlefloor_sprite.bitmap = Cache.system("BattleFloor")

    @battlefloor_sprite.x = 0

    @battlefloor_sprite.y = 192

    @battlefloor_sprite.z = 0

    @battlefloor_sprite.opacity = 128

  end

  #--------------------------------------------------------------------------

  # * Create Enemy Sprite

  #--------------------------------------------------------------------------

  def create_enemies

    @enemy_sprites = []

    for enemy in $game_troop.members.reverse

      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))

    end

  end

  #--------------------------------------------------------------------------

  # * Create Actor Sprite

  #    By default, the actor image is not displayed, but a dummy sprite is

  #    created for treating enemies and allies the same, if required.

  #--------------------------------------------------------------------------

  def create_actors

    @actor_sprites = []

    @actor_sprites.push(Sprite_Battler.new(@viewport1))

    @actor_sprites.push(Sprite_Battler.new(@viewport1))

    @actor_sprites.push(Sprite_Battler.new(@viewport1))

    @actor_sprites.push(Sprite_Battler.new(@viewport1))

  end

  #--------------------------------------------------------------------------

  # * Create Picture Sprite

  #--------------------------------------------------------------------------

  def create_pictures

    @picture_sprites = []

    for i in 1..20

      @picture_sprites.push(Sprite_Picture.new(@viewport2,

        $game_troop.screen.pictures[i]))

    end

  end

  #--------------------------------------------------------------------------

  # * Create Timer Sprite

  #--------------------------------------------------------------------------

  def create_timer

    @timer_sprite = Sprite_Timer.new(@viewport2)

  end

  #--------------------------------------------------------------------------

  # * Dispose

  #--------------------------------------------------------------------------

  def dispose

    dispose_battleback_bitmap

    dispose_battleback

    dispose_battlefloor

    dispose_enemies

    dispose_actors

    dispose_pictures

    dispose_timer

    dispose_viewports

  end

  #--------------------------------------------------------------------------

  # * Dispose of Battleback Bitmap

  #--------------------------------------------------------------------------

  def dispose_battleback_bitmap

    @battleback_sprite.bitmap.dispose

    @battleback_sprite2.bitmap.dispose

  end

  #--------------------------------------------------------------------------

  # * Dispose of Battleback Sprite

  #--------------------------------------------------------------------------

  def dispose_battleback

    @battleback_sprite.dispose

    @battleback_sprite2.dispose

  end

  #--------------------------------------------------------------------------

  # * Dispose of Battlefloor Sprite

  #--------------------------------------------------------------------------

  def dispose_battlefloor

    @battlefloor_sprite.dispose

  end

  #--------------------------------------------------------------------------

  # * Dispose of Enemy Sprite

  #--------------------------------------------------------------------------

  def dispose_enemies

    for sprite in @enemy_sprites

      sprite.dispose

    end

  end

  #--------------------------------------------------------------------------

  # * Dispose of Actor Sprite

  #--------------------------------------------------------------------------

  def dispose_actors

    for sprite in @actor_sprites

      sprite.dispose

    end

  end

  #--------------------------------------------------------------------------

  # * Dispose of Picture Sprite

  #--------------------------------------------------------------------------

  def dispose_pictures

    for sprite in @picture_sprites

      sprite.dispose

    end

  end

  #--------------------------------------------------------------------------

  # * Dispose of Timer Sprite

  #--------------------------------------------------------------------------

  def dispose_timer

    @timer_sprite.dispose

  end

  #--------------------------------------------------------------------------

  # * Dispose of Viewport

  #--------------------------------------------------------------------------

  def dispose_viewports

    @viewport1.dispose

    @viewport2.dispose

    @viewport3.dispose

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    update_battleback

    update_battlefloor

    update_enemies

    update_actors

    update_pictures

    update_timer

    update_viewports

  end

  #--------------------------------------------------------------------------

  # * Update Battleback

  #--------------------------------------------------------------------------

  def update_battleback

    @battleback_sprite.update

    @battleback_sprite2.update

    @battleback_sprite2.color = Color.new(@Color,@Color1,@Color2)

    if @Color == 255

      @Color2 -= 3

      if @Color2 == 0

        @Color2 = 3      

        @Color1 += 3

      end

    end

    if @Color1 == 255

      @Color -= 3

      if @Color == 0

        @Color = 3

        @Color2 += 3

      end

    end

    if @Color2 == 255

      @Color1 -= 3

      if @Color1 == 0

        @Color1 = 3      

        @Color += 3

      end

    end

 

  end

  #--------------------------------------------------------------------------

  # * Update Battlefloor

  #--------------------------------------------------------------------------

  def update_battlefloor

    @battlefloor_sprite.update

  end

  #--------------------------------------------------------------------------

  # * Update Enemy Sprite

  #--------------------------------------------------------------------------

  def update_enemies

    for sprite in @enemy_sprites

      sprite.update

    end

  end

  #--------------------------------------------------------------------------

  # * Update Actor Sprite

  #--------------------------------------------------------------------------

  def update_actors

    @actor_sprites[0].battler = $game_party.members[0]

    @actor_sprites[1].battler = $game_party.members[1]

    @actor_sprites[2].battler = $game_party.members[2]

    @actor_sprites[3].battler = $game_party.members[3]

    for sprite in @actor_sprites

      sprite.update

    end

  end

  #--------------------------------------------------------------------------

  # *Update Picture Sprite

  #--------------------------------------------------------------------------

  def update_pictures

    for sprite in @picture_sprites

      sprite.update

    end

  end

  #--------------------------------------------------------------------------

  # * Update Timer Sprite

  #--------------------------------------------------------------------------

  def update_timer

    @timer_sprite.update

  end

  #--------------------------------------------------------------------------

  # * Update Viewport

  #--------------------------------------------------------------------------

  def update_viewports

    @viewport1.tone = $game_troop.screen.tone

    @viewport1.ox = $game_troop.screen.shake

    @viewport2.color = $game_troop.screen.flash_color

    @viewport3.color.set(0, 0, 0, 255 - $game_troop.screen.brightness)

    @viewport1.update

    @viewport2.update

    @viewport3.update

  end

  #--------------------------------------------------------------------------

  # * Determine if animation is being displayed

  #--------------------------------------------------------------------------

  def animation?

    for sprite in @enemy_sprites + @actor_sprites

      return true if sprite.animation?

    end

    return false

  end

end

 

 


Instructions

No resources or graphics are needed! Simply place this script ABOVE ALL IMPORTED SCRIPTS! ^_^ and everything will be A Okay!

Works with the side view battle system as you can see from the screen shot.

FAQ

None ATM

Compatibility

Compatible with everything! However I hope to make it consume less RAM...

Credits and Thanks

Myself! This wasn't really inspired by anything or anyone... It just kinda came to me.

Author's Notes

Sorry it took me so long to fix this..... I was finishing up my first full game and got a bit distant with the forums. ANYWAY. I've fixed it now and removed a lot, if not all the lag, and I removed the crashing error. It should work now. Hopefully. Hope you guys enjoy the script!

Terms and Conditions

Feel free to use it and do with it as you please! Even fell free to change it if you want. But give a guy a break and just throw him some credit? Thanks guys.
 
Hmm...

Code:
@battleback_sprite2.color = Color.new(@Color,@Color1,@Color2)

...Initializing a new color object every frame is probably the reason due to the immense lag, if you continue to use the same Color object and change its properties perhaps it'll run faster. Try just changing it to this...

Code:
@battleback_sprite2.color.set(@Color,@Color1,@Color2)

...and see if that helps at least a tiny bit. Also you can manipulate the properties individually like this example...

Code:
@sprite.color.red += @red

@sprite.color.green += @green

@sprite.color.blue += @blue

Good luck with it :thumb:
 
@Kain Nobel

Hehehe... My bad I never thought about that =.=.

I updated my ruby skills and found a new way to deal this this issue. As for the colors, you'll have to just look though the script if you can and find out how to do it =X. I declared it using a lot of data and wasn't really planing original to make a release of this script. Then I ran into the issues that I fixed. So it lost just about all of it's customizable traits.

Well I fixed it so check it out now.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top