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

Project1

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

[已经过期] 显示状态动画

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
1009
在线时间
25 小时
注册时间
2011-3-20
帖子
2
跳转到指定楼层
1
发表于 2011-5-2 17:36:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
请问怎么样才能够显示敌人的状态?
其实……我们都需要让自己冷一下

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
2
发表于 2011-10-20 17:31:57 | 只看该作者
这个图片放在你的游戏里的system文件夹

  1. #本脚本来自66RPG,作者趙雲,如需转载请保留本信息。

  2. #==============================================================================

  3. # ■ Arrow_Base

  4. #------------------------------------------------------------------------------

  5. #  在战斗画面使用的箭头光标的活动块。本类作为

  6. # Arrow_Enemy 类与 Arrow_Actor 类的超级类使用。

  7. #==============================================================================



  8. class Arrow_Base < Sprite

  9.   #--------------------------------------------------------------------------

  10.   # ● 定义实例变量

  11.   #--------------------------------------------------------------------------

  12.   attr_reader   :index                    # 光标位置

  13.   attr_reader   :help_window              # 帮助窗口

  14.   #--------------------------------------------------------------------------

  15.   # ● 初始化对像

  16.   #     viewport : 显示端口

  17.   #--------------------------------------------------------------------------

  18.   def initialize(viewport)

  19.     super(viewport)

  20.     self.bitmap = Cache.system("Arrow")

  21.     self.ox = 16

  22.     self.oy = 64

  23.     self.z = 2500

  24.     @blink_count = 0

  25.     @index = 0

  26.     @help_window = nil

  27.     update

  28.   end

  29.   #--------------------------------------------------------------------------

  30.   # ● 设置光标位置

  31.   #     index : 新的光标位置

  32.   #--------------------------------------------------------------------------

  33.   def index=(index)

  34.     @index = index

  35.     update

  36.   end

  37.   #--------------------------------------------------------------------------

  38.   # ● 设置帮助窗口

  39.   #     help_window : 新的帮助窗口

  40.   #--------------------------------------------------------------------------

  41.   def help_window=(help_window)

  42.     @help_window = help_window

  43.     # 刷新帮助文本 (update_help 定义了继承目标)

  44.     if @help_window != nil

  45.       update_help

  46.     end

  47.   end

  48.   #--------------------------------------------------------------------------

  49.   # ● 刷新画面

  50.   #--------------------------------------------------------------------------

  51.   def update

  52.     # 刷新点灭记数

  53.     @blink_count = (@blink_count + 1) % 12

  54.     # 设置传送源矩形

  55.     if @blink_count < 6

  56.       self.src_rect.set(0, 0, 32, 32)

  57.     else

  58.       self.src_rect.set(32, 0, 32, 32)

  59.     end

  60.     # 刷新帮助文本 (update_help 定义了继承目标)

  61.     if @help_window != nil

  62.       update_help

  63.     end

  64.   end

  65. end

  66. #==============================================================================

  67. # ■ Arrow_Enemy

  68. #------------------------------------------------------------------------------

  69. #  选择敌人的箭头光标。本类继承 Arrow_Base

  70. # 类。

  71. #==============================================================================



  72. class Arrow_Enemy < Arrow_Base

  73.   #--------------------------------------------------------------------------

  74.   # ● 获取光标指向的敌人

  75.   #--------------------------------------------------------------------------

  76.   def enemy

  77.     return $game_troop.members[@index]

  78.   end

  79.   

  80.   def dispose

  81.     @enemy.loop_white_flash = false unless @enemy.nil?

  82.     super

  83.   end

  84.   #--------------------------------------------------------------------------

  85.   # ● 刷新画面

  86.   #--------------------------------------------------------------------------

  87.   def update

  88.     super

  89.      if @enemy != enemy and enemy.exist?

  90.         @enemy.loop_white_flash = false unless @enemy.nil?

  91.         enemy.loop_white_flash = true

  92.         @enemy = enemy

  93.       end  

  94.    

  95.     # 如果指向不存在的敌人就离开

  96.     $game_troop.members.size.times do

  97.       break if self.enemy.exist?

  98.       @index += 1

  99.       @index %= $game_troop.members.size

  100.     end

  101.     # 光标右

  102.     if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::DOWN)

  103.       Sound.play_cursor

  104.       $game_troop.members.size.times do

  105.         @index += 1

  106.         @index %= $game_troop.members.size

  107.         break if self.enemy.exist?

  108.       end

  109.     end

  110.     # 光标左

  111.     if Input.repeat?(Input::LEFT) or Input.repeat?(Input::UP)

  112.      Sound.play_cursor

  113.       $game_troop.members.size.times do

  114.         @index += $game_troop.members.size - 1

  115.         @index %= $game_troop.members.size

  116.         break if self.enemy.exist?

  117.       end

  118.     end

  119.     # 设置活动块坐标

  120.     if self.enemy != nil

  121.       self.x = self.enemy.screen_x

  122.       self.y = self.enemy.screen_y

  123.     end

  124.   end

  125.   #--------------------------------------------------------------------------

  126.   # ● 刷新帮助文本

  127.   #--------------------------------------------------------------------------

  128.   def update_help

  129.     # 帮助窗口显示敌人的名字与状态

  130.     @help_window.set_enemy(self.enemy)

  131.   end

  132. end











  133. class Scene_Battle ##

  134.   

  135.   

  136.   #--------------------------------------------------------------------------

  137.   # ● 更新画面

  138.   #--------------------------------------------------------------------------

  139.   def update

  140.     super

  141.     update_basic(true)

  142.     update_info_viewport                  # 更新显示信息的视区

  143.     if $game_message.visible

  144.       @info_viewport.visible = false

  145.       @message_window.visible = true

  146.     end

  147.     unless $game_message.visible          # 在显示消息以外的情况

  148.       return if judge_win_loss            # 判断胜败

  149.       update_scene_change

  150.       if @enemy_arrow != nil

  151.         update_target_enemy_selection     # 选择敌方对象

  152.       elsif @target_actor_window != nil

  153.         update_target_actor_selection     # 选择对象角色

  154.       elsif @skill_window != nil

  155.         update_skill_selection            # 选择特技

  156.       elsif @item_window != nil

  157.         update_item_selection             # 选择物品

  158.       elsif @party_command_window.active

  159.         update_party_command_selection    # 选择同伴指令

  160.       elsif @actor_command_window.active

  161.         update_actor_command_selection    # 选择角色指令

  162.       else

  163.         process_battle_event              # 战斗处理

  164.         process_action                    # 战斗行动

  165.         process_battle_event              # 处理战斗事件

  166.       end

  167.     end

  168.   end

  169.   



  170.   

  171.   def set_window(visible)

  172.     if !@skill_window.nil?

  173.       @skill_window.visible = visible

  174.     elsif !@item_window.nil?

  175.       @item_window.visible = visible

  176.     end

  177.   end



  178.   #--------------------------------------------------------------------------

  179.   # ● 开始选择对象的敌方角色

  180.   #--------------------------------------------------------------------------

  181.   def start_target_enemy_selection

  182.     set_window(false)

  183.     @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport3)

  184.     @enemy_window = Window_Enemy.new(176,0)

  185.     @enemy_arrow.help_window = @enemy_window

  186.     @actor_command_window.active = false

  187.   end

  188.   #--------------------------------------------------------------------------

  189.   # ● 选择对象敌方角色结束

  190.   #--------------------------------------------------------------------------

  191.   def end_target_enemy_selection

  192.     @enemy_arrow.dispose

  193.     @enemy_arrow = nil

  194.     @enemy_window.dispose

  195.     set_window(true)

  196.     if @actor_command_window.index == 0

  197.       @actor_command_window.active = true

  198.     end

  199.   end

  200.   #--------------------------------------------------------------------------

  201.   # ● 更新选择对象敌方角色

  202.   #--------------------------------------------------------------------------

  203.   def update_target_enemy_selection

  204.      @enemy_arrow.update

  205.     if Input.trigger?(Input::B)

  206.       Sound.play_cancel

  207.       end_target_enemy_selection

  208.     elsif Input.trigger?(Input::C)

  209.       Sound.play_decision

  210.       @active_battler.action.target_index = @enemy_arrow.enemy.index

  211.       end_target_enemy_selection

  212.       end_skill_selection

  213.       end_item_selection

  214.       next_actor

  215.     end

  216.   end





  217. end





  218. class Spriteset_Battle ##

  219.   def viewport3

  220.     return @viewport3

  221.   end  

  222. end



  223. class Game_Battler

  224.   attr_accessor :loop_white_flash              # 循环白色闪烁标记

  225. end



  226. class Sprite_Battler ##

  227.   alias old_setup_new_effect setup_new_effect

  228.   def setup_new_effect

  229.     if @battler.loop_white_flash and @effect_duration == 0

  230.       @battler.white_flash = true

  231.     end

  232.     old_setup_new_effect

  233.   end

  234. end





  235. #==============================================================================

  236. # ■ Window_Enemy

  237. #------------------------------------------------------------------------------

  238. #  显示敌人信息的窗口,光标Arrow用。

  239. #==============================================================================



  240. class Window_Enemy < Window_Base

  241.   #--------------------------------------------------------------------------

  242.   # ● 初始化窗口

  243.   #     x : 窗口的X坐标

  244.   #     y : 窗口的Y坐标

  245.   #--------------------------------------------------------------------------

  246.   def initialize(x, y)

  247.     super(x, y, 288, WLH * 2 + 32)

  248. #~     self.opacity = 0

  249.   end



  250.   #--------------------------------------------------------------------------

  251.   # ● 设置文本

  252.   #     text  : 窗口显示的字符串

  253.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)

  254.   #--------------------------------------------------------------------------

  255.   def set_text(text, align = 0)

  256.     # 如果文本和对齐方式的至少一方与上次的不同

  257.     if text != @text or align != @align

  258.       # 再描绘文本

  259.       self.contents.clear

  260.       self.contents.font.color = normal_color

  261.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)

  262.       @text = text

  263.       @align = align

  264.       @actor = nil

  265.     end

  266.     self.visible = true

  267.   end

  268.   

  269.   

  270.   #--------------------------------------------------------------------------

  271.   # ● 设置敌人

  272.   #     enemy : 要显示名字和状态的敌人

  273.   #--------------------------------------------------------------------------

  274.   def set_enemy(enemy)

  275.     if @enemy != enemy

  276.     text = enemy.name

  277.     set_text(text)

  278.     w = enemy.states.size * 24

  279.     draw_actor_state(enemy, contents.width - w , 0, w)

  280.     draw_actor_hp(enemy, 0 , WLH  )

  281.     draw_actor_mp(enemy, contents.width - 120 , WLH )

  282.     @enemy = enemy

  283.     end

  284.   end

  285. end
复制代码
黑之结界勇士
回复 支持 反对

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

3
发表于 2011-10-20 17:40:01 | 只看该作者

点评

启明前辈也跟着LS挖么?....  发表于 2011-10-20 17:58

还在龟速填坑中
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 05:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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