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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 神族召唤师
打印 上一主题 下一主题

[已经解决] 怎样在播放攻击动画的同时显示伤害数值

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2009-7-21
帖子
152
11
发表于 2009-7-23 10:44:13 | 只看该作者
我想大家理解错误了吧  
我要做的是RPG角色扮演类游戏
而不是ARPG横版过关游戏
所以那个脚本我用不了
神族召唤师 发表于 2009-7-23 02:11

RPG一般没人弄那个脚本...等等看看有谁会编程的帮你下吧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
7329
在线时间
24 小时
注册时间
2009-7-10
帖子
1260
12
发表于 2009-7-24 00:08:30 | 只看该作者
  1. #==============================================================================
  2. # <<\/>> Vixotic_Damage_Pop up
  3. #------------------------------------------------------------------------------
  4. # Version 1.1
  5. # by Vixotic [[email protected]]
  6. # Exclusive Script for http://rpgmakervx.net/
  7. #
  8. # Place this script above Main
  9. #==============================================================================
  10. module VIX
  11. #--------------------------
  12. # Damage Text Position
  13. #------------------------
  14. Damage_X_Plus = 0
  15. # Move Damage Position in vertical direction ((-)up <= 0 => down(+))
  16. Damage_Y_Plus = -20
  17. # Move Damage Position in horizontal direction ((-)left <= 0 => right(+))
  18. #--------------------------
  19. # Damage Text Font/Size
  20. #------------------------
  21. Damage_Text_Font = "Arial Black"
  22. Damage_Text_Size = 32
  23. end
  24. class Sprite_Base < Sprite
  25. alias vix_sprbase_ini initialize
  26. alias vix_sprbase_upd update
  27. def initialize(viewport = nil)
  28. vix_sprbase_ini(viewport)
  29. @_damage_duration = 0
  30. end
  31. def update
  32. vix_sprbase_upd
  33. if @_damage_duration > 0
  34. @_damage_duration -= 1
  35. case @_damage_duration
  36. when 38..39
  37. @_damage_sprite.y -= 4
  38. when 36..37
  39. @_damage_sprite.y -= 2
  40. when 34..35
  41. @_damage_sprite.y += 2
  42. when 28..33
  43. @_damage_sprite.y += 4
  44. end
  45. @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
  46. if @_damage_duration == 0
  47. dispose_damage
  48. end
  49. end
  50. end

  51. def damage(value)
  52. dispose_damage
  53. if value.is_a?(Numeric)
  54. damage_string = value.abs.to_s
  55. else
  56. damage_string = value.to_s
  57. end
  58. bitmap = Bitmap.new(160, 48)
  59. bitmap.font.name = VIX::Damage_Text_Font
  60. bitmap.font.size = VIX::Damage_Text_Size
  61. bitmap.font.color.set(0, 0, 0)
  62. bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  63. bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  64. bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  65. bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  66. if value.is_a?(Numeric) and value < 0
  67. bitmap.font.color.set(176, 255, 144)
  68. else
  69. bitmap.font.color.set(255, 255, 255)
  70. end
  71. bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  72. @_damage_sprite = ::Sprite.new(self.viewport)
  73. @_damage_sprite.bitmap = bitmap
  74. @_damage_sprite.ox = 80
  75. @_damage_sprite.oy = 20
  76. @_damage_sprite.x = self.x + VIX::Damage_X_Plus
  77. @_damage_sprite.y = (self.y - self.oy / 2) + VIX::Damage_Y_Plus
  78. @_damage_sprite.z = 3000
  79. @_damage_duration = 40
  80. end
  81. def dispose_damage
  82. if @_damage_sprite != nil
  83. @_damage_sprite.bitmap.dispose
  84. @_damage_sprite.dispose
  85. @_damage_sprite = nil
  86. @_damage_duration = 0
  87. end
  88. end
  89. end
  90. class Game_Battler
  91. attr_accessor :damage
  92. alias vix_gamebat_clr clear_sprite_effects
  93. def clear_sprite_effects
  94. @damage = 0
  95. vix_gamebat_clr
  96. end
  97. end
  98. class Sprite_Battler < Sprite_Base
  99. DAMAGE = 7
  100. alias vix_sprbat_set setup_new_effect
  101. def setup_new_effect
  102. vix_sprbat_set
  103. if @battler.damage != 0
  104. damage(@battler.damage)
  105. @effect_type = DAMAGE
  106. @battler.damage = 0
  107. end
  108. end
  109. end
  110. class Scene_Battle < Scene_Base
  111. def display_action_effects(target, obj = nil)
  112. unless target.skipped
  113. line_number = @message_window.line_number
  114. wait(5)
  115. target.damage = target.hp_damage if target.is_a?(Game_Enemy)
  116. display_critical(target, obj)
  117. display_damage(target, obj)
  118. display_state_changes(target, obj)
  119. if line_number == @message_window.line_number
  120. display_failure(target, obj) unless target.states_active?
  121. end
  122. if line_number != @message_window.line_number
  123. wait(30)
  124. end
  125. @message_window.back_to(line_number)
  126. end
  127. end
  128. end
复制代码
前几天从站上翻到的脚本,测试有效,冲突未知,效果是攻击动画之后跳出伤害数字。。。
忘记是哪位提供的了,抱歉。。。

其实LZ提问前可以多尝试搜索,应该会有不少收获。。。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

13
发表于 2009-7-30 14:15:41 | 只看该作者
彩虹神剑
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-27 15:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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