Project1

标题: 求帮个忙看看:伤害美化和800 600分辨率的问题 [打印本页]

作者: jiushiainilip19    时间: 2015-12-20 01:05
标题: 求帮个忙看看:伤害美化和800 600分辨率的问题
本帖最后由 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无法充值 都是没反应。。。如果工程大可以给我留言谈!

下面是伤害美化的脚本
RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5.  
  6. # ============================================================================
  7.  
  8. # 伤害效果美化 v1.0 by SailCat
  9.  
  10. # ============================================================================
  11.  
  12. # 脚本使用说明:
  13.  
  14. # 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下
  15.  
  16. # 2.Damage.png文件的格式:
  17.  
  18. #   大小为180 x 96
  19.  
  20. #   (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32
  21.  
  22. #   (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32
  23.  
  24. #   (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32
  25.  
  26. #   (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32
  27.  
  28. # ============================================================================
  29. module RPG
  30. class Sprite < ::Sprite
  31.  
  32.     #--------------------------------------------------------------------------
  33.  
  34.     # ● 伤害值描画
  35.  
  36.     #--------------------------------------------------------------------------
  37.  
  38.     def damage(value, critical)
  39.  
  40.       # 释放伤害
  41.  
  42.       dispose_damage
  43.  
  44.       # 如果伤害值是数值
  45.  
  46.       if value.is_a?(Numeric)
  47.  
  48.         # 绝对值转为字符串
  49.  
  50.         damage_string = value.abs.to_s
  51.  
  52.       else
  53.  
  54.         # 转为字符串
  55.  
  56.         damage_string = value.to_s
  57.  
  58.       end
  59.  
  60.       # 初始化位图
  61.  
  62.       bitmap = Bitmap.new(162, 64)
  63.  
  64.       bitmap.font.name = "Arial Black"
  65.  
  66.       bitmap.font.size = 32
  67.  
  68.       # 伤害值是数值的情况下
  69.  
  70.       if value.is_a?(Numeric)
  71.  
  72.         # 分割伤害值字符串
  73.  
  74.         damage_array = damage_string.scan(/./)
  75.  
  76.         damage_x = 81 - damage_string.size * 9
  77.  
  78.         # 伤害值为负的情况下
  79.  
  80.         x = damage_x - 20
  81.  
  82.         if value < 0
  83.  
  84.           # 调用回复数字表
  85.           #☆☆☆☆☆☆☆☆☆☆☆☆
  86.           bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 0, 18, 32))
  87.  
  88.  
  89.         else
  90.  
  91.           # 调用伤害数字表
  92.           #☆☆☆☆☆☆☆☆☆☆☆☆
  93.           bitmap.blt(x, 32, RPG::Cache.picture("Damage1"), Rect.new(0, 32, 18, 100))
  94.  
  95.         end
  96.  
  97.         # 循环伤害值字符串
  98.  
  99.         for char in damage_array
  100.  
  101.           number = char.to_i
  102.  
  103.           # 显示伤害数字
  104.  
  105.           bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage1"),
  106.  
  107.             Rect.new(number * 18 + 36, 0, 18, 32))#36
  108.  
  109.           # 后移一位
  110.  
  111.           damage_x += 18
  112.  
  113.         end
  114.  
  115.       # 伤害值不是数值的情况
  116.  
  117.       else
  118.  
  119.         # 如果伤害值不是 Miss
  120.  
  121.         unless value == "Miss"
  122.  
  123.           # 系统默认描画字符串
  124.  
  125.           bitmap.font.color.set(255, 0, 0)
  126.  
  127.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
  128.  
  129.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
  130.  
  131.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
  132.  
  133.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
  134.  
  135.           bitmap.font.color.set(255, 255, 255)
  136.  
  137.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
  138.  
  139.         # Miss 的情况下
  140.  
  141.         else
  142.  
  143.           # 显示未击中图画
  144.  
  145.           bitmap.blt(36, 28, RPG::Cache.picture("Damage1"), Rect.new(126, 64, 90, 32))
  146.  
  147.         end
  148.  
  149.       end
  150.  
  151.       # 会心一击标志打开的情况
  152.  
  153.       if critical
  154.  
  155.         # 显示会心一击图画
  156.  
  157.         bitmap.blt(36, 0, RPG::Cache.picture("Damage1"), Rect.new(36, 64, 90, 32))
  158.  
  159.       end
  160.  
  161.       # 伤害值定位
  162.  
  163.       @_damage_sprite = ::Sprite.new(self.viewport)
  164.       #@_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 800, 600))
  165.       @_damage_sprite.bitmap = bitmap
  166.  
  167.       @_damage_sprite.ox = 81#81
  168.  
  169.       @_damage_sprite.oy = 70
  170.  
  171.       @_damage_sprite.x = self.battler.screen_x
  172.  
  173.       @_damage_sprite.y = self.y - self.oy / 2
  174.  
  175.       @_damage_sprite.z = 3000
  176.  
  177.       @_damage_duration = 50
  178.  
  179.     end
  180.  
  181.   end
  182.  
  183. end
  184. #==============================================================================
  185. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  186. #==============================================================================





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