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

Project1

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

[已经解决] 地图显示经验条的问题

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-9-25 21:20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用了下面两个脚本,一个是地图上显示血、蓝、名字、等级;另一个是把菜单里的经验值显示变成了条形状,请问如何才能把这个经验条在地图上显示呢?

这个是地图显示血蓝:
  1. #============================================================================
  2. #  〇 地图显示血条魔条
  3. #              By.冰舞蝶恋
  4. #----------------------------------------------------------------------------
  5. #     说明:显示的文字可自由更动来达到游戏需要的效果。
  6. #----------------------------------------------------------------------------
  7. #     以下是作者的白痴留言,尽管无视吧!
  8. #     啊哈哈!这可是咱第一个独立完成的脚本吖!!
  9. #     一时无聊做的……兴许可以用在ARPG之类的地方吧。偶然看到有不少人在拿RM做
  10. #     ARPG,又发现似乎没有(除了邪恶的fux2字眼的那个- -||b),做了个比较完善
  11. #     的……排版不是很好看,坐标可以自己调整。
  12. #============================================================================
  13. #==============================================================================
  14. # ■ Scene_Map
  15. #------------------------------------------------------------------------------
  16. #  处理地图画面的类。
  17. #==============================================================================

  18. class Scene_Map < Scene_Base
  19.   #--------------------------------------------------------------------------
  20.   # ● 开始处理
  21.   #--------------------------------------------------------------------------
  22.   def start
  23.     super
  24.     $game_map.refresh
  25.     @spriteset = Spriteset_Map.new
  26.     @message_window = Window_Message.new
  27.     @mapz_window = Window_MapZ.new(0, 0)
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 结束处理
  31.   #--------------------------------------------------------------------------
  32.   def terminate
  33.     super
  34.     @mapz_window.dispose
  35.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  36.       @spriteset.dispose_characters   # 隐藏角色来生成战斗背景
  37.     end
  38.     snapshot_for_background
  39.     @spriteset.dispose
  40.     @message_window.dispose
  41.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  42.       perform_battle_transition       # 执行战斗渐变
  43.     end
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 基本更新处理
  47.   #--------------------------------------------------------------------------
  48.   def update_basic
  49.     Graphics.update                   # 更新游戏画面
  50.     Input.update                      # 更新输入信息
  51.     $game_map.update                  # 更新地图
  52.     @spriteset.update                 # 更新活动块组
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 更新画面
  56.   #--------------------------------------------------------------------------
  57.   def update
  58.     super
  59.     $game_map.interpreter.update      # 更新解释器
  60.     $game_map.update                  # 更新地图
  61.     $game_player.update               # 更新主角
  62.     $game_system.update               # 更新计时器
  63.     @mapz_window.update
  64.     @spriteset.update                 # 更新活动块组
  65.     @message_window.update            # 更新信息窗口
  66.     unless $game_message.visible      # 信息窗口显示中除外
  67.       update_transfer_player
  68.       update_encounter
  69.       update_call_menu
  70.       update_call_debug
  71.       update_scene_change
  72.     end
  73.   end
  74. end
  75. class Window_MapZ < Window_Base
  76.   #--------------------------------------------------------------------------
  77.   # ● 初始化对像
  78.   #--------------------------------------------------------------------------
  79.   def initialize(x,y)
  80.     super(-12, -12, 544+16,416+16)
  81.     self.opacity = 0
  82.     update
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 刷新
  86.   #--------------------------------------------------------------------------
  87.   def update
  88.     self.contents.clear
  89.     $game_map.screen.pictures[1].show("头像", 0, 0, 0, 100, 100, 255, 0)
  90.     draw_actor_hp($game_actors[1], 80+12, 0, 160)
  91.     draw_actor_mp($game_actors[1], 80+12, 32, 160)
  92.     self.contents.font.color = normal_color
  93.     self.contents.draw_text(84+12, 52+8, 544, WLH, "#{$game_actors[1].name}  Lv.#{$game_actors[1].level} ")
  94.     self.contents.font.color = system_color
  95.     self.contents.draw_text(0+96+120+96+40, 0-4, 544, WLH, "所持金钱:")
  96.     self.contents.draw_text(-18, 22-4, 544, WLH, "G", 2)
  97.     self.contents.font.color = normal_color
  98.     self.contents.draw_text(-36, 22-4, 544, WLH, $game_party.gold, 2)   
  99.   end
  100. end
复制代码
这个是经验值变成经验条:
  1. module XRXSVDsIn3
  2.   Width  = 80
  3.   Height =  9
  4.   Color1 = 20
  5.   Color2 = 21
  6. end
  7. class Game_System
  8.   attr_accessor :wide_screen
  9. end
  10. class Window_Base < Window
  11.   def draw_actor_level(actor, x, y)
  12.     if draw_exp_gauge_scene?
  13.       w = XRXSVDsIn3::Width * ($game_system.wide_screen ? 3 : 4) / 4
  14.       draw_actor_exp_gauge(actor, x, y, w)
  15.     else
  16.       w = 24
  17.     end
  18.     self.contents.font.color = system_color
  19.     self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
  20.     self.contents.font.color = normal_color
  21.     self.contents.draw_text(x + 32, y, w - 32, WLH, actor.level, 2)
  22.   end
  23.   def draw_exp_gauge_scene?
  24.     return [Scene_Menu, Scene_Item, Scene_Skill, Scene_Equip].include?($scene.class)
  25.   end
  26.   def draw_actor_exp_gauge(actor, x, y, width = 120)
  27.     gw = width * actor.exp_percent / 100
  28.     gc1 = text_color(XRXSVDsIn3::Color1)
  29.     gc2 = text_color(XRXSVDsIn3::Color2)
  30.     h   = XRXSVDsIn3::Height
  31.     self.contents.fill_rect(x, y + WLH - h - 2, width, h, gauge_back_color)
  32.     self.contents.gradient_fill_rect(x, y + WLH - h - 2, gw, h, gc1, gc2)
  33.   end
  34. end
  35. class Game_Actor < Game_Battler
  36.   def exp_percent
  37.     need_next_level = @exp_list[self.level + 1] - @exp_list[self.level]
  38.     exp_now_level   = @exp - @exp_list[self.level]
  39.     return 100 * exp_now_level / need_next_level
  40.   end
  41. end
复制代码

点评

LZ乃在无视我的回答么= =  发表于 2011-9-25 23:01
roguelike求生RPG研发中....

Lv1.梦旅人

梦石
0
星屑
48
在线时间
678 小时
注册时间
2010-8-11
帖子
1533
2
发表于 2011-9-25 22:39:13 | 只看该作者
本帖最后由 RPGmaster 于 2011-9-25 15:42 编辑
  1. ============================================================================
  2. #  〇 地图显示血条魔条
  3. #              By.冰舞蝶恋
  4. #----------------------------------------------------------------------------
  5. #     说明:显示的文字可自由更动来达到游戏需要的效果。
  6. #----------------------------------------------------------------------------
  7. #     以下是作者的白痴留言,尽管无视吧!
  8. #     啊哈哈!这可是咱第一个独立完成的脚本吖!!
  9. #     一时无聊做的……兴许可以用在ARPG之类的地方吧。偶然看到有不少人在拿RM做
  10. #     ARPG,又发现似乎没有(除了邪恶的fux2字眼的那个- -||b),做了个比较完善
  11. #     的……排版不是很好看,坐标可以自己调整。
  12. #============================================================================
  13. #==============================================================================
  14. # ■ Scene_Map
  15. #------------------------------------------------------------------------------
  16. #  处理地图画面的类。
  17. #==============================================================================

  18. class Scene_Map < Scene_Base
  19.   #--------------------------------------------------------------------------
  20.   # ● 开始处理
  21.   #--------------------------------------------------------------------------
  22.   def start
  23.     super
  24.     $game_map.refresh
  25.     @spriteset = Spriteset_Map.new
  26.     @message_window = Window_Message.new
  27.     @mapz_window = Window_MapZ.new(0, 0)
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 结束处理
  31.   #--------------------------------------------------------------------------
  32.   def terminate
  33.     super
  34.     @mapz_window.dispose
  35.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  36.       @spriteset.dispose_characters   # 隐藏角色来生成战斗背景
  37.     end
  38.     snapshot_for_background
  39.     @spriteset.dispose
  40.     @message_window.dispose
  41.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  42.       perform_battle_transition       # 执行战斗渐变
  43.     end
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 基本更新处理
  47.   #--------------------------------------------------------------------------
  48.   def update_basic
  49.     Graphics.update                   # 更新游戏画面
  50.     Input.update                      # 更新输入信息
  51.     $game_map.update                  # 更新地图
  52.     @spriteset.update                 # 更新活动块组
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 更新画面
  56.   #--------------------------------------------------------------------------
  57.   def update
  58.     super
  59.     $game_map.interpreter.update      # 更新解释器
  60.     $game_map.update                  # 更新地图
  61.     $game_player.update               # 更新主角
  62.     $game_system.update               # 更新计时器
  63.     @mapz_window.update
  64.     @spriteset.update                 # 更新活动块组
  65.     @message_window.update            # 更新信息窗口
  66.     unless $game_message.visible      # 信息窗口显示中除外
  67.       update_transfer_player
  68.       update_encounter
  69.       update_call_menu
  70.       update_call_debug
  71.       update_scene_change
  72.     end
  73.   end
  74. end
  75. class Window_MapZ < Window_Base
  76.   #--------------------------------------------------------------------------
  77.   # ● 初始化对像
  78.   #--------------------------------------------------------------------------
  79.   def initialize(x,y)
  80.     super(-12, -12, 544+16,416+16)
  81.     self.opacity = 0
  82.     update
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 刷新
  86.   #--------------------------------------------------------------------------
  87.   def update
  88.     self.contents.clear
  89.     $game_map.screen.pictures[1].show("", 0, 0, 0, 100, 100, 255, 0)
  90.     draw_actor_hp($game_actors[1], 80+12, 0, 160)
  91.     draw_actor_mp($game_actors[1], 80+12, 32, 160)
  92.     draw_actor_exp_gauge($game_actors[1], 80+12, 62, 160) # 坐标请自己改
  93.     self.contents.font.color = normal_color
  94.     self.contents.draw_text(84+12, 52+8, 544, WLH, "#{$game_actors[1].name}  Lv.#{$game_actors[1].level} ")
  95.     self.contents.font.color = system_color
  96.     self.contents.draw_text(0+96+120+96+40, 0-4, 544, WLH, "所持金钱:")
  97.     self.contents.draw_text(-18, 22-4, 544, WLH, "G", 2)
  98.     self.contents.font.color = normal_color
  99.     self.contents.draw_text(-36, 22-4, 544, WLH, $game_party.gold, 2)   
  100.   end
  101. end
复制代码
LZ乃敢不敢给个具体坐标=A=
自己在93行改吧=3=
小艾工作室开张= =
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 02:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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