注册会员 登录
Project1 返回首页

j433463的个人空间 https://rpg.blue/?312267 [收藏] [复制] [分享] [RSS]

日志

修改小筆記 part.3

已有 517 次阅读2013-1-12 00:45 |个人分类:腳本修改筆記

這是記錄修改心得的筆記,非本人請勿轉載,非商業情況下請隨意使用在您的游戲中,您要用在商業游戲中我也拿您沒輒。

1. 在 Esc 菜單中加入地圖名窗口

 建立一個名稱為 Window_Menu_MapName 腳本如下:

#encoding:utf-8
#==============================================================================
# ■ Window_Menu_MapName
#------------------------------------------------------------------------------
#  顯示地圖名的視窗
#==============================================================================

class Window_Menu_MapName < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化物件
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, fitting_height(1))
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 取得視窗的寬度
  #--------------------------------------------------------------------------
  def window_width
    return 320 #160
  end
  #--------------------------------------------------------------------------
  # ● 重新整理
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_icon(320,0,0)
    draw_text(contents.rect, $game_map.display_name, 1)
  end
  #--------------------------------------------------------------------------
  # ● 開啟視窗
  #--------------------------------------------------------------------------
  def open
    refresh
    super
  end
end

 預設的寬度和金錢窗口一樣 160,但可以自行改 window_width 的值,像本例就是改成 320 了,draw_icon 是描繪圖標的方法,它的 320 是圖標大圖中第三百二十號圖標,要改的話自己算位置。

 打開 Scene_Menu 腳本,在 def start 最後加上:

  create_mapname_window

 然後在生成金錢視窗 end 的下面加上:

  #--------------------------------------------------------------------------
  # ● 生成地圖名視窗
  #--------------------------------------------------------------------------
  def create_mapname_window
    @mapname_window = Window_Menu_MapName.new
    @mapname_window.x = 0
    @mapname_window.y = 0
  end

 自己調整各窗口位置吧。

2. 在 Esc 菜單中加入時間窗口

 XP 的菜單有個累計游戲時間的窗口,但 RMVXA 沒有,現在就自行補上。

 同上一例,建立一個 Window__Menu_Playtime 腳本如下:

#encoding:utf-8
#==============================================================================
# ■ Window_Menu_Playtime
#------------------------------------------------------------------------------
#  顯示遊戲累計時間的視窗
#==============================================================================

class Window_Menu_Playtime < Window_Base
  def initialize
    super(0, 0, window_width, fitting_height(1))
    update
  end
  #--------------------------------------------------------------------------
  # ● 取得視窗的寬度
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end 
  #--------------------------------------------------------------------------
  # ● 更新畫面
  #--------------------------------------------------------------------------
  def update
    super
    return if $game_system.playtime == @playtime
    @playtime = $game_system.playtime
    contents.clear
    draw_icon(280,0,0)
    draw_text(contents.rect, $game_system.playtime_s, 2)
  end
  #--------------------------------------------------------------------------
  # ● 開啟視窗
  #--------------------------------------------------------------------------
  def open
    refresh
    super
  end
end

 然後在 Scene_Menu 中的 def start 加入一行:

  create_playtime_window

 再在剛才的生成地圖名視窗 end 之下加入

  #--------------------------------------------------------------------------
  # ● 生成游戲時間視窗
  #--------------------------------------------------------------------------
  def create_playtime_window
    @playtime_window = Window_Menu_Playtime.new
    @playtime_window.x = 0
    @playtime_window.y = Graphics.height - (@gold_window.height * 2)
  end


3. 菜單金錢窗口加上圖標

 打開 Window_Gold 腳本,在

    draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)

 之上加一行

    draw_icon(362,0,0)


4. 在角色狀態頁背景中加入立繪(大的全身或半身肖像)圖:

 打開 Window_Status 腳本,找到 def refresh 重新整理方法,在 contents.clear 的下方,draw_block1 的上面加上

    draw_player

 然後找一個合適的位置,加上描畫立繪圖的定義

  #--------------------------------------------------------------------------
  # ● 繪制角色立繪
  #--------------------------------------------------------------------------
   def draw_player
    player_filename =  sprintf("player_%02d.png", @actor.id)
    return unless FileTest.exist?("Graphics/Party/" + player_filename)
    bitmap = Cache.load_bitmap("Graphics/Party/", player_filename)
    rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect, 120)
    bitmap.dispose
  end

 立繪圖預設是放在 Graphics/Praty/ 下的,這 Praty 是自己建立的,原本建立工程沒有這個資料夾,要自己建立,把立繪圖放在裏面,它檔名格式是

player_01.png
plsyer_02.png

 檔名中的 01 02 是對應數據庫中角色頁的ID,所以您只要檔名設對了,在狀態頁背景自然會顯示正確的立繪,隊伍重整排列也不會有影響,但如果您把數據庫中的角色前後順序換了,也就是角色的ID不一樣了,您必須將立繪圖的檔名數字改成和當前正確的角色ID,以免張冠李戴,對不上號。



评论 (0 个评论)

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 07:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部