スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

web拍手 by FC2   

[RGSS]敵体力ゲージ

使い方は → こちら

※画像を使わないデフォルトのゲージ描画処理を修正する可能性があります。

[RGSS]敵体力ゲージ
戦闘画面で敵の頭付近に体力ゲージを表示します。

スクリーンショット サムネイルクリックで拡大画像が見られます。
rgss_enemylife.jpg

プログラムは続きにあります。

=begin
===============================================================================
  ☆★☆★☆★☆★ 敵体力ゲージ ★☆★☆★☆★☆
=============================================================================== 

 製作・開発:STERS

  Page::http://stersblog.blog15.fc2.com/

導入方法------------------------------------------------------------------

    このスクリプトを Scene_Debug より下 Main より上に
   新しく作ったセクションにコピペして入れてください。
    
--------------------------------------------------------------------------

これを導入することで
敵の体力をゲージで表示できます
ができるようになります。

使い方--------------------------------------------------------------------
1.まずはこのスクリプトを導入してください。

2.設定項目を編集すれば、終了です。

--------------------------------------------------------------------------
=end
class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # ★ 設定項目
  #--------------------------------------------------------------------------
  #-------------------------------
  #        ゲージの画像
  #
  #  Windowskins へと入れてください。
  #  ( nil or "" の場合は色の方を使用 )
  #--------------------------------
  ENEMY_GAUGE_PICTURE = ""
  
  #-------------------------------
  #        ゲージの背景画像
  #
  #  Windowskins へと入れてください。
  #  ( nil or "" の場合は色の方を使用 )
  #--------------------------------
  ENEMY_GAUGE_BACK_PICTURE = ""
  
  #-----------------------
  #     ゲージの長さ
  #-----------------------
  ENEMY_GAUGE_WIDTH = 50
  
  #-----------------------
  #     ゲージの高さ
  #-----------------------
  ENEMY_GAUGE_HEIGHT = 10
  
  #-----------------------
  #     ゲージの色
  #-----------------------
  ENEMY_GAUGE_COLOR = Color.new(255,255,255)
  
  #-----------------------
  #    ゲージの背景色
  #-----------------------
  ENEMY_GAUGE_BACK = Color.new(0,0,0)
  
  #-----------------------------------------
  #    ダメージ表示と同時に増減させるか?
  #-----------------------------------------
  ENEMY_GAUGE_DAMAGE = true
  
#==============================================================================
# ■ Sprite_Battler
#==============================================================================
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias enemy_hp_gauge_initialize initialize unless $@
  def initialize(viewport, battler = nil)
    if battler.class == Game_Enemy
      @last_hp = 0
      @max_hp = battler.hp
      #@value = (@last_hp - battler.hp).abs / Graphics.frame_rate
      #  @value = battler.maxhp/10/Graphics.frame_rate if @value < battler.maxhp/10/Graphics.frame_rate
      begin
        @battler_w = RPG::Cache.battler(battler.battler_name,0).width
        @battler_h = RPG::Cache.battler(battler.battler_name,0).height
      rescue
        @battler_w = 0
        @battler_h = 0
      end
      @gauge = Sprite.new(viewport)
      if ENEMY_GAUGE_PICTURE != "" and ENEMY_GAUGE_PICTURE != nil
        @gauge.bitmap = RPG::Cache.windowskin(ENEMY_GAUGE_PICTURE)
      else
        @gauge.bitmap = Bitmap.new(ENEMY_GAUGE_WIDTH,ENEMY_GAUGE_HEIGHT)
      end
      if ENEMY_GAUGE_BACK_PICTURE != "" and ENEMY_GAUGE_BACK_PICTURE != nil
        @gauge_back = Sprite.new(viewport)
        @gauge_back.bitmap = RPG::Cache.windowskin(ENEMY_GAUGE_BACK_PICTURE)
      end
      @gauge_fg = true
    end
    enemy_hp_gauge_initialize(viewport,battler)
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias enemy_hp_gauge_dispose dispose unless $@
  def dispose
    if @battler.class == Game_Enemy
      unless @gauge.disposed?
        @gauge.bitmap.dispose
        @gauge.dispose
      end
    end
    enemy_hp_gauge_dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias enemy_hp_gauge_update update unless $@
  def update
    if @battler != nil and @battler.class == Game_Enemy
      @gauge_fg = true if @battler.damage_pop
    end
    enemy_hp_gauge_update
    if @battler != nil and @battler.class == Game_Enemy
      if @last_hp != @battler.hp and @gauge_fg == true
        @battler.hp = 0 if @battler.hp < 0
        @value = (@last_hp - battler.hp).abs / Graphics.frame_rate
        @value = battler.maxhp/10/Graphics.frame_rate if @value < battler.maxhp/10/Graphics.frame_rate
        @value = (@last_hp - @battler.hp).abs if (@last_hp - @battler.hp).abs < @value
        if @last_hp < @battler.hp
          @last_hp += @value
        elsif @last_hp > @battler.hp
          @last_hp -= @value
        end
      elsif @gauge_fg == true
        @gauge_fg = false
      end
      if @gauge_back != nil
        @gauge_back.x = @gauge.x = self.x - 15
        @gauge_back.y = @gauge.y = self.y + 30
        @gauge_back.ox = @gauge.ox = self.ox
        @gauge_back.oy = @gauge.oy = self.oy
        @gauge.z = self.z + 100
        @gauge_back.z = @gauge.z - 1
        @gauge_back.src_rect.width = ENEMY_GAUGE_WIDTH
        @gauge_back.src_rect.height = ENEMY_GAUGE_HEIGHT
        @gauge_back.opacity = @gauge.opacity = self.opacity
      else
        @gauge.x = self.x - 15
        @gauge.y = self.y + 30
        @gauge.z = self.z + 100
        @gauge.opacity = self.opacity
        @gauge.ox = self.ox
        @gauge.oy = self.oy
      end
      if ENEMY_GAUGE_PICTURE != "" and ENEMY_GAUGE_PICTURE != nil
        @gauge.src_rect.width = ENEMY_GAUGE_WIDTH * @last_hp / @max_hp
        @gauge.src_rect.height = ENEMY_GAUGE_HEIGHT
      else
        @gauge.bitmap.clear
        @gauge.bitmap.fill_rect(0,0,ENEMY_GAUGE_WIDTH,ENEMY_GAUGE_HEIGHT,ENEMY_GAUGE_BACK)
        @gauge.bitmap.fill_rect(0,0,ENEMY_GAUGE_WIDTH * @last_hp / @max_hp,ENEMY_GAUGE_HEIGHT,ENEMY_GAUGE_COLOR)
      end
    end
  end
end

web拍手 by FC2   

コメントの投稿


非公開コメント

コメント

STERS's Development Room

STERSの開発室っぽい何か。


プロフィール

Name:STERS
Unity3D/C#/PHP/js/C++/VB
などを勉強中です

[STERS's Room]
[ファイル置き場]

カテゴリー
最近の記事
最近のコメント
カレンダー
08 ≪│2017/09│≫ 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
RSSリンクの表示
ブログ内Google検索
Google
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。