Project1

标题: [新手教程]怎么添加菜单背景 [打印本页]

作者: ilmynasan    时间: 2012-5-15 23:57
标题: [新手教程]怎么添加菜单背景
本帖最后由 ilmynasan 于 2012-5-15 11:19 编辑

相信各位已经知道怎么修改菜单窗口的位置了……
具体请看其他各位的教程~
第一蛋 (by 小镜子): http://rpg.blue/thread-221522-1-1.html
第二蛋 (by 小镜子): http://rpg.blue/thread-222057-1-1.html
第三章 (by 345912390) : http://rpg.blue/thread-226295-1-4.html
第四章 (by 345912390) : http://rpg.blue/thread-226400-1-1.html

-------------------------------------------------------------------------------------------------------

1。先打开一下默认游戏的菜单(若你该窗口的话,界面应该和我不一样的)

我用红色圈起来的地方没有窗口,可是不是还是变黑了吗?
这是应为RM的脚本里就默认打开窗口时会添加一个背景
我们要改的,就是这个背景

2。按F11进入脚本的Scene_MenuBase找到这行
PHP 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 开始处理
  3.   #--------------------------------------------------------------------------
  4.   def start
  5.     super
  6.     create_background
  7.     @actor = $game_party.menu_actor
  8.   end

其中的 create_background 就是加了那层黑色的代码

3。再往下看
PHP 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 生成背景
  3.   #--------------------------------------------------------------------------
  4.   def create_background
  5.     @background_sprite = Sprite.new
  6.     @background_sprite.bitmap = SceneManager.background_bitmap
  7.     @background_sprite.color.set(16, 16, 16, 128)
  8.   end

这些是具体画出那个背景层次的代码
PHP 代码复制
  1. @background_sprite = Sprite.new

是画出一个sprite(可以想做图像)的代码
PHP 代码复制
  1. @background_sprite.bitmap = SceneManager.background_bitmap

是指定上行画出的sprite的具体图像,在这里,它指定了SceneManager.background_bitmap,一个RM自动生成的单色图像
PHP 代码复制
  1. @background_sprite.color.set(16, 16, 16, 128)

是具体指定sprite的颜色,以及亮度(前三个分别代表 红,绿,蓝,最后一个代表亮度)

所以说,我们要改的就是这些行

4。准备好一个背景图放入任何一个文件(可是为了整理啥的,咱们这里就放进Titles1文件夹吧)


然后记得那行指定图像的代码吗?
把它改了
PHP 代码复制
  1. @background_sprite.bitmap = Cache.title1("Menu_Back")

PHP 代码复制
  1. Cache

是内存的代码(把它想做My Computer吧)
PHP 代码复制
  1. title1

就是文件名,注意是小写 (不过为什么是title而不是titles我就不知道了……
PHP 代码复制
  1. ("Menu_Back")

就是具体文件名
Microsoft的
PHP 代码复制
  1. C:\MyDocument

的 \ 就相当于 RGSS里的 .
指定名字等文字时,必须得用 “ ”围起来
指定文件时,必须得用 ( ) 圈起来

5。再次打开菜单,你会发现背景已经被改了

可是颜色太深了,根本看不叫图片
那么现在你就得改
PHP 代码复制
  1. @background_sprite.color.set(16, 16, 16, 128)

这行了

其实,大部分人在修改背景图片时,颜色亮度已经大概修改完毕了,所以这行是不需要的
可以直接删了

6。再次打开窗口,图片已经变成原本的亮度了

可是有些人看着这图,觉得窗口的背景颜色很碍眼想删掉
这个是属于Window的脚本范围
拿那个选择栏为例

7。进入Window_MenuCommand脚本
PHP 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 初始化对象
  3.   #--------------------------------------------------------------------------
  4.   def initialize
  5.     super(0, 0)
  6.     select_last
  7.   end

的select_last前面加入
PHP 代码复制
  1. self.opacity = 0

这样这个窗口就变成透明的了(当然这里已改成透明,其他所有需要这个脚本的地方也会变透明,各位请注意了~

(请无视其他窗口颜色被改


8。同样的,把菜单里的 金钱窗口(Window_Gold)和状态窗口 (Window_MenuStatus)
最后成功结束!

(当然金钱窗口别的地方也需要……所以你这里可以专门建一个新的 菜单专用的金钱窗口

当然这个教程不包括改变各个窗口的位置……这个你可以按照以前的教程自己琢磨琢磨
各位Enjoy~
有空把自己的菜单登出来吧~
作者: poiuy12348609    时间: 2012-5-19 10:08
本帖最后由 poiuy12348609 于 2012-5-19 15:56 编辑

请问
RGSS 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_MenuStatus
  4. #------------------------------------------------------------------------------
  5. #  菜單畫面中,顯示隊伍成員狀態的窗口
  6. #==============================================================================
  7.  
  8. class Window_MenuStatus < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ● 定義實例變量
  11.   #--------------------------------------------------------------------------
  12.   attr_reader   :pending_index            # 保留位置(整隊用)
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化對象
  15.   #--------------------------------------------------------------------------
  16.   def initialize(x, y)
  17.     super(x, y, window_width, window_height)
  18.     @pending_index = -1
  19.     refresh
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 獲取窗口的寬度
  23.   #--------------------------------------------------------------------------
  24.   def window_width
  25.     Graphics.width - 160
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 獲取窗口的高度
  29.   #--------------------------------------------------------------------------
  30.   def window_height
  31.     Graphics.height
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 獲取項目數
  35.   #--------------------------------------------------------------------------
  36.   def item_max
  37.     $game_party.members.size
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 獲取項目的高度
  41.   #--------------------------------------------------------------------------
  42.   def item_height
  43.     (height - standard_padding * 2) / 4
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 繪制項目
  47.   #--------------------------------------------------------------------------
  48.   def draw_item(index)
  49.     actor = $game_party.members[index]
  50.     enabled = $game_party.battle_members.include?(actor)
  51.     rect = item_rect(index)
  52.     draw_item_background(index)
  53.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  54.     draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 繪制項目的背景
  58.   #--------------------------------------------------------------------------
  59.   def draw_item_background(index)
  60.     if index == @pending_index
  61.       contents.fill_rect(item_rect(index), pending_color)
  62.     end
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 按下確定鍵時的處理
  66.   #--------------------------------------------------------------------------
  67.   def process_ok
  68.     super
  69.     $game_party.menu_actor = $game_party.members[index]
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 返回上一個選擇的位置
  73.   #--------------------------------------------------------------------------
  74.   def select_last
  75.     select($game_party.menu_actor.index || 0)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 設置保留位置(整隊用)
  79.   #--------------------------------------------------------------------------
  80.   def pending_index=(index)
  81.     last_pending_index = @pending_index
  82.     @pending_index = index
  83.     redraw_item(@pending_index)
  84.     redraw_item(last_pending_index)
  85.   end
  86. end

要改在哪里???
作者: 铅笔描绘的思念    时间: 2012-6-2 12:30
表示所有窗口的透明度可以在调用的Scene里改的。
  1. 变量 =窗口名.new
  2. 变量.opacity = 透明度
复制代码
来改
作者: poiuy12348609    时间: 2012-6-14 18:31

作者: tang19990919    时间: 2012-6-14 19:37
应该附加上更改窗口位置的教程,这样二合一还可以赚赚经验{:2_262:}
作者: bob20504    时间: 2012-6-30 20:47
本帖最后由 bob20504 于 2012-6-30 20:48 编辑

我除了加菜單背景還改了Graphics\System裡面的Window
不知道圖會不會不好看...(因為要別人看才會准.. 玩得不是我.. )

我剛開始以為只有上面這張會變
不過後來才發現原來物品狀態等 也會跟著變~
謝謝大大分享新手教程(對我這個嫩嫩新手幫助很多)
另外請幫我看看的各位大大先說聲謝謝(不過有人看嗎? )
作者:     1     时间: 2014-1-1 16:07
       
作者: 天地有正气    时间: 2014-1-1 19:00
    1  发表于 2014-1-1 16:07
       

鄙视刷分~@protosssonny @fux2 召唤版主消灭。
作者: 白衣仙卿    时间: 2014-3-3 13:03
正好用上,多谢楼主
作者: zhy555    时间: 2014-3-22 16:13
请问这里怎么改:
#--------------------------------------------------------------------------
  # ● 生成背景
  #--------------------------------------------------------------------------
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(16, 16, 16, 128)
  end
作者: 双叶GL    时间: 2014-10-14 20:49
最近打算 自己画个装备界面但是,首先感觉菜单栏边框有点碍事,然后背景也碍事,还不如自己画图片呢
作者: 雷影    时间: 2014-12-2 17:06
方法是知道了!有没有方法可以在游戏中自由改变背景?
作者: UFONO1    时间: 2015-6-28 10:18
请问照lz这样做,
可以修改添加了“环形菜单”脚本的菜单吗?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1