标题: [KR视觉研究会]文字渐变效果
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2011-11-22 11:11  资料  短消息  加为好友 
[KR视觉研究会]文字渐变效果

想起来似乎是在一个自写AVG引擎里看到的效果,这几天在通《G弦上的魔王》正好也看到了类似的。
于是研究了一下。感谢船长指导……

其实基本原理也很简单,就是先画一个渐变层图片(可以用PS或者随便什么搞出来,牛的可以自己用脚本画),大小和游戏字体一个字的大小相等或者略大。例如游戏字体是25号,图片就是25x25。

这张图片可以在游戏一开始就加载,之后在显示文字的drawText指令之后用operateRect+乘算效果,将图片刷到字上。

渐变图片:


游戏文字:
点击在新窗口查看全图

代码1:读入隐藏的渐变图片

  var ll2 = new Layer(kag, kag.fore.base);
  with(ll2){
.loadImages("text_color_01");
.setSizeToImageSize();
.setPos(0,0);
.visible=false;
}

代码2:复制到用于描绘文字的层上

var wd=ll.font.getTextWidth(ch);
var wh=ll.font.getTextHeight(ch);
ll.operateRect(dx,dy,ll2,0,0,wd,wh,omPsMultiplicative,255);

KR里消息层上文字的描绘是在ll(LineLayer)上进行的,找到messageLayer或者MessageLayerOverride里对应的ll.drawText的行,然后在下面填写代码即可。
dx和dy是文字在当前linelayer上的位置,ch则是接下来要描绘的文字,因为KR默认文字是一个个字蹦出来的,每次准备描绘的也就是一个字。在这个字上以乘算方式显示渐变图片,也就达成了渐变显示的效果。

笔记:在整行都显示完毕以后lineLayer会被原样复制到message层固定位置,然后清空等待描绘下一行。
PS:不要问我为啥是红绿的啦因为红绿渐变效果最明显而已我的审美还没那么糟糕……= =b

[ 本帖最后由 全局变量D 于 2011-11-22 13:23 编辑 ]





顶部
hanyueying
禁止发言




UID 2282
精华 0
积分 16118
帖子 3246
阅读权限 0
注册 2009-7-30
 
发表于 2012-1-30 18:33  资料  短消息  加为好友 
什么红绿,我只看到黄蓝

顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 1.014000 second(s), 8 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示