铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 1642|回复: 5

请教黑屏缓缓打出文字如何实现

[复制链接]
发表于 2011-12-26 20:30 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
RT吖 做剧情  想让画面变黑之, 出现白色字体的诗句,老是实现不了, 郁闷死我了,请各位不吝指教吖
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-26 20:37 | 显示全部楼层
本帖最后由 zengMF 于 2011-12-26 20:38 编辑

用lib.ShowSlow就行了

如:

KungfuString("试验",CC.ScreenW/2,CC.ScreenH/2,C_WHITE,CC.Fontbig+5,CC.FontName,3)
lib.ShowSlow(100,0);

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-26 20:47 | 显示全部楼层
本帖最后由 蓝烟清 于 2011-12-26 20:52 编辑

--定义一个字符串
local str = "测试用的"
--把场景变黑
lib.FillColor(0, 0, CC.ScreenW, CC.ScreenH, C_BLACK)
ShowScreen()
--字符串长度
local len = string.len(str)*2          --这里是有问题的,直接乘2算了,非中文不支持
local size = CC.DefaultFont
local color = C_WHITE
--循环显示,中文要两个长度
for i=0, i<len, 2 do
      DrawString(100 + i *size , 100, string.sub(str,i,i+1), size, color)      ShowScreen()
      lib.Delay(100)   --暂停一下再显示
end

纯手写,有错自己调试哦


点评

蓝大很有爱 多谢了 ~  发表于 2011-12-27 08:57
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-26 23:04 | 显示全部楼层

哦,把LZ意思理解错了。。

蓝大的代码,是按字符显示的,很生硬的感觉。。


修改了下蓝大的代码,是按像素逐步显示

    local str = "试验试验试验试验试验试验试验试验试验试验试验"
   
    --把场景变黑
    lib.FillColor(0, 0, CC.ScreenW, CC.ScreenH, C_BLACK)
    ShowScreen()
     --字符串长度

    local len = string.len(str)        
    local size = CC.Fontbig
    local color = C_WHITE   
    local Wsize=len*size
    for i=50, Wsize do              --Wsize的数值可以用CC.ScreenW
     lib.SetClip(50,300,i,300+CC.Fontbig)               
     DrawString(50,300,string.format("%s",str),C_WHITE,CC.Fontbig);
     lib.Delay(25)
     lib.SetClip(0,0,0,0)   
     ShowScreen()
    end

点评

恩,不错。 会裁剪区域的方式实现起来效果更好。 可以更平滑的输出  发表于 2011-12-27 09:12
昨天做开场剧情做了一天 刚刚看看你的回复 我现在就去实验多谢了  发表于 2011-12-27 08:58
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-12-27 12:38 | 显示全部楼层
回复 zengMF 的帖子

另外想请教 如果想要做到换行的效果如何实现?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-27 12:57 | 显示全部楼层
本帖最后由 zengMF 于 2011-12-27 13:06 编辑

回复 查理猫 的帖子


再做个循环,把剪切区域设定到下一行就行了。。

如:这是上一行:
    for i=50, Wsize do              --文字是中文的话,Wsize的数值要除以2
     lib.SetClip(50,300,i,300+CC.Fontbig)               
     DrawString(50,300,string.format("%s",str),C_WHITE,CC.Fontbig);
     lib.Delay(25)
     lib.SetClip(0,0,0,0)   
     ShowScreen()
   end
下一行可以加如下:


    for i=50, Wsize do              --文字是中文的话,Wsize的数值要除以2
     lib.SetClip(50,300+CC.Fontbig+20,i,300+CC.Fontbig*2+20)                --300+CC.Fontbig+20是下一行的起始Y坐标
     DrawString(50,300+CC.Fontbig+20,string.format("%s",str),C_WHITE,CC.Fontbig);
     lib.Delay(25)
     lib.SetClip(0,0,0,0)   
     ShowScreen()
    end
参考这个代码,可以很方便的写出竖向文字渐变的效果(文字输出可参照蓝大上面代码的字符处理部分)


点评

多谢多谢 好多效果我都没调试过 再去试试  发表于 2011-12-27 14:06
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-19 00:16

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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