Project1

标题: 如何在地图上显示主角头像,血,法,经验条?谢谢各位亲 [打印本页]

作者: Denis    时间: 2012-12-29 12:29
标题: 如何在地图上显示主角头像,血,法,经验条?谢谢各位亲
如何在地图上显示主角头像,血,法,经验条?谢谢各位亲
作者: 羞射了    时间: 2012-12-29 14:15
在scene_map 内新建窗口,然后描绘角色的数值。具体怎么写可以参考游戏内自带的菜单类脚本就可以办到。
作者: Denis    时间: 2012-12-29 17:05
表示脚本一个,谁能提供一个呢?谢谢啦
作者: 美丽晨露    时间: 2012-12-29 17:17
本帖最后由 美丽晨露 于 2012-12-29 17:25 编辑

有个脚本,不过要自己提供素材
否则会出错的
  1. class Game_Actor < Game_Battler

  2.   def now_exp

  3.     return [url=home.php?mod=space&uid=13302]@exp[/url] - @exp_list[@level]

  4.   end

  5.   def next_exp

  6.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0

  7.   end

  8. end

  9. class Sprite_Bar < Sprite

  10.   def initialize(v,actor)

  11.     super(v)

  12.     self.bitmap = RPG::Cache.picture("人物#{actor.id}")

  13.     self.visible = false

  14.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor

  15.     refresh

  16.   end

  17.   def refresh

  18.     self.bitmap.clear

  19.     self.bitmap.dispose

  20.     self.bitmap = nil

  21.     bar = RPG::Cache.picture("人物#{@actor.id}")

  22.     self.bitmap = bar.dup

  23.     bitmap = RPG::Cache.picture("1")

  24.     hp_w = @actor.hp * bitmap.width / @actor.maxhp

  25.     rect = Rect.new(0, 0, hp_w,bitmap.height)

  26.     self.bitmap.blt(48, 3, bitmap, rect)

  27.    

  28.     bitmap = RPG::Cache.picture("2")

  29.     hp_w = @actor.sp * bitmap.width / @actor.maxsp

  30.     rect = Rect.new(0, 0, hp_w,bitmap.height)

  31.     self.bitmap.blt(48, 16, bitmap, rect)

  32.    

  33.     bitmap = RPG::Cache.picture("3")

  34.     if @actor.next_exp == 0

  35.       hp_w = @actor.now_exp

  36.     else

  37.       hp_w = @actor.now_exp * bitmap.width / @actor.next_exp

  38.     end

  39.     rect = Rect.new(0, 0, hp_w,bitmap.height)

  40.     self.bitmap.blt(48, 29, bitmap, rect)

  41.    

  42.     # 3 16 29

  43.    

  44.     @hp = @actor.hp

  45.     @sp = @actor.sp

  46.     @exp = @actor.now_exp

  47.   end

  48.   def update

  49.     super

  50.     self.visible = $game_switches[2]

  51.     return unless self.visible

  52.     refresh if @hp != @actor.hp || @sp != @actor.sp || @exp != @actor.now_exp

  53.   end

  54. end

  55. class Scene_Map

  56.   alias new_main main unless method_defined?("new_main")

  57.   alias new_update update unless method_defined?("new_update")

  58.   def main

  59.     @bar = []

  60.     @vie = []

  61.     for actor in $game_party.actors

  62.       v = Viewport.new(640-((actor.index+1) * 129), 0, 129, 45)

  63.       v.z += 1000

  64.       @bar.push(Sprite_Bar.new(v, actor))

  65.       @vie.push(v)

  66.     end

  67.     new_main

  68.     @bar.each{|bar|bar.dispose}

  69.     @vie.each{|vie|vie.dispose}

  70.   end

  71.   def update

  72.     @bar.each{|bar|bar.update}

  73.     new_update

  74.   end

  75. end
复制代码





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