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

Project1

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

[已经解决] 请问怎么在选取菜单的时候让背景完全透明

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2016-1-9
帖子
6
跳转到指定楼层
1
发表于 2016-11-16 22:22:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
   想做成像仙剑那样除了状态栏和金钱栏外其余完全透明的窗口。
    #--------------------------------------------------------------------------
  # ● 生成背景
  #--------------------------------------------------------------------------
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(0, 0, 0, 0)#(16, 16, 16, 128)
  end

#--------------------------------------------------------------------------
  # ● 获取背景用的场景截图
  #--------------------------------------------------------------------------
  def self.background_bitmap
    @background_bitmap
  end
end
#------------------------------------------------------------------
@background_bitmap = nil      

9529.tmp.png (91.6 KB, 下载次数: 36)

9529.tmp.png

891E.tmp.jpg (138.16 KB, 下载次数: 34)

891E.tmp.jpg

评分

参与人数 1星屑 +50 收起 理由
RaidenInfinity + 50 结帖

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2016-1-9
帖子
6
2
 楼主| 发表于 2016-11-16 22:31:42 | 只看该作者
顺便再请教个问题,结束游戏之类的符号 按照我目前的理解是在游戏的"Data/System.rvdata2"文件中

如果我想将"结束游戏"改成"结束"应该怎么做?

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

3
发表于 2016-11-16 22:51:49 | 只看该作者
修改畫紅線的地方


第一個你不是做好了嗎~
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2016-1-9
帖子
6
4
 楼主| 发表于 2016-11-16 22:58:07 | 只看该作者

  谢谢啦~ 原来资料库里就可以改啊~

第一个我做出来的效果不是完全透明
有一种贴了一层毛玻璃的感觉。。。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

5
发表于 2016-11-16 23:33:24 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-17 00:13 编辑

試試看這個ˊ
RUBY 代码复制
  1. class Scene_Menu < Scene_MenuBase
  2.   def start
  3.     super
  4.     create_command_window
  5.     create_gold_window
  6.     create_status_window
  7.   end
  8.   def create_gold_window
  9.     @gold_window = Window_Gold.new
  10.   end
  11.   def create_command_window
  12.     @command_window = Window_MenuCommand.new
  13.     @command_window.set_handler(:item,    method(:command_item))
  14.     @command_window.set_handler(:skill,    method(:command_personal))
  15.     @command_window.set_handler(:equip,    method(:command_personal))
  16.     @command_window.set_handler(:status,    method(:command_personal))
  17.     @command_window.set_handler(:formation,    method(:command_formation))
  18.     @command_window.set_handler(:save,    method(:command_save))
  19.     @command_window.set_handler(:game_end,    method(:command_game_end))
  20.  
  21.     @command_window.set_handler(:cancel,    method(:return_scene))
  22.   end
  23.   def create_status_window
  24.     @status_window = Window_MenuStatus.new(160, 0)
  25.     @status_window.visible = false
  26.   end
  27.   def command_personal
  28.     on_personal_ok
  29.   end
  30. end
  31. class Window_MenuCommand < Window_Command
  32.   def initialize
  33.     super(0, 47)
  34.     self.opacity = 255 if SceneManager.scene_is?(Scene_Menu)
  35.     select_last
  36.   end
  37.   def window_width
  38.     return 160
  39.   end
  40.   def window_height
  41.     return 192
  42.   end
  43.   def make_command_list
  44.     add_command(Vocab::item,   :item,   main_commands_enabled)
  45.     add_command(Vocab::skill,   :skill,   main_commands_enabled)
  46.     add_command(Vocab::equip,   :equip,   main_commands_enabled)
  47.     add_command(Vocab::status,   :status,   main_commands_enabled)
  48.     add_command(Vocab::formation,   :formation,   false)
  49.     add_command(Vocab::save,   :save,   save_enabled)
  50.     add_command(Vocab::game_end,   :game_end)
  51.  
  52.   end
  53.   def alignment
  54.     return 0
  55.   end
  56. end
  57. class Window_MenuStatus < Window_Selectable
  58.   def initialize(x, y)
  59.     super(x, y, window_width, window_height)
  60.     @pending_index = -1
  61.     self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
  62.     refresh
  63.   end
  64.   def window_width
  65.     return 384
  66.   end
  67.   def window_height
  68.     return 416
  69.   end
  70.   def item_height
  71.     return (height - standard_padding * 2) / 4
  72.   end
  73.   def draw_item(index)
  74.     actor = $game_party.members[index]
  75.     enabled = $game_party.battle_members.include?(actor)
  76.     rect = item_rect(index)
  77.     draw_item_background(index)
  78.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  79.     draw_actor_simple_status(actor, rect.x, rect.y)
  80.   end
  81.   def draw_actor_simple_status(actor, x, y)
  82.     draw_actor_name(actor, x + 108, y + 12)
  83.     draw_actor_level(actor, x + 108, y + 36)
  84.     draw_actor_icons(actor, x + 108, y + 60)
  85.     draw_actor_class(actor, x + 228, y + 12)
  86.     draw_actor_hp(actor, x + 228, y + 36)
  87.     draw_actor_mp(actor, x + 228, y + 60)
  88.   end
  89.   def draw_face(face_name, face_index, x, y, enabled = true)
  90.     bitmap = Cache.face(face_name)
  91.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
  92.     contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
  93.     bitmap.dispose
  94.   end
  95.   def draw_actor_name(actor, x, y, width = 112)
  96.     change_color(hp_color(actor))
  97.     draw_text(x, y, width, 24, actor.name)
  98.   end
  99.   def draw_actor_level(actor, x, y)
  100.     change_color(system_color)
  101.     draw_text(x, y, 32, line_height, Vocab::level_a)
  102.     change_color(normal_color)
  103.     draw_text(x + 56 - 24, y, 24, 24, actor.level, 2)
  104.   end
  105.   def draw_actor_icons(actor, x, y, width = 96)
  106.     icons = (actor.state_icons + actor.buff_icons)[0, ((24/24)*width)/24]
  107.     icons.each_with_index {|n, i| draw_icon(n, x + 24 * (i % (width / 24)), y + 24 * (i / (width / 24))) }
  108.   end
  109.   def draw_actor_class(actor, x, y, width = 112)
  110.     change_color(normal_color)
  111.     draw_text(x, y, width, 24, actor.class.name)
  112.   end
  113.   def draw_actor_hp(actor, x, y, width = 124)
  114.     draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  115.     change_color(system_color)
  116.     draw_text(x, y, 30, line_height, Vocab::hp_a)
  117.     draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
  118.     hp_color(actor), normal_color)
  119.     end
  120.   def draw_actor_mp(actor, x, y, width = 124)
  121.     draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  122.     change_color(system_color)
  123.     draw_text(x, y, 30, line_height, Vocab::mp_a)
  124.     draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
  125.     mp_color(actor), normal_color)
  126.   end
  127. end
  128. class Window_MenuActor < Window_MenuStatus
  129.   def initialize
  130.     super(0, 0)
  131.     self.visible = false
  132.   end
  133.   def window_height
  134.     Graphics.height
  135.   end
  136. end
  137. class Window_Gold < Window_Base
  138.   def initialize
  139.     super(0, 0, window_width, 48)
  140.     self.opacity = 255 if SceneManager.scene_is?(Scene_Menu)
  141.     refresh
  142.   end
  143.   def window_width
  144.     return 160
  145.   end
  146.   def refresh
  147.     contents.clear
  148.     change_color(system_color)
  149.     draw_text(4, 0, contents_width - 8, line_height, 'Gold')
  150.     cx = text_size(currency_unit).width
  151.     change_color(normal_color)
  152.     draw_text(4, contents_height - line_height, contents.width - 8 - cx - 2, line_height, value, 2)
  153.     change_color(system_color)
  154.     draw_text(4, contents_height - line_height, contents.width - 8, line_height, currency_unit, 2)
  155.   end
  156. end


毛玻璃的現象可以用這段去除

RUBY 代码复制
  1. module SceneManager
  2. def self.snapshot_for_background
  3.     @background_bitmap.dispose if @background_bitmap
  4.     @background_bitmap = Graphics.snap_to_bitmap
  5.   end
  6.   end

点评

補上一段代碼 順便咬一口肉包~  发表于 2016-11-17 00:15
補上一段代碼 順便咬一口肉包~  发表于 2016-11-17 00:15
想做成像仙剑那样除了状态栏和金钱栏外其余完全透明的窗口"我是照這個要求,再參考附圖的配置作的!  发表于 2016-11-17 00:08
楼主意思应该是希望create_background透明(看上去就像没有create_background一样),不是窗口透明化吧...  发表于 2016-11-16 23:58

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2016-1-9
帖子
6
6
 楼主| 发表于 2016-11-17 09:52:39 | 只看该作者
QQ蚊子湯 发表于 2016-11-16 23:33
試試看這個ˊ
class Scene_Menu < Scene_MenuBase
  def start

谢谢啦~~~  用你的方法问题已经解决了,之前自己有些问题理解错了,现在看明白了~

前面修改的Scene_Menu类应该是排版的一些问题吧?
我先自己试着排下,然后有问题再照你的改~{:2_280:}

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 07:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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