赞 | 14 |
VIP | 0 |
好人卡 | 0 |
积分 | 6 |
经验 | 44782 |
最后登录 | 2022-9-28 |
在线时间 | 797 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 596
- 在线时间
- 797 小时
- 注册时间
- 2014-7-1
- 帖子
- 578
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 jiushiainilip19 于 2015-12-20 10:35 编辑
伤害美化的图位如何计算到800 600 还是本身素材需要更改呢
我用的是800×600的分辨率 弄了几天才把很多都匹配好 就差这个伤害美化了
目前超出640×480的位置就无法显示伤害值了!
求了解的大神指点一下!!{:2_269:}
!!!!目前发现不是伤害美化的问题 应该是战斗界面的问题 不知道是那个端口出来问题
Spriteset_Battle 中 @viewport1 = Viewport.new(0, 0, 800, 600) 1 2 3 4不是控制这些的吗?
为什么在战斗中还是不成功 设置后画面等等是对了 但是 伤害值显示的位置无法跨越出640×480的位置
包括开始战斗 结束战斗 开始游戏的渐变当中 渐变图是800×600 执行过程中只显示640×480的渐变 其余的地方不执行
每次战斗开始也是一样 结束也是一样 求指教下这到底是什么原因导致的!
由于需要要范例能够正常运行 压缩包比较大所以弄网盘上去了
http://pan.baidu.com/s/1bnHYzqJ
本人在家上网用网站的VIP无法充值 都是没反应。。。如果工程大可以给我留言谈!
下面是伤害美化的脚本
#============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== # ============================================================================ # 伤害效果美化 v1.0 by SailCat # ============================================================================ # 脚本使用说明: # 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下 # 2.Damage.png文件的格式: # 大小为180 x 96 # (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32 # (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32 # (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32 # (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32 # ============================================================================ module RPG class Sprite < ::Sprite #-------------------------------------------------------------------------- # ● 伤害值描画 #-------------------------------------------------------------------------- def damage(value, critical) # 释放伤害 dispose_damage # 如果伤害值是数值 if value.is_a?(Numeric) # 绝对值转为字符串 damage_string = value.abs.to_s else # 转为字符串 damage_string = value.to_s end # 初始化位图 bitmap = Bitmap.new(162, 64) bitmap.font.name = "Arial Black" bitmap.font.size = 32 # 伤害值是数值的情况下 if value.is_a?(Numeric) # 分割伤害值字符串 damage_array = damage_string.scan(/./) damage_x = 81 - damage_string.size * 9 # 伤害值为负的情况下 x = damage_x - 20 if value < 0 # 调用回复数字表 #☆☆☆☆☆☆☆☆☆☆☆☆ bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 0, 18, 32)) else # 调用伤害数字表 #☆☆☆☆☆☆☆☆☆☆☆☆ bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 32, 18, 100)) end # 循环伤害值字符串 for char in damage_array number = char.to_i # 显示伤害数字 bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage1"), Rect.new(number * 18 + 36, 0, 18, 32))#36 # 后移一位 damage_x += 18 end # 伤害值不是数值的情况 else # 如果伤害值不是 Miss unless value == "Miss" # 系统默认描画字符串 bitmap.font.color.set(255, 0, 0) bitmap.draw_text(-1, 27, 162, 36, damage_string, 1) bitmap.draw_text(+1, 27, 162, 36, damage_string, 1) bitmap.draw_text(-1, 29, 162, 36, damage_string, 1) bitmap.draw_text(+1, 29, 162, 36, damage_string, 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 28, 162, 36, damage_string, 1) # Miss 的情况下 else # 显示未击中图画 bitmap.blt(36, 28, RPG::Cache.picture("Damage1"), Rect.new(126, 64, 90, 32)) end end # 会心一击标志打开的情况 if critical # 显示会心一击图画 bitmap.blt(36, 0, RPG::Cache.picture("Damage1"), Rect.new(36, 64, 90, 32)) end # 伤害值定位 @_damage_sprite = ::Sprite.new(self.viewport) #@_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 800, 600)) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 81#81 @_damage_sprite.oy = 70 @_damage_sprite.x = self.battler.screen_x @_damage_sprite.y = self.y - self.oy / 2 @_damage_sprite.z = 3000 @_damage_duration = 50 end end end #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #==============================================================================
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#==============================================================================
# ============================================================================
# 伤害效果美化 v1.0 by SailCat
# ============================================================================
# 脚本使用说明:
# 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下
# 2.Damage.png文件的格式:
# 大小为180 x 96
# (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32
# (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32
# (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32
# (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32
# ============================================================================
module RPG
class Sprite < ::Sprite
#--------------------------------------------------------------------------
# ● 伤害值描画
#--------------------------------------------------------------------------
def damage(value, critical)
# 释放伤害
dispose_damage
# 如果伤害值是数值
if value.is_a?(Numeric)
# 绝对值转为字符串
damage_string = value.abs.to_s
else
# 转为字符串
damage_string = value.to_s
end
# 初始化位图
bitmap = Bitmap.new(162, 64)
bitmap.font.name = "Arial Black"
bitmap.font.size = 32
# 伤害值是数值的情况下
if value.is_a?(Numeric)
# 分割伤害值字符串
damage_array = damage_string.scan(/./)
damage_x = 81 - damage_string.size * 9
# 伤害值为负的情况下
x = damage_x - 20
if value < 0
# 调用回复数字表
#☆☆☆☆☆☆☆☆☆☆☆☆
bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 0, 18, 32))
else
# 调用伤害数字表
#☆☆☆☆☆☆☆☆☆☆☆☆
bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 32, 18, 100))
end
# 循环伤害值字符串
for char in damage_array
number = char.to_i
# 显示伤害数字
bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage1"),
Rect.new(number * 18 + 36, 0, 18, 32))#36
# 后移一位
damage_x += 18
end
# 伤害值不是数值的情况
else
# 如果伤害值不是 Miss
unless value == "Miss"
# 系统默认描画字符串
bitmap.font.color.set(255, 0, 0)
bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
# Miss 的情况下
else
# 显示未击中图画
bitmap.blt(36, 28, RPG::Cache.picture("Damage1"), Rect.new(126, 64, 90, 32))
end
end
# 会心一击标志打开的情况
if critical
# 显示会心一击图画
bitmap.blt(36, 0, RPG::Cache.picture("Damage1"), Rect.new(36, 64, 90, 32))
end
# 伤害值定位
@_damage_sprite = ::Sprite.new(self.viewport)
#@_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 800, 600))
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 81#81
@_damage_sprite.oy = 70
@_damage_sprite.x = self.battler.screen_x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.z = 3000
@_damage_duration = 50
end
end
end
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#==============================================================================
|
|