RGSS3備忘録その5エネミー選択時のエネミーハイライト

こんばんわ( ^ω^)
いやぁ 涼しくなってきましたねぇ~。
このブログをご覧になっている皆さんにだけ、
とっておきのスクリプトを伝授したいと思います。

まずは下のスクリーンショットを見てください。
111222_01_weblog.jpg
神経質なあなたはきっと
「スライムMってどいつやねん!!(`・д・´)」
と思うはずです。

今日はそんなせっかちさんのために、
エネミー選択時に選択中のエネミーをハイライト
させるっていうスクリプトの改良をしました。
正確に言うと、選択していないエネミーを少し
暗くするんですがね。

以下スクリプトです。

module Suppon
  EnemyCursor004 = true #使用しない場合はfalseにしてください。
end

class Spriteset_Battle
  alias suppon004_initialize initialize
  def initialize
    create_enemy_cursor if Suppon::EnemyCursor004
    suppon004_initialize
  end
 
  alias suppon004_dispose dispose
  def dispose
    suppon004_dispose
    @triangle.dispose if Suppon::EnemyCursor004
  end
 
  alias suppon004_update update
  def update
    suppon004_update
    update_triangle if Suppon::EnemyCursor004
  end
 
  def create_enemy_cursor
    @triangle = Sprite.new(@viewport1)
    @triangle.bitmap = Bitmap.new(32, 32)
    @triangle.bitmap.font.size = 32
    @triangle.bitmap.draw_text(0, 0, 32, 32, "▼", 1)
    @triangle.opacity = 0
    @triangle.z = 1000
    @triangle_anime_count = 0
    @triangle_base_y = 0
  end
 
  def move_enemy_cursor(index)
    enemy_sprite = active_enemy_sprites[index]
    @triangle.opacity = 255
    @triangle.x = enemy_sprite.x
    @triangle_base_y = enemy_sprite.y - enemy_sprite.height - 10
    @triangle.y = @triangle_base_y
    change_color(index)
  end

  def active_enemy_sprites
    return @enemy_sprites.reverse.select{|e| e.battler.alive?}
  end
 
  def change_color(index)
    active_enemy_sprites.each{|s| s.set_dark_color}
    active_enemy_sprites[index].set_original_color
  end

  def end_enemy_selection
    active_enemy_sprites.each{|s| s.set_original_color}
    @triangle.opacity = 0
  end
 
  def update_triangle
    @triangle.y = @triangle_base_y + Math.sin(@triangle_anime_count) * 4
    @triangle_anime_count += 0.2
  end
end

class Window_BattleEnemy
  def select(index)
    super(index)
    call_handler(:cursor_moved) if Suppon::EnemyCursor004
  end
end

class Scene_Battle
  alias suppon004_create_enemy_window create_enemy_window
  def create_enemy_window
    suppon004_create_enemy_window
    if Suppon::EnemyCursor004
      @enemy_window.set_handler(:cursor_moved, method(:enemy_cursor_moved))
    end
  end
 
  alias suppon004_select_enemy_selection select_enemy_selection
  def select_enemy_selection
    suppon004_select_enemy_selection
    return unless Suppon::EnemyCursor004
    @skill_window.hide
    @item_window.hide
  end
 
  def enemy_cursor_moved
    @spriteset.move_enemy_cursor(@enemy_window.index)
  end
 
  alias suppon004_on_enemy_ok on_enemy_ok
  def on_enemy_ok
    @spriteset.end_enemy_selection if Suppon::EnemyCursor004
    suppon004_on_enemy_ok
  end
 
  alias suppon004_on_enemy_cancel on_enemy_cancel
  def on_enemy_cancel
    unless Suppon::EnemyCursor004
      suppon004_on_enemy_cancel
      return
    end
    @spriteset.end_enemy_selection
    @enemy_window.hide
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :skill
      @skill_window.activate.show
    when :item
      @item_window.activate.show
    end
  end
end

class Sprite_Battler
  def set_dark_color
    @original_color = self.color.clone unless @original_color
    self.color.set(0, 0, 0, 150)
  end
  def set_original_color
    self.color.set(@original_color) if @original_color
    @original_color = nil
  end
end



長いですが、気にしないでください。(つω;`)
何一つ無駄はありませんから。(←嘘の確率98%)

このスクリプトをここに追加っていうところに挿入すると
こんな風になるはずです。

111222_02_weblog.jpg

これで、選択中のエネミーがどいつなのか、あるいはドイツなのか
わかるようになりました。ヤッタネ( ^ω^)

ちなみに、スキルや、アイテムのターゲットがエネミー単体の場合にも、
画面上のどのエネミーを選択しているのかわかるようにしました。
めでたしめでたし( ^ω^)
スポンサーサイト

テーマ : RPGツクール
ジャンル : ゲーム

コメントの投稿

管理者にだけ表示を許可する

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

> はじめまして。こちらの素材使わせていただきたいのですが、規約等はございますか?

KTさん
こちらこそはじめまして( ^ω^)
ここにあります素材はすべて、ご自由にお使いいただけます。
改良も転載も自由です。( ^ω^)
てか、返信遅くなってすみません。(´;ω;`)ウッ
プロフィール

Suppon

Author:Suppon
すっぽんでーす。(^▽^)
カルドラ鋭意制作中( ・`ω・´)
Twitter => suppon01
メールはこちらへ
suppon2008@gmail.com

Twitter...

Twitter Reload

最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる