Project1

标题: 怎么然45度战斗显示角色的名字 [打印本页]

作者: 没有马甲    时间: 2011-2-19 10:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忧雪の伤    时间: 2011-2-19 14:33
读取角色坐标。
显示名字。
作者: 冰舞蝶恋    时间: 2011-2-19 14:46
难道是actor.name?好吧,脚本无力,XP脚本更无力的菜鸟撸过...
作者: 没有马甲    时间: 2011-2-19 15:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忧雪の伤    时间: 2011-2-19 15:22
没有马甲 发表于 2011-2-19 15:19
回复 忧雪の伤 的帖子

您说的是啥意思啊,说清楚点可以么?

新建一个显示名称的窗口,在战斗画面生成,
读取角色坐标名称以及生成。
作者: 忧雪の伤    时间: 2011-2-19 19:56
本帖最后由 忧雪の伤 于 2011-2-20 15:31 编辑
  1. #==============================================================================
  2. # ■ 【ISA】敌人名字显示 - Monster Name Display
  3. #------------------------------------------------------------------------------
  4. # initialize(1) => date(2011.2.19) => by(忧雪の伤)
  5. # update(2) => date(2011.2.20) => by(忧雪の伤)
  6. # _____________________________________________________________________________
  7. # ● 追加敌人战斗中名字的显示。
  8. #==============================================================================
  9. #==============================================================================
  10. # ★ 设定部分 ★
  11. #==============================================================================
  12. module ISA
  13.   # 功能开关
  14.   MND = true
  15.   # 字体名称
  16.   MND_FONT_NAME = ["黑体"]
  17.   # 字体大小
  18.   MND_FONT_SIZE = 22
  19.   # 字体颜色
  20.   MND_FONT_COLOR = Color.new(255, 255, 255, 255)
  21.   # 字体描边
  22.   MND_FONT_SHADOW = true
  23.   # 字体描边颜色
  24.   MND_FONT_SHADOW_COLOR = Color.new(-255, -255, -255, 255)
  25.   # 字体粗体
  26.   MND_FONT_BOLD = true
  27.   # 字体斜体
  28.   MND_FONT_ITALIC = false
  29.   # X坐标修正
  30.   MND_X_PLUS = -80
  31.   # Y坐标修正
  32.   MND_Y_PLUS = -80
  33.   # 透明度设定
  34.   MND_WINDOW_OPACITY = 0
  35. end

  36. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  37. # 注册【ISA】
  38. $ISA = {} if $ISA == nil
  39. $ISA["MND"] = true

  40. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  41. #==============================================================================
  42. # ■ ISA_Window_Enemy_Name
  43. #------------------------------------------------------------------------------
  44. #  显示战斗画面敌人名字的窗口。
  45. #==============================================================================
  46. class ISA_Window_Enemy_Name < Window_Base
  47.   #--------------------------------------------------------------------------
  48.   # ● 初始化对像
  49.   #--------------------------------------------------------------------------
  50.   def initialize(x, y, id)
  51.     super(0, 0, 160, 64)
  52.     # 创建描绘区域
  53.     self.contents = Bitmap.new(width - 32, height - 32)
  54.     # 读取透明度
  55.     self.opacity = ISA::MND_WINDOW_OPACITY
  56.     self.opacity = 0 if ISA::MND
  57.     # 坐标修正
  58.     self.x = x + ISA::MND_X_PLUS
  59.     self.y = y + ISA::MND_Y_PLUS
  60.     # 代入id
  61.     @id = id
  62.     refresh
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 刷新
  66.   #--------------------------------------------------------------------------
  67.   def refresh
  68.     self.contents.clear
  69.     # 读取敌人
  70.     @enemy = $game_troop.enemies[@id]
  71.     # 读取名字
  72.     text = @enemy.name
  73.     # 消失判定
  74.     text = "" if @enemy.hp0?
  75.     self.opacity = 0 if @enemy.hp0?
  76.     # 读取字体设定
  77.     self.contents.font.name = ISA::MND_FONT_NAME
  78.     self.contents.font.size = ISA::MND_FONT_SIZE
  79.     self.contents.font.bold = ISA::MND_FONT_BOLD
  80.     self.contents.font.italic = ISA::MND_FONT_ITALIC
  81.     # 描边部分
  82.     if ISA::MND_FONT_SHADOW == true
  83.       # 读取描边色
  84.       self.contents.font.color = ISA::MND_FONT_SHADOW_COLOR
  85.       # 同时向八个方向扩展描绘
  86.       self.contents.draw_text(1, 0, self.width - 32, self.height - 32, text,1) if ISA::MND
  87.       self.contents.draw_text(0, 1, self.width - 32, self.height - 32, text,1) if ISA::MND
  88.       self.contents.draw_text(-1, 0, self.width - 32, self.height - 32, text,1) if ISA::MND
  89.       self.contents.draw_text(0, -1, self.width - 32, self.height - 32, text,1) if ISA::MND
  90.       self.contents.draw_text(1, 1, self.width - 32, self.height - 32, text,1) if ISA::MND
  91.       self.contents.draw_text(-1, -1, self.width - 32, self.height - 32, text,1) if ISA::MND
  92.       self.contents.draw_text(1, -1, self.width - 32, self.height - 32, text,1) if ISA::MND
  93.       self.contents.draw_text(-1, 1, self.width - 32, self.height - 32, text,1) if ISA::MND
  94.     end
  95.     # 主要部分
  96.     self.contents.font.color = ISA::MND_FONT_COLOR
  97.     self.contents.draw_text(0, 0, self.width - 32, self.height - 32, text,1) if ISA::MND
  98.   end
  99. end
  100.   
  101. #==============================================================================
  102. # ■ Scene_Battle
  103. #------------------------------------------------------------------------------
  104. #  处理战斗画面的类。
  105. #==============================================================================
  106. class Scene_Battle
  107.   #--------------------------------------------------------------------------
  108.   # ● 主处理
  109.   #--------------------------------------------------------------------------
  110.   alias old_main main
  111.   def main
  112.     # 声明别名
  113.     # 准备队伍
  114.     @troop_id = $game_temp.battle_troop_id
  115.     $game_troop.setup(@troop_id)
  116.     # 生成数组
  117.     @ISA_Enemy_Name_window = []
  118.     for i in 0...$game_troop.enemies.size
  119.       # 获取敌人
  120.       @enemy = $game_troop.enemies[i]
  121.       # 读取画面X、Y坐标
  122.       actor_x = @enemy.screen_x
  123.       actor_y = @enemy.screen_y
  124.       # 生成窗口
  125.       @ISA_Enemy_Name_window[i] = ISA_Window_Enemy_Name.new(actor_x, actor_y, @enemy.id)
  126.     end
  127.     # 调用其他
  128.     old_main
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 刷新画面
  132.   #--------------------------------------------------------------------------
  133.   alias old_update update
  134.    def update
  135.     # 声明别名
  136.     for i in 0...$game_troop.enemies.size
  137.       # 获取敌人
  138.       @enemy = $game_troop.enemies[i]
  139.       # 判断关闭
  140.       @ISA_Enemy_Name_window[i].visible = false if @enemy.hp0?
  141.     end
  142.     # 调用其他
  143.     old_update
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 开始结束战斗回合
  147.   #--------------------------------------------------------------------------
  148.   alias old_start_phase5 start_phase5
  149.   def start_phase5
  150.     # 声明别名
  151.     # 释放窗口
  152.     for i in @ISA_Enemy_Name_window
  153.       i.dispose
  154.     end
  155.     # 调用其他
  156.     old_start_phase5  
  157.   end
  158. end
复制代码

作者: 没有马甲    时间: 2011-2-20 16:08
提示: 作者被禁止或删除 内容自动屏蔽




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