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

Project1

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

[已经过期] 怎么改伤害数字的位置

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2012-8-16
帖子
52
跳转到指定楼层
1
发表于 2012-8-21 15:28:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RUBY 代码复制
  1. # ダメージ表示改造(RTAB用) ver 1.02
  2. # 配布元・サポートURL
  3. # [url]http://members.jcom.home.ne.jp/cogwheel/[/url]
  4.  
  5. class Scene_Battle
  6.   alias :atb_setup_original :atb_setup
  7.   def atb_setup
  8.     for path in ["num", "critical", "miss", "levelup", "newskill", "learning"]
  9.       RPG::Cache.numeric(path)
  10.     end
  11.     atb_setup_original
  12.   end
  13. end
  14.  
  15. module RPG
  16.   class Sprite < ::Sprite
  17.     WIDTH = 18                  # 文字幅
  18.     HEIGHT = 20                 # クリティカルの文字・高さ
  19.     def damage(value, critical, type = 0)
  20.       if value.is_a?(Numeric)
  21.         damage_string = value.abs.to_s
  22.       else
  23.         damage_string = value.to_s
  24.       end
  25.       if value.is_a?(Numeric) and value >= 0
  26.         if type == 0
  27.           if critical
  28.             d_bitmap = draw_damage(value, 1)
  29.           else
  30.             d_bitmap = draw_damage(value, 0)
  31.           end
  32.         else
  33.           d_bitmap = draw_damage(value, 2)
  34.         end
  35.       else
  36.         if type == 0
  37.           d_bitmap = draw_damage(value, 3)
  38.         else
  39.           d_bitmap = draw_damage(value, 4)
  40.         end
  41.       end
  42.       if type == 2
  43.         d_bitmap = draw_damage(value, 5)
  44.       end
  45.       num = @_damage.size
  46.       if type != 2
  47.         @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
  48.       else
  49.         @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
  50.       end
  51.       @_damage[num][0].bitmap = d_bitmap
  52.       @_damage[num][0].ox = d_bitmap.width / 2
  53.       @_damage[num][0].oy = d_bitmap.height / 2
  54.       if self.battler.is_a?(Game_Actor)
  55.         @_damage[num][0].ox = d_bitmap.width / 2 + 200
  56.         @_damage[num][0].x = self.x + self.viewport.ox        
  57.         @_damage[num][0].y = self.y - self.oy / 2
  58.       else
  59.         @_damage[num][0].x = self.x + self.viewport.rect.x -
  60.                             self.ox + self.src_rect.width / 2
  61.         @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
  62.                             self.viewport.rect.y
  63.         @_damage[num][0].zoom_x = self.zoom_x
  64.         @_damage[num][0].zoom_y = self.zoom_y
  65.         @_damage[num][0].z = 3000
  66.       end
  67.     end
  68.     def draw_damage(value, element)
  69.       width = 0
  70.       if value.is_a?(Numeric)
  71.         value = value.abs
  72.         fig = value.to_s.size - 1
  73.         file = RPG::Cache.numeric("num")
  74.         d_width = WIDTH * fig + file.rect.width / 10
  75.         if element == 1
  76.           critical = RPG::Cache.numeric("critical")
  77.           d_width = [d_width, critical.rect.width].max
  78.           d_bitmap = Bitmap.new(d_width+36, HEIGHT + file.rect.height / 5)
  79.           d_x = 0#(width - critical.rect.width / 10) / 2
  80.           d_bitmap.blt(d_x+fig*(fig/1.6), 0, critical, critical.rect)
  81.          # 会心一击表现效果强化
  82.           Audio.se_play("Audio/SE/"+"Clip10",100,100)
  83.       $game_screen.start_flash(Color.new(255,255,255),10)
  84.        $game_screen.start_shake(3,9,10)
  85.         else
  86.           d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
  87.         end
  88.         d_x = ((d_width) - (WIDTH * fig + file.rect.width / 10)) / 2
  89.         while fig >= 0
  90.           d_bitmap.blt(d_x, HEIGHT, file, Rect.new((value / (10 ** fig)) *
  91.             file.rect.width / 10, element * file.rect.height / 5,
  92.             file.rect.width / 10, file.rect.height / 5))
  93.           d_x += WIDTH
  94.           value %= 10 ** fig
  95.           fig -= 1
  96.         end
  97.       else
  98.         case value
  99.         when "Miss"
  100.           file = RPG::Cache.numeric("miss")
  101.         when "等级提升!"
  102.           file = RPG::Cache.numeric("levelup")
  103.         when "New Skill!"
  104.           file = RPG::Cache.numeric("newskill")
  105.         when "Learning!"
  106.           file = RPG::Cache.numeric("learning")
  107.         else
  108.           return Bitmap.new(1, 1)
  109.         end
  110.         d_bitmap = file
  111.       end
  112.       return d_bitmap
  113.     end
  114.   end
  115.   module Cache
  116.     def self.numeric(filename)
  117.       self.load_bitmap("Graphics/String/", filename)
  118.     end
  119.   end
  120. end
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-7-21 13:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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