| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2016-7-27 |
| 在线时间 | 158 小时 |
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 158 小时
- 注册时间
- 2016-1-7
- 回帖
- 102
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 燕征 于 2016-3-22 16:56 编辑
關於攻擊數據的圖形的顯示都是在這個腳本(片段)
[pre lang="ruby"]#==============================================================================
# ■class Sprite
#==============================================================================
class Sprite < ::Sprite
#-------------------------------------------------------------------
# ● 執行損傷
#---------------------------------------------------------------------
def damage(value,critical,sp_damage=nil)
dispose_damage
if value.is_a?(Numeric)
damage_string = value.abs.to_s
else
damage_string = value.to_s
end
bitmap = Bitmap.new(160, 48)
bitmap.font.name = "Arial Black"
bitmap.font.size = 32
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
if value.is_a?(Numeric) and value < 0
bitmap.font.color.set(176, 255, 144)
else
bitmap.font.color.set(255, 255, 255)
end
bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
if sp_damage != nil
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(-1, 16-1, 160, 36, sp_damage.to_s, 1)
bitmap.draw_text(+1, 16-1, 160, 36, sp_damage.to_s, 1)
bitmap.draw_text(-1, 16+1, 160, 36, sp_damage.to_s, 1)
bitmap.draw_text(+1, 16+1, 160, 36, sp_damage.to_s, 1)
bitmap.font.color.set(0, 255, 255)
bitmap.draw_text(0, 16, 160, 36, sp_damage.to_s, 1)
end
if critical
bitmap.font.size = 20
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.z = 3000
@_damage_duration = 40
end
end
end[/pre]
然而判斷主角或者怪物挨揍的腳本(片段)會去掉用上面的顯示(# 寫入動畫與執行延遲 我不知道是不是相關的)
[pre lang="ruby"] # 決定損傷目標
if self.is_a?(Game_Actor)
s_event = $game_player
else
s_event = event
end
# 設置事件損傷
if self.damage != nil
s_event.damage = self.damage
s_event.critical = self.critical
s_event.damage_pop = true
self.damage = nil
self.critical = false
end
# 攻速計算
attack_speed = Integer(10 - attacker.agi/999.00*20)
# 寫入動畫與執行延遲
ani_id = attacker.animation2_id
if $data_animations[ani_id] != nil
a = [$data_animations[ani_id].frame_max * 2 + attack_speed,2].max
if attacker.is_a?(Game_Actor)
event.actor_count = a
event.animation_id = ani_id
else
event.delay_count = a
if self.is_a?(Game_Actor)
$game_player.animation_id = ani_id
else
event.animation_id = ani_id
end
end
end [/pre]
我覺得在第二部分的腳本已經判斷好誰受傷了,不知道是不是可以在這邊直接竄改第一部份用來顯示顏色的那句bitmap.font.color.set(0, 0, 0)
可以的話是怎麼使用呢? |
|