Java实现动画逐字打印

在现代,摒弃传统的会话方式,很多的图形广告或游戏采用了[ 逐字打印]的效果来展示文字,当然,这样做的目的无非是为了突 出内容或吸引眼球。

但是这种实现方式却是值得借鉴的,以下,我给出一个JAVA实 现的简单用例,需要者可以自行扩充。

代码实现:

package org.test;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Panel;import java.awt.image.BufferedImage;import org.loon.framework.game.helper.ImageHelper;/** *//***

* Title: LoonFramework*

*

* Description:JAVA实现对话逐字打印(由Loonframework提供 )*

*

* Copyright: Copyright (c) 2007*

*

* Company: LoonFramework*

** @author chenpeng* @email:ceponline@yahoo.com.cn* @version 0.1*/public final class WriterType extends Panel implements Runnable {     // 最大对话数     private int _MAX_COUNT = 10;     //间隔标记     private char _flag='|';     private Image _screen;     private Graphics _bg;     private Thread _L_WriterType;     private static Color _L_fClr;     private static Color _L_bClr;     private static String _M_Text[];     private int _S_COUNT;     private Font _L_TTF;     private int _L_Speed;     private int _L_Delay;     private String _C_Text[];     private static int _L_COUNT;     private static int _F_COUNT;     private static int _T_COUNT;     private static int _N_Text;     private String _FontName;     private final static int _WIDTH = 500;     private final static int _HEIGHT = 375;     private static int _FontStyle;     private static int _FontSize;     private static  Image _back = null;     /** *//**     *     */     private static final long serialVersionUID = 1L;     private boolean _isRun;     /** *//**     * 析构函数,注入背景图,循环显示的文字数组,速度, 延迟     * @param img     * @param strContent     * @param speed     * @param delay     */     public WriterType(Image img,String[] strContent, int speed, int delay) {         init(img,strContent, speed, delay);     }     private WriterType() {     }     public void init(Image img,String[] strContent, int speed, int delay) {         //初始背景色         setBackground(Color.BLACK);         // 原始对话信息         _M_Text = new String[_MAX_COUNT];         // 缓存对话信息         _C_Text = new String[_MAX_COUNT];         _back=img;         _FontName = "宋体";         _FontStyle. = 0;         _FontSize = 15;         _L_TTF = new Font(_FontName, _FontStyle, _FontSize);         _L_bClr = Color.BLACK;         _L_fClr = new Color(250, 250, 250);         int length = strContent.length;         // 循环次数         _N_Text = strContent.length - 1;         // 直接copy String数组         System.arraycopy(strContent, 0, _M_Text, 0, length);         //速度及延迟设定         _L_Speed = speed;         _L_Delay = delay;         //缓存区域         _screen = new BufferedImage(_WIDTH, _HEIGHT, 1);         _bg = _screen.getGraphics();         //开启线程             _isRun = true;             _L_WriterType = new Thread (this);             _L_WriterType.start();     }     /** *//**     * 停止线程     *     */     public void stop() {         _S_COUNT = 0;         _L_COUNT = 0;         _F_COUNT = 0;         if (_L_WriterType != null) {             _isRun = false;             _L_WriterType = null;         }     }     /** *//**     * 绘制图形  德有多高,艺有多深。

Java实现动画逐字打印

相关文章:

你感兴趣的文章:

标签云: