Project1

标题: 关于图片指令的思路 [打印本页]

作者: megaman    时间: 2020-5-1 11:04
标题: 关于图片指令的思路
也就是菜单物品技能啥的我想用图片显示,麻烦哪位大佬给个思路,我怎么写都写不好。。。
作者: PLeaseS    时间: 2020-5-1 13:02
你说的是事件菜单吗
作者: 云鸟    时间: 2020-6-8 23:22
这个...?
虽然不是思路oz....
参考一下应该可以??
  1. #===============================================================================#              
  2. #              N.A.S.T.Y. 将窗口替换成图片
  3. #                Nelderson's Awesome Scripts To You
  4. # By: Nelderson
  5. # Made On: 3/11/2015
  6. # Last Updated: 3/12/2015
  7. #===============================================================================
  8. # Update History:
  9. # - Version 0.5 - Initial Release - Technically BETA/Tesing Stage
  10. # - Version 1.0 - Fixed issues with the Message window and added
  11. #                 feature to change picture to a window with a script call
  12. #===============================================================================
  13. # *Notes:
  14. #  -This script uses pictures instead of windows you specify.
  15. #===============================================================================
  16. # Credits:
  17. # -Nelderson
  18. #===============================================================================
  19. #  安装:
  20. #
  21. #  -在下面设定 PICWINDOW 这个哈希表. 本脚本不仅适用于默认窗口,其他脚本的自定义
  22. #   窗口也同样有效.
  23. #
  24. #  -如果你想要知道你的窗口需要多大的图片,最好的方式是查看各窗口类的初始化方法
  25. #  (initialize)一般的格式是(x, y, 宽度, 高度).
  26. #   所以你的图片大小要和窗口的宽高度相同.
  27. #
  28. #  -可以使用脚本来改变窗口图片:
  29. #     change_nelwinpic(window, "图片文件名")
  30. #        其中 window 是窗口的类名称 class .
  31. #        Ex. change_nelwinpic(Window_Gold, "Gold")
  32. #===============================================================================




  33. # 请输入 窗口类名称 => 图片文件名
  34. # 例子:
  35. # Window_Gold => "Gold",
  36. module NEL
  37.   
  38.   PICWINDOW ={   # <=== 别删
  39.   Window_GameEnd => "Window_GameEnd",
  40.   Window_Status=> "Window_Status",
  41.   Window_Help => "物品窗口-1",
  42.   Window_ItemCategory => "物品窗口-2",
  43.   Window_ItemList => "物品窗口-3",
  44.   
  45.   }# <=== 别删
  46. end




  47. #==============================================================================#
  48. #                            END OF CUSTOMIZATION                              #
  49. #==============================================================================#


  50. class Game_System
  51.   attr_accessor :nelpicwindow
  52.   alias nel_winpic_sysinit initialize
  53.   def initialize
  54.     nel_winpic_sysinit
  55.     @nelpicwindow = {}
  56.     for i in NEL::PICWINDOW
  57.       @nelpicwindow[i[0]] = i[1]
  58.     end
  59.   end
  60. end


  61. class Window_Base < Window
  62.   attr_accessor :nelwinpic
  63.   alias nel_winpic_scrpt_init initialize
  64.   def initialize(*args)
  65.     nel_winpic_scrpt_init(*args)
  66.     create_nelpicture
  67.   end
  68.   
  69.   def create_nelpicture
  70.     for i in $game_system.nelpicwindow
  71.     #Stupid Gold Window....
  72.     next if SceneManager.scene_is?(Scene_Map) && self.instance_of?(Window_Gold)
  73.     next if SceneManager.scene_is?(Scene_Battle) && self.instance_of?(Window_Gold)
  74.     next if i[1] == nil #In case in game is changed.  Goes back to default
  75.       if self.instance_of?(i[0]) ###Where all the magic happens!###
  76.         @nelwinpic = ::Sprite.new(self.viewport)
  77.         @nelwinpic.visible = false
  78.         @nelwinpic.bitmap = Cache.picture(i[1])
  79.         @nelwinpic.x = self.x
  80.         @nelwinpic.y = self.y
  81.         @nelwinpic.opacity = self.opacity
  82.         self.opacity = 0
  83.       end
  84.     end
  85.   end
  86.   
  87.   alias nel_winpic_scrpt_dispose dispose
  88.   def dispose
  89.     if @nelwinpic != nil
  90.       @nelwinpic.bitmap.dispose
  91.       @nelwinpic = nil
  92.     end
  93.     nel_winpic_scrpt_dispose
  94.   end
  95.   
  96.   alias nel_winpic_srpt_update update
  97.   def update
  98.     nel_winpic_srpt_update
  99.     if @nelwinpic != nil
  100.       @nelwinpic.x = self.x
  101.       @nelwinpic.y = self.y
  102.       @nelwinpic.viewport = self.viewport
  103.       @nelwinpic.visible = self.visible
  104.       if self.instance_of?(Window_Message) && $game_system.nelpicwindow[Window_Message] != nil
  105.         @nelwinpic.visible = $game_message.visible
  106.         self.opacity = 0
  107.       end
  108.     end
  109.   end
  110. end
  111.   
  112. class Game_Interpreter
  113.   def change_nelwinpic(window, pic)
  114.     $game_system.nelpicwindow[window] = pic
  115.     if SceneManager.scene_is?(Scene_Map)
  116.       SceneManager.goto(Scene_Map) if window == Window_Message
  117.     end
  118.   end
  119. end
复制代码





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