⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccb_welcome.java

📁 用java applet 实现显示特效。水波、眼花算法来自网民作品。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * @(#)Ccb_welcome.java
 *
 * Sample Applet application
 *
 * @author 
 * @version	1.00 05/11/23
 */
 
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
import java.util.Random;

public class Ccb_welcome extends Applet	implements Runnable{
    int	widthBack=500, heightBack =200;
    Image imageBack, imageBuffer, imageSky,	imageCCB, imageFront;
    int	widthFront = 250, heightFront =	50;
    int	xFront=(widthBack -	widthFront)/2, yFront=heightBack-50-30, vxFront, vyFront;
    MediaTracker tracker1;
    Thread thread1;
    boolean	isEnd;
    boolean	isInitialized;
    int	numFrames =	60;
    int	currFrames = 0;
    MemoryImageSource offImage;
    MemoryImageSource offFront;
    int	pixsBack[];
    PixelGrabber pg;
    PixelGrabber pgCCB;
    int	pixsCCB[];
    int	pixs[];
    int	pixsFront[];
    double bit_px[];
    double bit_py[];
    double bit_vx[];
    double bit_vy[];
    int	bit_sx[];
    int	bit_sy[];
    int	bit_l[];
    int	bit_f[];
    int	bit_p[];
    int	bit_c[];
    int	bit_t[];
    static int bit_max=100;
    int	ru =30;
    int	rv =30;
    int	bits = 1200;
    static int bit_time	=0;
    static int bit_time_l =60;
    String strText[]={"中国建设银行",
    				  "建设现代生活",
    				  "服务永无止境",
    				  "用心才能做好",
    				  "打造增值服务",
    				  "超越客户希望",
    				  "求实创新...."};
    int	strTextIdx =0;
    int cFront =0;
    int fullFront =0x00;
    boolean isFull = true;
    int fullPace =3;
    boolean isDraw = false;
    
    AudioClip sound1;
    AudioClip sound2;
    Random rand;

        
    public void	start(){
        isEnd =	false;
        thread1	= new Thread(this);
        thread1.start();
        new makeFire();
    }
    
    public void	stop(){
        isEnd =	true;
    }
    
    public void	init() {
        isInitialized =	false;
        vxFront = (int)(Math.random()*10);
        vyFront = (int)(Math.random()*10);
        System.out.println("vx:"+vxFront+",vy=:"+vyFront);
        tracker1 = new MediaTracker(this);
        
        Image temp1 =createImage(widthFront, heightFront*strText.length);
        Font f = new Font("Dialog",	Font.BOLD,38);
        Graphics g1	= temp1.getGraphics();
        g1.setFont(new Font("Dialog", Font.BOLD, 38));
        g1.setColor(new	Color(0, 0,	0));
        g1.fillRect(0, 0, widthFront, heightFront*strText.length);

		
		for(int fi=0; fi<strText.length;fi++){
			g1.setColor(new	Color(130, 130, 150));
        	g1.drawString(strText[fi], 2, 40+fi*50);
        	g1.setColor(new	Color(100, 100,	250));
        	g1.drawString(strText[fi], 0, 39+fi*50);
		}
        

        pixsFront =	new	int[temp1.getWidth(null)* temp1.getHeight(null)];
        
        
        
        PixelGrabber pg1 = new PixelGrabber(temp1, 
                                            0, 0,
                                            temp1.getWidth(null),
                                            temp1.getHeight(null),
                                            pixsFront,
                                            0, temp1.getWidth(null));
        try{
            pg1.grabPixels();
            for(int	i=0; i<	temp1.getWidth(null)*temp1.getHeight(null);	i++){
                if((pixsFront[i]&0x00FFFFFF) ==	0) pixsFront[i]&=0x00FFFFFF;
            }
            offFront = new MemoryImageSource(temp1.getWidth(null), 
                                        temp1.getHeight(null),
                                        pixsFront,
                                        0,
                                        temp1.getWidth(null));
            offFront.setAnimated(true);
            offFront.setFullBufferUpdates(true);
            imageFront = createImage(offFront);
            
        
        }catch(InterruptedException	iEx){}
                    
        
        pixs = new int[widthBack * heightBack];
        offImage = new MemoryImageSource(widthBack,
                                        heightBack,
                                        pixs,
                                        0,
                                        widthBack);
        offImage.setAnimated(true);
        imageSky = createImage(offImage);
        for(int	i=0; i<	widthBack*heightBack; i++) 
            pixs[i]=0xff000000;
        
        bit_px = new double[bits];
        bit_py = new double[bits];
        bit_vx = new double[bits];
        bit_vy = new double[bits];
        bit_sx = new int[bits];
        bit_sy = new int[bits];
        bit_l =	new	int[bits];
        bit_f =	new	int[bits];
        bit_p =	new	int[bits];
        bit_c =	new	int[bits];
        bit_t =	new	int[bits];
        for(int	i=0; i<bits; i++) bit_f[i] = 0;
        
        rand = new Random();
        
        imageBack =	getImage(getCodeBase(),	"back.jpg");
        imageCCB = getImage(getCodeBase(), "ccb.jpg");
        sound1 = getAudioClip(getCodeBase(), "2.au");
        sound2 = getAudioClip(getCodeBase(), "1.au");
        tracker1.addImage(imageBack, 0);
        tracker1.addImage(imageCCB,	1);
        try{
            tracker1.waitForAll();
        }catch(InterruptedException	iEx){}
        
        pixsBack = new int[widthBack * heightBack];
        pg = new PixelGrabber(imageBack, 
                                0, 0, 
                                widthBack, heightBack, 
                                pixsBack, 0,
                                widthBack);
        try{pg.grabPixels();}catch(InterruptedException	iEx){}
        for(int	i=0; i<	widthBack* heightBack; i++){
            int	r=pixsBack[i]&0x00FF0000>>16;
            int	g=pixsBack[i]&0x0000FF00>>8;
            int	b=pixsBack[i]&0xFF;
            if(b < 5 && g < 5 && r < 5) pixsBack[i]=pixsBack[i]&0x00FFFFFF;
        }
        
        imageBack =	createImage(new	MemoryImageSource(widthBack,
                                                    heightBack,
                                                    pixsBack,
                                                    0, widthBack));
                                                    
        tracker1.addImage(imageBack, 3);
        try{
            tracker1.waitForID(3);
        }catch(InterruptedException	iEx){}

        //创建后台缓冲去区
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice gd = ge.getDefaultScreenDevice();
        GraphicsConfiguration gc = gd.getDefaultConfiguration();
        //imageBuffer	= createImage(imageBack.getWidth(null),
        //                          imageBack.getHeight(null)*2);
        imageBuffer = gc.createCompatibleVolatileImage(imageBack.getWidth(null),
        											imageBack.getHeight(null)*2);
        //结束后台缓冲区的创建
        pixsCCB	= new int[imageCCB.getWidth(null)* imageCCB.getHeight(null)];
        pgCCB =	new	PixelGrabber(imageCCB,
                                0, 0,
                                imageCCB.getWidth(null),
                                imageCCB.getHeight(null),
                                pixsCCB, 0,
                                imageCCB.getWidth(null));
        try{
            pgCCB.grabPixels();
        }catch(InterruptedException	iEx){}
        MemoryImageSource offCCB =new MemoryImageSource(imageCCB.getWidth(null),
                            imageCCB.getHeight(null),
                            pixsCCB, 0,
                            imageCCB.getWidth(null));
        //offCCB.setAnimated(true);
        //imageCCB = createImage(offCCB);
        for(int	i=0; i<imageCCB.getWidth(null)*imageCCB.getHeight(null); i++){
            int	j =pixsCCB[i]&0x00FFFFFF;
            if(j >0x00500202 ) pixsCCB[i]&=0x00FFFFFF;
        }
        System.out.println("w="+imageCCB.getWidth(null)+",h="+imageCCB.getHeight(null));		
        imageCCB = createImage(offCCB);
        isInitialized =	true;
    }
    
    public void	update(Graphics	g){
        if(imageBuffer != null){
        	g.drawImage(imageBuffer, 0,	0, this);
        }   
    }

    public void	paint(Graphics g) {
    	update(g);
    }
    
    public void	run(){
        while(isInitialized	== false) 
        try { 
                Thread.sleep(100l);
        }catch(InterruptedException	iEx){}
        //MAKE FIRE
        while(isEnd	== false){
            int i;
            for(i =	0; i < widthBack * (heightBack-2); i++)
            {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -