设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 21386|回复: 12
打印 上一主题 下一主题

[已发主站] [新手教程]怎么添加菜单背景

[复制链接]

Lv1.梦旅人

番茄

梦石
0
星屑
49
在线时间
296 小时
注册时间
2010-7-4
帖子
424
跳转到指定楼层
1
发表于 2012-5-15 23:57:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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~
有空把自己的菜单登出来吧~

评分

参与人数 2星屑 +400 +6 收起 理由
Shy07 + 6 主站收录
Kimu + 400 发布奖励

查看全部评分

Lv1.梦旅人

梦石
0
星屑
48
在线时间
543 小时
注册时间
2011-6-25
帖子
441
2
发表于 2012-5-19 10:08:07 | 只看该作者
本帖最后由 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-5-19 15:57
这个应该是决定光标位置的吧…… 是需要改什么?  发表于 2012-5-19 13:25


------------------------------------------我只放我看中的遊戲-----------------------------------------------
臉書:http://www.facebook.com/brian.lee.52643821
  音速君的論壇
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1314
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

3
发表于 2012-6-2 12:30:27 | 只看该作者
表示所有窗口的透明度可以在调用的Scene里改的。
  1. 变量 =窗口名.new
  2. 变量.opacity = 透明度
复制代码
来改
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
543 小时
注册时间
2011-6-25
帖子
441
4
发表于 2012-6-14 18:31:07 | 只看该作者


------------------------------------------我只放我看中的遊戲-----------------------------------------------
臉書:http://www.facebook.com/brian.lee.52643821
  音速君的論壇
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
152 小时
注册时间
2012-1-12
帖子
456
5
发表于 2012-6-14 19:37:10 | 只看该作者
应该附加上更改窗口位置的教程,这样二合一还可以赚赚经验{:2_262:}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
60 小时
注册时间
2012-6-22
帖子
20
6
发表于 2012-6-30 20:47:46 | 只看该作者
本帖最后由 bob20504 于 2012-6-30 20:48 编辑

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

我剛開始以為只有上面這張會變
不過後來才發現原來物品狀態等 也會跟著變~
謝謝大大分享新手教程(對我這個嫩嫩新手幫助很多)
另外請幫我看看的各位大大先說聲謝謝(不過有人看嗎? )

点评

好漂亮~!  发表于 2012-8-14 08:59
有人看的。。。  发表于 2012-7-12 21:28
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
5733
在线时间
72 小时
注册时间
2013-9-22
帖子
3
7
发表于 2014-1-1 16:07:45 | 只看该作者
       

点评

鄙视空白帖刷经验!@fux2 @prossstonly  发表于 2014-1-1 18:56

评分

参与人数 1星屑 -50 收起 理由
怪蜀黍 -50 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

8
发表于 2014-1-1 19:00:49 | 只看该作者
    1  发表于 2014-1-1 16:07
       

鄙视刷分~@protosssonny @fux2 召唤版主消灭。

评分

参与人数 1星屑 -1 收起 理由
怪蜀黍 -1 请使用举报功能

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
89 小时
注册时间
2009-7-8
帖子
11
9
发表于 2014-3-3 13:03:11 | 只看该作者
正好用上,多谢楼主
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2014-3-21
帖子
7
10
发表于 2014-3-22 16:13:49 | 只看该作者
请问这里怎么改:
#--------------------------------------------------------------------------
  # ● 生成背景
  #--------------------------------------------------------------------------
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(16, 16, 16, 128)
  end
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-4-24 18:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表