本帖最后由 j433463 于 2013-3-30 10:41 编辑 我想您误会了,背景图不是取代,而是画上去的,可以指定 z 值让一个盖在另一个上面,不会影响到菜单本身,我个的例子截图: 您可以看到,菜单的背景 1-032-72.png 存在,而另一个弓箭手的半身像盖在背景上面,却不影响到菜单上的队伍状态内容, 这整个 Scene_Menu 的修改后内容是: RUBY 代码复制
也就是说,您可以建无数个图片在背景上,只要设好每一张图片的 z 值,而且要保证每一张图的背景是透明的,可以看到底下的图。 代码中只是加了 create_background2 多做一次背景生成,并且设定一下位置和 z 值而已, 如果没记错,窗口默认的 z 值好像是 100 吧?所以背景的 z 值有不少空间可以发挥。 之所以您原来的地图背景会被取代,只是因为我用的背景名 @background_sprite 相同而已,如果您用了教程的方法建立了地图背景, 把它当第一个背景,只需要把我的那个背景生成名称改一下,就像我这例子中第二张背景图,用 @background_sprite2 就可以和地图背景共存, 并没有取代的问题。 |
谢谢您的回复,从您的代码里我知道这种创建背景的方法了。 不过要按照我之前设想的效果的话,您的这种方法实际上是用新的背景图来取代原有的地图背景图。所以我在想可不可以用这样一种思路,就是分别在各个窗口调用窗口的独立背景。按照您给的方法可以给物品、装备、技能等scene创建背景,但scene_menu包含了menu_command、menu_status、Gold三个窗口,这三个窗口在scene类中是没有单独的scene的,那是不是要新建属于他们的单独的scene呢? 纯好奇而提问,其实到了这步窗口的效果也达到了。我主要是想从这些实例的修改来慢慢熟悉ruby,我没有程序基础,稍微有点头疼,呵呵。 |
本帖最后由 j433463 于 2013-3-30 08:53 编辑 如果是要当整个窗口的背景图,方法又不一样了,我拿主菜单为例,图片是整个主菜单的背景,所以要在 Scene_Menu 来改,若是状态页,则是改 Scene_Status ,依此类推。 首先,在 Scene_Menu 的开始处理 def start 中,super 的下面加一行:
(更正一下,这是因为在 Scene_MenuBase 中有定义 def terminate 结束时的处理了) 从这个程序中,我回答您之前的问题,您看到生成背景的方式了,这儿就用到建立 Sprite.new 方法,并且有给一个 @background_sprite 变量名, 所以像这样绘的图就可以用 @background_sprite.z = n 来指定 z 的值。 您也可不去改动默认脚本,用下面我这个方式,在 Main 前插入这样的脚本:
|
画图的方法是读取位图
然后建立一个显示描绘此位图的矩形
再就是开始描绘图形了
最后在画完图之后,把 bitmap 给 dispose 清掉,免残留
|
Scene_MenuBase第29、30行: @background_sprite.bitmap = SceneManager.background_bitmap @background_sprite.color.set(16, 16, 16, 128) 改成: @background_sprite.bitmap = Cache.system("Menubackground") @background_sprite.color.set(0, 0, 0, 0) |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-29 13:51
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.