Project1

标题: 帮忙写个窗口描绘物品图标,并随主角移动而移动的脚本? [打印本页]

作者: 18229042    时间: 2011-3-18 20:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忧雪の伤    时间: 2011-3-18 20:57
本帖最后由 忧雪の伤 于 2011-3-18 21:05 编辑
  1. class Window_Icon < Window_Base

  2.   def initialize(name)
  3.    
  4.     super(0, 0, 64, 64)
  5.     self.contents = Bitmap.new(width - 32, height - 32)
  6.     self.opacity = 0
  7.     @name = name
  8.     refresh
  9.    
  10.   end
  11.   
  12.   def refresh
  13.    
  14.     self.contents.clear
  15.     bitmap = RPG::Cache.icon(@name)
  16.     self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 24, 24))
  17.    
  18.   end
  19.   
  20. end

  21. class Scene_Map
  22.   
  23.   alias :old_old_main :main unless method_defined? :old_old_main
  24.   def main
  25.    
  26.     old_old_main
  27.     @icon_window.dispose if @icon_window != nil
  28.    
  29.   end
  30.   
  31.   alias :old_old_update :update unless method_defined? :old_old_update
  32.   def update
  33.    
  34.     if @icon_window != nil
  35.       @icon_window.x = $game_player.screen_x - 30
  36.       @icon_window.y = $game_player.screen_y - 82
  37.     end
  38.    
  39.     old_old_update
  40.    
  41.   end
  42.   
  43.   def set_icon(name)
  44.     @icon_window = Window_Icon.new(name) if name != nil
  45.   end
  46.   
  47. end
复制代码

作者: 18229042    时间: 2011-3-18 21:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忧雪の伤    时间: 2011-3-19 12:14
本帖最后由 忧雪の伤 于 2011-3-19 13:06 编辑
  1. #______________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
  3. #______________________________________________________________________________

  4. #==============================================================================
  5. # ■ 头顶的东西 - Put On The Thing
  6. #------------------------------------------------------------------------------
  7. #   遵守协议:66RPG - Idiot Script Association(ISA)
  8. #   初始脚本:忧雪の伤
  9. #   更新优化:无
  10. #   当前版本:1.0.0.0
  11. #------------------------------------------------------------------------------
  12. #   更新日记:忧雪の伤(2011.3.19)
  13. #             - 初始化对象
  14. #------------------------------------------------------------------------------
  15. #   功能介绍:创建一个可以跟随移动,指定文件,显示在Player头上的Icon。
  16. #   使用方法:插入接入包的下端处。
  17. #   存在问题:无
  18. #==============================================================================

  19. #--------------------------------------------------------------------------
  20. # ● 资料记录
  21. #--------------------------------------------------------------------------

  22. module ISA
  23.    Use["头顶的东西"] = [true, "1.0.0.0"]
  24.    System["头顶的东西"] = {}
  25. end

  26. #--------------------------------------------------------------------------
  27. # ● 设定部分
  28. #--------------------------------------------------------------------------

  29. module ISA
  30.   # 窗口的坐标修正设定
  31.   System["头顶的东西"]["坐标修正设定"] = [30, 82]
  32. end

  33. #==============================================================================
  34. # ■ Window_Put_On
  35. #------------------------------------------------------------------------------
  36. #  显示图标的窗口。
  37. #==============================================================================

  38. class Window_Put_On < Window_Base
  39.   include ISA
  40.   #--------------------------------------------------------------------------
  41.   # ● 初始化窗口
  42.   #--------------------------------------------------------------------------
  43.   def initialize(name)
  44.     super(0, 0, 64, 64)
  45.     self.contents = Bitmap.new(width - 32, height - 32)
  46.     self.opacity = 0
  47.     self.x = $game_player.screen_x - System["头顶的东西"]["坐标修正设定"][0]
  48.     self.y = $game_player.screen_y - System["头顶的东西"]["坐标修正设定"][1]
  49.     self.z = 0
  50.     @name = name
  51.     refresh
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 刷新
  55.   #--------------------------------------------------------------------------
  56.   def refresh
  57.     self.contents.clear
  58.     bitmap = RPG::Cache.icon(@name)
  59.     self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 24, 24))
  60.   end
  61. end

  62. #==============================================================================
  63. # ■ Scene_Map
  64. #------------------------------------------------------------------------------
  65. #  处理地图画面的类。
  66. #==============================================================================

  67. class Scene_Map
  68.   include ISA
  69.   #--------------------------------------------------------------------------
  70.   # ● 主处理
  71.   #--------------------------------------------------------------------------
  72.   alias :put_on_the_thing_main :main unless method_defined? :put_on_the_thing_main
  73.   def main
  74.     put_on_the_thing_main
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 刷新画面
  78.   #--------------------------------------------------------------------------
  79.   alias :put_on_the_thing_update :update unless method_defined? :put_on_the_thing_update
  80.   def update
  81.     if @put_on_window != nil
  82.       @put_on_window.visible = true
  83.       @put_on_window.x = $game_player.screen_x - System["头顶的东西"]["坐标修正设定"][0]
  84.       @put_on_window.y = $game_player.screen_y - System["头顶的东西"]["坐标修正设定"][1]
  85.     end
  86.     put_on_the_thing_update
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 设置图标
  90.   #--------------------------------------------------------------------------
  91.   def set_icon(name)
  92.     @put_on_window = Window_Put_On.new(name)
  93.     @put_on_window.visible = true
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 图标关闭
  97.   #--------------------------------------------------------------------------
  98.   def set_icon_no
  99.     if @put_on_window != nil
  100.       @put_on_window.visible = false
  101.     end
  102.     return true
  103.   end
  104. end
复制代码





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