Project1

标题: 如何讓存取檔和道具菜單的背景不變黑? [打印本页]

作者: ZHL19910725    时间: 2013-3-28 02:37
标题: 如何讓存取檔和道具菜單的背景不變黑?
本帖最后由 ZHL19910725 于 2013-3-29 12:20 编辑

我改了存檔和讀檔,還有道具窗口的寬度和透明度,所以變黑的背景就露出來了,如何在打開道具和存取檔窗口的時候背景還保留在地圖上?


作者: xiaoli999999    时间: 2013-3-28 04:26
你好
请到脚本编辑器
找到Scene_Map这个类
然后把main函数里面的@spriteset.dispose和@message_window.dispose删除或注释掉就可以了
作者: ZHL19910725    时间: 2013-3-28 11:31
本帖最后由 ZHL19910725 于 2013-3-28 13:54 编辑
xiaoli999999 发表于 2013-3-28 04:26
你好
请到脚本编辑器
找到Scene_Map这个类


我試了一下,這樣做在事件塊調用存檔的時候可以保留地圖,但是我在標題畫面和菜單打開存取檔和道具窗口的時候地圖還是會變黑,只是人物被保留下來了

而且這樣畫面中會出現好多主角,就是移動之前的位置被留下來了
作者: xiaoli999999    时间: 2013-3-28 14:29
ZHL19910725 发表于 2013-3-28 11:31
我試了一下,這樣做在事件塊調用存檔的時候可以保留地圖,但是我在標題畫面和菜單打開存取檔和道具窗口的 ...


1:我不是很明白你的意思,什么是“事件塊調用存檔的時候”?

2:“菜單打開存取檔和道具窗口的時候地圖還是會變黑”,这个很奇怪,我试过没有变黑呀,你是在数据库-》系统-》窗口外观图形里改的吗?能截一下你的样式图吗?

3:“而且這樣畫面中會出現好多主角,就是移動之前的位置被留下來了”这个是什么情况?你试一下只删@spriteset.dispose保留@message_window.dispose不要删看行不行。

4:“標題畫面读取存档会变黑”,这个我知道,请到脚本编辑器的Scene_Title类,找到@sprite.bitmap.dispose和@sprite.dispose把他们删掉或注释掉就能在读档时保留标题画面
作者: ZHL19910725    时间: 2013-3-28 14:50
本帖最后由 ZHL19910725 于 2013-3-28 15:20 编辑
xiaoli999999 发表于 2013-3-28 14:29
1:我不是很明白你的意思,什么是“事件塊調用存檔的時候”?

2:“菜單打開存取檔和道具窗口的時候地圖 ...



對不起我說的窗口不是指對話框,就是指遊戲窗口,是背景,現在打開只有人物在地圖裡,但是地圖還是會消失,

事件塊調用存檔就是,用事件塊開啟存檔畫面

另外我用了一個AVG遊戲的菜單腳本,就是直接在地圖一角打開菜單,只有四個選項,這個可以保留地圖場景……


試了一下Title那個,雖然這邊保留了可是進入遊戲打開菜單所有畫面都會變成標題畫面……
(PS:我試試在savefile里直接插入標題畫面好了)




作者: xiaoli999999    时间: 2013-3-28 15:20
本帖最后由 xiaoli999999 于 2013-3-28 15:36 编辑
ZHL19910725 发表于 2013-3-28 14:50
對不起我說的窗口不是指對話框,就是指遊戲窗口,是背景,現在打開只有人物在地圖裡,但是地圖還是會消 ...


1:原来你已经改过原来的脚本了啊,那就难办了,我要先知道你改过哪些脚本才能继续研究,能告诉我你具体改过哪些脚本吗?

2:我知道你想要的效果是想在打开菜单,存档,读档等窗口时保留地图做背景是不是?我就是这样帮你改的呀。


3:我不知道为什么你那里会只留人物不留地图,也许是哪个avg的脚本的问题吧,反正我这里测试没出过问题(我是新建了一个工程然后直接在原来的脚本上改的),或者能把你的工程文件打包发上来吗?我尽量帮你看看
作者: ZHL19910725    时间: 2013-3-28 15:25
本帖最后由 ZHL19910725 于 2013-3-28 16:09 编辑
xiaoli999999 发表于 2013-3-28 15:20
1:原来你已经改过原来的脚本了啊,那就难办了,我要先知道你改过哪些脚本才能继续研究,能告诉我你具体 ...


好像可以了……我添加了一下那個AVG腳本里的模塊……
  1. $menu_load = nil

  2. module XRXS_MP7_Module
  3.   def create_spriteset
  4.     @spriteset = Spriteset_Map.new
  5.   end
  6.   def dispose_spriteset
  7.     @spriteset.dispose
  8.   end
  9. end

  10. class Scene_Item
  11. ……
  12. ……
  13. ……

  14.   include XRXS_MP7_Module
  15.   alias xrxs_mp7_main main
  16.   def main
  17.     create_spriteset
  18.     xrxs_mp7_main
  19.     dispose_spriteset
  20.   end
  21. end
复制代码
像這樣……

其實我是不想要各種菜單里的背景,就像在菜單里打開讀檔會顯示地圖一樣,在標題畫面打開讀檔也會顯示標題畫面……只不過單插入圖片的話還要dispose圖片,有點麻煩……


不過現在讀檔畫面還是搞不定…………因為標題讀檔沒有載入地圖……如果用這個模塊就會發生錯誤……


我上傳了一下附件,你看看……有些素材是我電腦里的,你改一下

1.7z

198.42 KB, 阅读权限: 10, 下载次数: 3


作者: 美丽晨露    时间: 2013-3-28 17:45
http://www.66rpg.com/articles/3064
这里的脚本不行吗
作者: ZHL19910725    时间: 2013-3-28 18:48
本帖最后由 ZHL19910725 于 2013-3-28 18:50 编辑
美丽晨露 发表于 2013-3-28 17:45
http://www.66rpg.com/articles/3064
这里的脚本不行吗


我用的就是這個…………只不過是插入到每個scene中了

現在只有Scene_Load的問題了……就是讓他在標題畫面打開的時候顯示畫面,在菜單里打開的時候顯示地圖……等會我再去看看……

因為我不太會寫if $scene這些東西所以改起來有點麻煩……
作者: 美丽晨露    时间: 2013-3-28 19:04
ZHL19910725 发表于 2013-3-28 18:48
我用的就是這個…………只不過是插入到每個scene中了

現在只有Scene_Load的問題了……就是讓他在標題畫 ...

修改完成.rar (285.83 KB, 下载次数: 35)

已经完成效果
作者: ZHL19910725    时间: 2013-3-28 21:43
美丽晨露 发表于 2013-3-28 19:04
已经完成效果

額……這個還是有問題…………我是在遊戲菜單中加入了讀檔的……在標題畫面取消可以讓他顯示圖片不用消除,因為回到標題畫面都一樣,但是遊戲內讀檔還是會顯示那張圖片,
能不能幫忙寫一句判斷就是在標題讀檔的時候才會顯示圖片……還有就是讀檔的時候選擇釋放圖片,如果不是標題讀檔也釋放圖片,那這個釋放命令會產生錯誤

所以就是:
進入Scene_Load定義時判斷是否是標題讀檔,是的情況顯示圖片,不是的情況不顯示
還有讀檔載入Scene_Map之前是判斷是否為標題讀檔,是的情況dispose,不是的話就直接讀取……

……就是這個問題一直解決不了……

還有個問題
RPG::Cache.title($data_system.title_name)爲什麽這句寫成這樣不起作用,但是直接用圖片名就可以……
作者: 芯☆淡茹水    时间: 2013-3-28 21:51
半透明菜单,恩,就是这个:
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ Window_Base
  6. #==============================================================================
  7. class Window_Base < Window
  8.   alias xrxs_mp7_initialize initialize
  9.   def initialize(x, y, width, height)
  10.     xrxs_mp7_initialize(x, y, width, height)
  11.     if $scene.is_a?(Scene_Menu) or
  12.        $scene.is_a?(Scene_Item) or
  13.        $scene.is_a?(Scene_Skill) or
  14.        $scene.is_a?(Scene_Equip) or
  15.        $scene.is_a?(Scene_Status) or
  16.        $scene.is_a?(Scene_Save) or
  17.        $scene.is_a?(Scene_End) or
  18.        $scene.is_a?(Scene_Lvup)
  19.       self.back_opacity = 200  #————这个数值可调,为透明程度
  20.     end
  21.   end
  22. end
  23. module XRXS_MP7_Module
  24.   def create_spriteset
  25.     @spriteset = Spriteset_Map.new
  26.   end
  27.   def dispose_spriteset
  28.     @spriteset.dispose
  29.   end
  30. end
  31. class Scene_Menu
  32.   include XRXS_MP7_Module
  33.   alias xrxs_mp7_main main
  34.   def main
  35.     create_spriteset
  36.     xrxs_mp7_main
  37.     dispose_spriteset
  38.   end
  39. end
  40. class Scene_Battle
  41.   include XRXS_MP7_Module
  42.   alias xrxs_mp7_main main
  43.   def main
  44.     create_spriteset
  45.     xrxs_mp7_main
  46.     dispose_spriteset
  47.   end
  48. end
  49. class Scene_Item
  50.   include XRXS_MP7_Module
  51.   alias xrxs_mp7_main main
  52.   def main
  53.     create_spriteset
  54.     xrxs_mp7_main
  55.     dispose_spriteset
  56.   end
  57. end
  58. class Scene_Skill
  59.   include XRXS_MP7_Module
  60.   alias xrxs_mp7_main main
  61.   def main
  62.     create_spriteset
  63.     xrxs_mp7_main
  64.     dispose_spriteset
  65.   end
  66. end
  67. class Scene_Equip
  68.   include XRXS_MP7_Module
  69.   alias xrxs_mp7_main main
  70.   def main
  71.     create_spriteset
  72.     xrxs_mp7_main
  73.     dispose_spriteset
  74.   end
  75. end
  76. class Scene_Status
  77.   include XRXS_MP7_Module
  78.   alias xrxs_mp7_main main
  79.   def main
  80.     create_spriteset
  81.     xrxs_mp7_main
  82.     dispose_spriteset
  83.   end
  84. end
  85. class Scene_Save
  86.   include XRXS_MP7_Module
  87.   alias xrxs_mp7_main main
  88.   def main
  89.     create_spriteset
  90.     xrxs_mp7_main
  91.     dispose_spriteset
  92.   end
  93. end
  94. class Scene_End
  95.   include XRXS_MP7_Module
  96.   alias xrxs_mp7_main main
  97.   def main
  98.     create_spriteset
  99.     xrxs_mp7_main
  100.     dispose_spriteset
  101.   end
  102. end
  103. class Scene_Lvup
  104.   include XRXS_MP7_Module
  105.   alias xrxs_mp7_main main
  106.   def main
  107.     create_spriteset
  108.     xrxs_mp7_main
  109.     dispose_spriteset
  110.   end
  111. end
复制代码

作者: ZHL19910725    时间: 2013-3-28 22:33
芯☆淡茹水 发表于 2013-3-28 21:51
半透明菜单,恩,就是这个:

非常抱歉……不是透明度的問題……現在唯一剩下的是11樓說明的那個……

其實就是因為我在菜單里加了讀檔,所以多了標題畫面讀檔,和菜單讀檔兩種情況……所以才會出這種問題……
作者: 芯☆淡茹水    时间: 2013-3-28 22:38
ZHL19910725 发表于 2013-3-28 22:33
非常抱歉……不是透明度的問題……現在唯一剩下的是11樓說明的那個……

其實就是因為我在菜單 ...

   把存档和读档的背景全部显示为一张图片,而不是地图背景就行了啊
作者: ZHL19910725    时间: 2013-3-28 23:05
芯☆淡茹水 发表于 2013-3-28 22:38
把存档和读档的背景全部显示为一张图片,而不是地图背景就行了啊



我是想讓他顯示地圖背景的……遊戲中的話調出存檔和讀檔畫面不需要背景,顯示地圖

然後標題畫面讀檔的時候背景跟標題畫面一樣……就是這樣,
作者: 芯☆淡茹水    时间: 2013-3-28 23:24
ZHL19910725 发表于 2013-3-28 23:05
我是想讓他顯示地圖背景的……遊戲中的話調出存檔和讀檔畫面不需要背景,顯示地圖

然後標題畫面讀檔的 ...

      在标题 Scene_Title 准备过渡后,加一个条件分歧:如果是切换到读档画面,打开一个开关。



   然后在 Scene_File 里用该开关判断,如果是打开的话,就用 Sprite 显示标题背景图,然后再关掉该开关。其他情况(从地图或菜单中进入读档画面)
该开关为关闭,所以就没有标题背景图,背景就为地图。

如果不理解可发素材,代做。

作者: ZHL19910725    时间: 2013-3-29 00:09
芯☆淡茹水 发表于 2013-3-28 23:24
在标题 Scene_Title 准备过渡后,加一个条件分歧:如果是切换到读档画面,打开一个开关。

Scene_Title里加了這句話以後,他報錯說 '[ ]='沒有定義……怎麼辦?
作者: ZHL19910725    时间: 2013-3-29 00:51
本帖最后由 ZHL19910725 于 2013-3-29 12:15 编辑
芯☆淡茹水 发表于 2013-3-28 23:24
在标题 Scene_Title 准备过渡后,加一个条件分歧:如果是切换到读档画面,打开一个开关。



在Scene_Load里直接調用顯示地圖腳本的話,如果一上來直接從標題畫面讀檔,就會顯示Spriteset_Map里的句子沒有定義,會錯誤……
如果不在Scene_Load加顯示地圖那個模塊,從菜單讀檔就不會顯示地圖……我之前試了一下,如果在Scene_Load最開始載入模塊的時候判斷的話沒有用……
還有這個Scene_File裏面調用Sprite的話,在什麽地方dispose呢……要不然只要進入過一次標題的讀檔,後面再從菜單讀檔依然會顯示圖片……
現在的情況是如果讓從菜單讀檔顯示地圖,就不能從標題讀檔,如果調用標題畫面顯示圖片,菜單讀檔就不能顯示地圖,
其實是只能從Scene_Load內部來用@menu_com = Sprite.new來顯示圖片,不過這樣的話還是第二行的那個問題,不能在Scene_Load里添加顯示地圖模塊……
你看看能不能在12樓那個全局更改裏面來加入Scene_Load,然後判斷是不是從標題讀檔?

我又試了一下之前提到的各種方法,還是沒有兩種都改好的辦法,標題讀檔或菜單獨當肯定有一種要出錯,不過後者問題比較大所以我優先選了前者
確實,我覺得10樓的腳本挺好用的,只在Scene_Load內部調用圖片……然後現在差的就是那個顯示地圖的問題了,12樓的模塊沒辦法在打開遊戲的時候讀檔,否則Spriteset_Map會出錯……
有沒有辦法只讓他在菜單讀檔的時候才有效呢……

還是不行的話我看看能不能用跳過標題畫面來解決……做一個偽標題……


■啊!好像搞定了!我添加了一個Scene_Load_2,然後讓菜單讀取只調用Scene_Load_2,而Scene_Load只有標題可以調用……這樣就可以給Scene_Load_2添加模塊,而Scene_Load可以添加圖片了
不過不知道這個方法有沒有弊端……





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