閲覧数 366 推奨数 1 コメント 0
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
■ Sprite_Gauge
#------------------------------------------------------------------------------
#  게이지를 스프라이트 합니다.
#
#==============================================================================

class Sprite_Gauge < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # 버틀러
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #     viewport : 뷰포트
  #     battler  : 버틀러 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
  end
  #--------------------------------------------------------------------------
  # ● 해방
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    super
    # 버틀러가 nil 의 경우
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
      #대상 몬스터의 높이를 구함
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      battler_height = RPG::Cache.battler(@battler_name, @battler_hue).height
      #대상 몬스터의 최대 Hp와 현재 HP를 구함
      @battler_maxHP = @battler.base_maxhp
      @battler_HP = @battler.hp
      #게이지바 그림 로드
      self.bitmap = RPG::Cache.battler("게이지바2.bmp", 0)
      @width = bitmap.width
      @height = bitmap.height
      self.src_rect = Rect.new( 0, 0, @battler_HP * @width / @battler_maxHP, 20)
      self.ox = @width / 2  
      self.oy = @height
      # 전투 불능 또는 숨어 상태라면 불투명도를 0 으로 한다
      if @battler.dead? or @battler.hidden
        self.opacity = 0
      end

    # 불가시의 경우
    unless @battler_visible
      # 출현
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # 가시의 경우
    if @battler_visible
      # 도주
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # 코라프스
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        collapse
        @battler_visible = false
      end
    end
    battler_height -= 15 if battler_height > 250
    # 스프라이트의 좌표를 설정
    self.x = @battler.screen_x
    self.y = @battler.screen_y - battler_height - 10
    self.z = @battler.screen_z
  end
end
#==============================================================================
# ■ Spriteset_Battle
#------------------------------------------------------------------------------
#  배틀 화면의 스프라이트를 정리한 클래스입니다.이 클래스는 Scene_Battle 곳간
# 스의 내부에서 사용됩니다.
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_reader   :viewport1                # 에너미측의 뷰포트
  attr_reader   :viewport2                # 액터측의 뷰포트
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize
    # 뷰포트를 작성
    @viewport1 = Viewport.new(0, 0, 640, 320)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport4 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 101
    @viewport3.z = 200
    @viewport4.z = 5000
    # 배틀 백 스프라이트를 작성
    @battleback_sprite = Sprite.new(@viewport1)
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 에너미 게이지바 스프라이트를 작성
    @enemy_gauge_sprites = []
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 에너미 스프라이트를 작성
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
      @enemy_gauge_sprites.push(Sprite_Gauge.new(@viewport1, enemy))
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    end
    # 액터 스프라이트를 작성
    @actor_sprites = []
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    # 기후를 작성
    @weather = RPG::Weather.new(@viewport1)
    # 픽쳐 스프라이트를 작성
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport3,
        $game_screen.pictures[i]))
    end
    # 타이머 스프라이트를 작성
    @timer_sprite = Sprite_Timer.new
    # 프레임 갱신
    update
  end
  #--------------------------------------------------------------------------
  # ● 해방
  #--------------------------------------------------------------------------
  def dispose
    # 배틀 백 비트 맵이 존재하고 있으면 해방
    if @battleback_sprite.bitmap != nil
      @battleback_sprite.bitmap.dispose
    end
    # 배틀 백 스프라이트를 해방
    @battleback_sprite.dispose
#ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 에너미 스프라이트, 액터 스프라이트를 해방
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      sprite.dispose
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 기후를 해방
    @weather.dispose
    # 픽쳐 스프라이트를 해방
    for sprite in @picture_sprites
      sprite.dispose
    end
    # 타이머 스프라이트를 해방
    @timer_sprite.dispose
    # 뷰포트를 해방
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
    @viewport4.dispose
  end
  #--------------------------------------------------------------------------
  # ● 효과 표시중 판정
  #--------------------------------------------------------------------------
  def effect?
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 효과가 하나에서도 표시중이라면 true 를 돌려준다
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      return true if sprite.effect?
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    return false
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    # 액터 스프라이트의 내용을 갱신 (액터의 교체에 대응)
    @actor_sprites[0].battler = $game_party.actors[0]
    @actor_sprites[1].battler = $game_party.actors[1]
    @actor_sprites[2].battler = $game_party.actors[2]
    @actor_sprites[3].battler = $game_party.actors[3]
    # 배틀 가방의 파일명이 현재의 것과 다른 경우
    if @battleback_name != $game_temp.battleback_name
      @battleback_name = $game_temp.battleback_name
      if @battleback_sprite.bitmap != nil
        @battleback_sprite.bitmap.dispose
      end
      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
      @battleback_sprite.src_rect.set(0, 0, 640, 320)
    end
#ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 버틀러 스프라이트를 갱신
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      sprite.update
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 기후 그래픽을 갱신
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.update
    # 픽쳐 스프라이트를 갱신
    for sprite in @picture_sprites
      sprite.update
    end
    # 타이머 스프라이트를 갱신
    @timer_sprite.update
    # 화면의 색조와 시이크 위치를 설정
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    # 화면의 플래시색을 설정
    @viewport4.color = $game_screen.flash_color
    # 뷰포트를 갱신
    @viewport1.update
    @viewport2.update
    @viewport4.update
  end
end


입니다

사용법은 그냥 스크립트에 새로 하나 만들어서 붙여넣기 하면 됩니다.
?

List of Articles
番号 タイトル 投稿者 日付 閲覧数
8827 저번 글들과, 이전 글에 대해 묻고 싶습니다. idtptkd 2005.05.17 1475
8826 이전 작가들은 어떻게 되는 건가요? 아렉스 2005.05.17 1265
8825 이전 작가들은 어떻게 되는 건가요? 영원전설 2005.05.18 1323
8824 프루티룹스 질문... 신승일 2005.05.18 1656
8823 창작글만 있는데 감상문 같은 건 쓸수 없나요? 다르칸 2005.05.18 1164
8822 창작글만 있는데 감상문 같은 건 쓸수 없나요? 아렉스 2005.05.18 1204
8821 창작글만 있는데 감상문 같은 건 쓸수 없나요? 천무 2005.05.18 974
8820 창작글만 있는데 감상문 같은 건 쓸수 없나요? 『水』신교 2005.05.18 991
8819 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 밀크마스터 2005.05.18 1296
8818 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 나랑놀자 2005.05.18 1238
8817 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 셉티찡 2005.05.18 1282
8816 릴레이 소설 말인데요... 외로운갈매기 2005.05.18 787
8815 이전의 창작글 게시판의 글은 어케되나요? 천무 2005.05.18 595
8814 이전의 창작글 게시판의 글은 어케되나요? Sir_아사히 2005.05.19 703
8813 윈도우 98에서는 rpgxp안돌아가요 ? 바람을 가르는 자 2005.05.19 869
8812 윈도우 98에서는 rpgxp안돌아가요 ? 미칼렌 2005.05.19 1048
8811 패치 요청... Norid 2005.05.19 591
8810 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; black-angel 2005.05.19 1270
8809 [RPG XP] 게임 테스트 오류. 살려주세요// Norid 2005.05.19 1061
8808 릴레이소설 사래신장전 완결했는데요.. 적랑 2005.05.20 765
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442