赞 | 3 |
VIP | 333 |
好人卡 | 2 |
积分 | 1 |
经验 | 1450446 |
最后登录 | 2019-5-29 |
在线时间 | 615 小时 |
Lv1.梦旅人 66RPG站长
- 梦石
- 0
- 星屑
- 54
- 在线时间
- 615 小时
- 注册时间
- 2005-10-10
- 帖子
- 5734
  
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
![]()
极其简单的小脚本,算是这次整合系统提出要求中通用性最好的功能之一。
使用时候首先先下载以下图:
http://rpg.blue/UP_PIC/200801/enemy_select_back_80681796.png
命名为enemy_select_back.png放在Graphics/system下面
然后修改脚本:
第一段:选择敌人的窗体的时候
class Window_TargetEnemy < Window_Command
#--------------------------------------------------------------------------
# ● 刷新屏幕敌人状态
#--------------------------------------------------------------------------
def update
super
if @index != @now_index
@now_index = @index
$scene.update_target_select_sprite(enemy)
end
end
end
第二段:战斗逻辑判断:
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 开始对象敌人的选择
#--------------------------------------------------------------------------
def start_target_enemy_selection
@target_enemy_window = Window_TargetEnemy.new
@target_enemy_window.y = @info_viewport.rect.y
@info_viewport.rect.x += @target_enemy_window.width
@info_viewport.ox += @target_enemy_window.width
@actor_command_window.active = false
@target_select_sprite = Sprite.new
@target_select_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
@target_select_sprite.opacity = 160
end
#--------------------------------------------------------------------------
# ● 刷新选择对象的选择框
#--------------------------------------------------------------------------
def update_target_select_sprite(enemy)
@target_select_sprite.bitmap.clear
@target_select_sprite.bitmap.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(0, 0, 0, 255))
#enemy_bmp = enemy.avatar("站立", 0)
enemy_bmp = Cache.battler(enemy.battler_name, enemy.battler_hue)
enemy_x = enemy.screen_x
enemy_y = enemy.screen_y
dest_rect = Rect.new(enemy_x - enemy_bmp.width / 2, enemy_y - enemy_bmp.height ,
enemy_bmp.width, enemy_bmp.height)
src_bitmap = Cache.system("enemy_select_back")
src_rect = src_bitmap.rect
@target_select_sprite.bitmap.clear_rect(dest_rect)
@target_select_sprite.bitmap.stretch_blt(dest_rect, src_bitmap, src_rect)
@target_select_sprite.bitmap.blur
@target_select_sprite.bitmap.blur
end
#--------------------------------------------------------------------------
# ● 结束对象敌人的选择
#--------------------------------------------------------------------------
def end_target_enemy_selection
@info_viewport.rect.x -= @target_enemy_window.width
@info_viewport.ox -= @target_enemy_window.width
@target_enemy_window.dispose
@target_enemy_window = nil
@target_select_sprite.dispose
@target_select_sprite = nil
if @actor_command_window.index == 0
@actor_command_window.active = true
end
end
end
简单这么一改就可以了。此算法同样适用于RMXP,但是由于RMXP没有blur功能,选框的边缘需要好好做一做,这里我就不写了,有兴趣可以自己尝试一下。
|
|