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

📄 dynarule.java

📁 用java程序编写的游动的图片的特效源码程序!
💻 JAVA
字号:
//dynarule.java
import java.applet.Applet;
import java.awt.*;

public class dynarule extends Applet
    implements Runnable
{
    //变量定义
    int xs = 0;
    int ys = 0;
    int size = 0;
    int dy = 0;
    int num = 0;
    Image img = null;
    Color fg = null;
    Color bg = null;
    Color lc = null;
    Color dc = null;
    float am = 0;
    float of = 0;
    float x = 0;
    float dist = 0;
    float speed = 0;
    MediaTracker tracker = null;
    Image buffer_i = null;
    Graphics buffer_g = null;
    Thread kicker = null;
    float Pi2 = 0;
    //初始化小程序
    public void init()
    {
        tracker = new MediaTracker(this);
        xs = size().width;
        ys = size().height;
        String s = getParameter("img");
        img = getImage(getDocumentBase(), s);
        tracker.addImage(img, 0);
        s = getParameter("size");
        size = s != null ? Integer.valueOf(s).intValue() : 1;
        s = getParameter("num");
        num = s != null ? Integer.valueOf(s).intValue() : 1;
        s = getParameter("dy");
        dy = s != null ? Integer.valueOf(s).intValue() : 50;
        s = getParameter("dist");
        dist = s != null ? Float.valueOf(s).floatValue() : 1.0F;
        s = getParameter("speed");
        speed = s != null ? Float.valueOf(s).floatValue() : Pi2 / 400F;
        s = getParameter("bgcolor");
        bg = s != null ? new Color(Integer.valueOf(s, 16).intValue()) : getBackground();
        s = getParameter("fgcolor");
        fg = s != null ? new Color(Integer.valueOf(s, 16).intValue()) : bg;
        lc = fg.brighter();
        dc = fg.darker();
        buffer_i = createImage(size().width, size().height);
        buffer_g = buffer_i.getGraphics();

    }
    //启动小程序
    public void start()
    {
    	try
        {
            showStatus("dynarule: Loading image...");
            tracker.waitForID(0);
            showStatus("");

        }
        catch(InterruptedException _ex)
        {
            showStatus("dynarule: Image loading interrupted");
            return;

        }
        am = (xs - img.getWidth(this)) / 2;
        of = am;
        x = 0.0F;
        if(kicker == null)
        {
            kicker = new Thread(this);
            kicker.start();

        }

    }
    //停止小程序
    public void stop()
    {
        if(kicker != null)
        {
            kicker.stop();
            kicker = null;
        }
    }
    //运行小程序
    public void run()
    {
        do
        {
            x += speed;
            if(x > Pi2)
                x -= Pi2;
            repaint();
            try
            {
                Thread.sleep(15L);
            }
            catch(InterruptedException _ex) { }
        }
        while(true);
    }
    //画屏函数
    public void paint(Graphics g)
    {
        buffer_g.setColor(bg);
        buffer_g.fillRect(0, 0, xs, ys);
        buffer_g.setColor(lc);
        buffer_g.drawLine(xs - 1, dy + size, 0, dy + size);
        buffer_g.drawLine(xs - 1, dy + size, xs - 1, dy);
        buffer_g.setColor(dc);
        buffer_g.drawLine(0, dy, xs - 1, dy);
        buffer_g.drawLine(0, dy, 0, dy + size);
        float f = x;
        for(int i = 0; i < num; i++)
        {
            int j = (int)(Math.sin(f) * (double)am + (double)of);
            buffer_g.drawImage(img, j, 0, this);
            f += dist;
        }
        g.drawImage(buffer_i, 0, 0, this);

    }
    //刷新屏幕函数
    public final synchronized void update(Graphics g)
    {
        paint(g);
    }
    //构造函数
    public dynarule()
    {
        Pi2 = 6.283185F;
    }
}

⌨️ 快捷键说明

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