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

Project1

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

Flash加工出的文字显示效果图片

 关闭 [复制链接]

Lv1.梦旅人

翔于天壤之人<

梦石
0
星屑
74
在线时间
3 小时
注册时间
2006-10-10
帖子
709
跳转到指定楼层
1
发表于 2007-3-8 05:34:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
在上次的RTAB整合脚本中有不少的好东西,这里对其中一个来点讨论..
里边的升级和数字显示等东东让人感觉效果是特别爽,可是发现许多朋友都是千篇一律的文字和数字样式..很是郁闷..这里写个东东,希望对大家有帮助.
本贴对应:RTAB整合脚本伤害美化
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. class Scene_Battle
  5.   alias :atb_setup_original :atb_setup
  6.   def atb_setup
  7.     for path in ["num", "critical", "miss", "Levelup", "newskill", "learning"]
  8.       RPG::Cache.numeric(path)
  9.     end
  10.     atb_setup_original
  11.   end
  12. end

  13. module RPG
  14.   class Sprite < ::Sprite
  15.     WIDTH = 18                  # 文字幅
  16.     HEIGHT = 20                 # クリティカルの文字?高さ
  17.     def damage(value, critical, type = 0)
  18.       if value.is_a?(Numeric)
  19.         damage_string = value.abs.to_s
  20.       else
  21.         damage_string = value.to_s
  22.       end
  23.       if value.is_a?(Numeric) and value >= 0
  24.         if type == 0
  25.           if critical
  26.             d_bitmap = draw_damage(value, 1)
  27.           else
  28.             d_bitmap = draw_damage(value, 0)
  29.           end
  30.         else
  31.           d_bitmap = draw_damage(value, 2)
  32.         end
  33.       else
  34.         if type == 0
  35.           d_bitmap = draw_damage(value, 3)
  36.         else
  37.           d_bitmap = draw_damage(value, 4)
  38.         end
  39.       end
  40.       if type == 2
  41.         d_bitmap = draw_damage(value, 5)
  42.       end
  43.       num = @_damage.size
  44.       if type != 2
  45.         @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
  46.       else
  47.         @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
  48.       end
  49.       @_damage[num][0].bitmap = d_bitmap
  50.       @_damage[num][0].ox = d_bitmap.width / 2
  51.       @_damage[num][0].oy = d_bitmap.height / 2
  52.       if self.battler.is_a?(Game_Actor)
  53.         @_damage[num][0].x = self.x + self.viewport.ox
  54.         @_damage[num][0].y = self.y - self.oy / 2
  55.       else
  56.         @_damage[num][0].x = self.x + self.viewport.rect.x -
  57.                             self.ox + self.src_rect.width / 2
  58.         @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
  59.                             self.viewport.rect.y
  60.         @_damage[num][0].zoom_x = self.zoom_x
  61.         @_damage[num][0].zoom_y = self.zoom_y
  62.         @_damage[num][0].z = 3000
  63.       end
  64.     end
  65.     def draw_damage(value, element)
  66.       width = 0
  67.       if value.is_a?(Numeric)
  68.         value = value.abs
  69.         fig = value.to_s.size - 1
  70.         file = RPG::Cache.numeric("num")
  71.         d_width = WIDTH * fig + file.rect.width / 10
  72.         if element == 1
  73.           critical = RPG::Cache.numeric("critical")
  74.           d_width = [d_width, critical.rect.width].max
  75.           d_bitmap = Bitmap.new(d_width+36, HEIGHT + file.rect.height / 5)
  76.           d_x = 0#(width - critical.rect.width / 10) / 2
  77.           d_bitmap.blt(d_x+fig*(fig/1.6), 0, critical, critical.rect)
  78.           Audio.se_play("Audio/SE/"+"Clip10",100,100)
  79.     #  $game_screen.start_flash(Color.new(255,255,255),2)
  80.        $game_screen.start_shake(3,9,2)
  81.         else
  82.           d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
  83.         end
  84.         d_x = ((d_width) - (WIDTH * fig + file.rect.width / 10)) / 2
  85.         while fig >= 0
  86.           d_bitmap.blt(d_x, HEIGHT, file, Rect.new((value / (10 ** fig)) *
  87.             file.rect.width / 10, element * file.rect.height / 5,
  88.             file.rect.width / 10, file.rect.height / 5))
  89.           d_x += WIDTH
  90.           value %= 10 ** fig
  91.           fig -= 1
  92.         end
  93.       else
  94.         case value
  95.         when "Miss"
  96.           file = RPG::Cache.numeric("miss")
  97.         when "Level Up!"
  98.           file = RPG::Cache.numeric("levelup")
  99.         when "New Skill!"
  100.           file = RPG::Cache.numeric("newskill")
  101.         when "Learning!"
  102.           file = RPG::Cache.numeric("learning")
  103.         else
  104.           return Bitmap.new(1, 1)
  105.         end
  106.         d_bitmap = file
  107.       end
  108.       return d_bitmap
  109.     end
  110.   end
  111.   module Cache
  112.     def self.numeric(filename)
  113.       self.load_bitmap("Graphics/String/", filename)
  114.     end
  115.   end
  116. end
  117. #==============================================================================
  118. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  119. #==============================================================================
复制代码

还有用图片显示数字 http://rpg.blue/web/htm/news629.htm



首先打开Flash界面,修改大小为文字显示的合适界面大小,如图1,2,3。
使用文本工具输入我们需要的文字,用Ctrl+B打碎文字,在填充里选择填充方式,我选的线性,之后设定变化颜色(也可以使用纯色),如图5,6。
填充好颜色,选择>修改-形状-柔化填充边缘(也可是尝试其他效果)如图8,9.
变化后效果如图10.
最后导出图像,这里导出需要为PNG格式,完整大小并且具有透明通道,最后察看效果.如图13.
以上只是个例子,也可以用在其他方面,比如角色图,地图,魔法特技等等...
结合PS使用效果最佳.

Lv1.梦旅人

翔于天壤之人<

梦石
0
星屑
74
在线时间
3 小时
注册时间
2006-10-10
帖子
709
2
 楼主| 发表于 2007-3-8 05:34:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
在上次的RTAB整合脚本中有不少的好东西,这里对其中一个来点讨论..
里边的升级和数字显示等东东让人感觉效果是特别爽,可是发现许多朋友都是千篇一律的文字和数字样式..很是郁闷..这里写个东东,希望对大家有帮助.
本贴对应:RTAB整合脚本伤害美化
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. class Scene_Battle
  5.   alias :atb_setup_original :atb_setup
  6.   def atb_setup
  7.     for path in ["num", "critical", "miss", "Levelup", "newskill", "learning"]
  8.       RPG::Cache.numeric(path)
  9.     end
  10.     atb_setup_original
  11.   end
  12. end

  13. module RPG
  14.   class Sprite < ::Sprite
  15.     WIDTH = 18                  # 文字幅
  16.     HEIGHT = 20                 # クリティカルの文字?高さ
  17.     def damage(value, critical, type = 0)
  18.       if value.is_a?(Numeric)
  19.         damage_string = value.abs.to_s
  20.       else
  21.         damage_string = value.to_s
  22.       end
  23.       if value.is_a?(Numeric) and value >= 0
  24.         if type == 0
  25.           if critical
  26.             d_bitmap = draw_damage(value, 1)
  27.           else
  28.             d_bitmap = draw_damage(value, 0)
  29.           end
  30.         else
  31.           d_bitmap = draw_damage(value, 2)
  32.         end
  33.       else
  34.         if type == 0
  35.           d_bitmap = draw_damage(value, 3)
  36.         else
  37.           d_bitmap = draw_damage(value, 4)
  38.         end
  39.       end
  40.       if type == 2
  41.         d_bitmap = draw_damage(value, 5)
  42.       end
  43.       num = @_damage.size
  44.       if type != 2
  45.         @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
  46.       else
  47.         @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
  48.       end
  49.       @_damage[num][0].bitmap = d_bitmap
  50.       @_damage[num][0].ox = d_bitmap.width / 2
  51.       @_damage[num][0].oy = d_bitmap.height / 2
  52.       if self.battler.is_a?(Game_Actor)
  53.         @_damage[num][0].x = self.x + self.viewport.ox
  54.         @_damage[num][0].y = self.y - self.oy / 2
  55.       else
  56.         @_damage[num][0].x = self.x + self.viewport.rect.x -
  57.                             self.ox + self.src_rect.width / 2
  58.         @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
  59.                             self.viewport.rect.y
  60.         @_damage[num][0].zoom_x = self.zoom_x
  61.         @_damage[num][0].zoom_y = self.zoom_y
  62.         @_damage[num][0].z = 3000
  63.       end
  64.     end
  65.     def draw_damage(value, element)
  66.       width = 0
  67.       if value.is_a?(Numeric)
  68.         value = value.abs
  69.         fig = value.to_s.size - 1
  70.         file = RPG::Cache.numeric("num")
  71.         d_width = WIDTH * fig + file.rect.width / 10
  72.         if element == 1
  73.           critical = RPG::Cache.numeric("critical")
  74.           d_width = [d_width, critical.rect.width].max
  75.           d_bitmap = Bitmap.new(d_width+36, HEIGHT + file.rect.height / 5)
  76.           d_x = 0#(width - critical.rect.width / 10) / 2
  77.           d_bitmap.blt(d_x+fig*(fig/1.6), 0, critical, critical.rect)
  78.           Audio.se_play("Audio/SE/"+"Clip10",100,100)
  79.     #  $game_screen.start_flash(Color.new(255,255,255),2)
  80.        $game_screen.start_shake(3,9,2)
  81.         else
  82.           d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
  83.         end
  84.         d_x = ((d_width) - (WIDTH * fig + file.rect.width / 10)) / 2
  85.         while fig >= 0
  86.           d_bitmap.blt(d_x, HEIGHT, file, Rect.new((value / (10 ** fig)) *
  87.             file.rect.width / 10, element * file.rect.height / 5,
  88.             file.rect.width / 10, file.rect.height / 5))
  89.           d_x += WIDTH
  90.           value %= 10 ** fig
  91.           fig -= 1
  92.         end
  93.       else
  94.         case value
  95.         when "Miss"
  96.           file = RPG::Cache.numeric("miss")
  97.         when "Level Up!"
  98.           file = RPG::Cache.numeric("levelup")
  99.         when "New Skill!"
  100.           file = RPG::Cache.numeric("newskill")
  101.         when "Learning!"
  102.           file = RPG::Cache.numeric("learning")
  103.         else
  104.           return Bitmap.new(1, 1)
  105.         end
  106.         d_bitmap = file
  107.       end
  108.       return d_bitmap
  109.     end
  110.   end
  111.   module Cache
  112.     def self.numeric(filename)
  113.       self.load_bitmap("Graphics/String/", filename)
  114.     end
  115.   end
  116. end
  117. #==============================================================================
  118. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  119. #==============================================================================
复制代码

还有用图片显示数字 http://rpg.blue/web/htm/news629.htm



首先打开Flash界面,修改大小为文字显示的合适界面大小,如图1,2,3。
使用文本工具输入我们需要的文字,用Ctrl+B打碎文字,在填充里选择填充方式,我选的线性,之后设定变化颜色(也可以使用纯色),如图5,6。
填充好颜色,选择>修改-形状-柔化填充边缘(也可是尝试其他效果)如图8,9.
变化后效果如图10.
最后导出图像,这里导出需要为PNG格式,完整大小并且具有透明通道,最后察看效果.如图13.
以上只是个例子,也可以用在其他方面,比如角色图,地图,魔法特技等等...
结合PS使用效果最佳.

Lv1.梦旅人

邪恶小龙包

梦石
0
星屑
55
在线时间
17 小时
注册时间
2006-5-22
帖子
7006

第2届短篇游戏比赛冠军第3届短篇游戏大赛小游戏及其他组冠军RMVX自由创作大赛冠军

3
发表于 2007-3-8 05:43:23 | 只看该作者
赞成~~~比起PS,我做效果字更喜欢用FLASH~~
虚无  堕落
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2007-3-8 05:57:11 | 只看该作者
我是用FW,主要是因为macromedia的这些启动快些{/gg}
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

秀逗の魔导士

梦石
0
星屑
50
在线时间
5 小时
注册时间
2006-10-25
帖子
2000

贵宾

5
发表于 2007-3-8 07:01:29 | 只看该作者
不错~

LZ发个范例上来吧~~
漂流的日子…
回复 支持 反对

使用道具 举报

Lv1.梦旅人

本尊<

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-11-21
帖子
799

贵宾

6
发表于 2007-3-8 07:28:46 | 只看该作者
还有一点,在小范围内ps做图比flash导出的图模糊
黑羽毛
回复 支持 反对

使用道具 举报

Lv1.梦旅人

翔于天壤之人<

梦石
0
星屑
74
在线时间
3 小时
注册时间
2006-10-10
帖子
709
7
 楼主| 发表于 2007-3-8 21:21:38 | 只看该作者
否定的...两个软件各有所长,用Flash做的图片通常都要比PhotoShop平均25X25像素都要大上1KB..
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

8
发表于 2007-3-8 21:53:49 | 只看该作者
挖~~好棒~~支持一个^我家的PS打开都要10分钟= =|||

多做点字来分享吧~~~{/cy}
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 02:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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