国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

純Java代碼實現(xiàn)流星劃過天空

2019-11-26 14:54:05
字體:
供稿:網(wǎng)友

廢話不多說了,直接給大家貼java代碼了。

import java.awt.Color;  import java.awt.Graphics;  import java.awt.image.BufferedImage;  import javax.swing.JFrame;  import javax.swing.JPanel;  public class MeteorFly extends JFrame {   final int MAX = ; // (~)流星的個數(shù)   final int SLEEP = ; // 流星飛行的速度(數(shù)值越大,速度越慢)   final int COLORLV = ; // (~)色階(可改變光暈大小)   final String COLOR = null; // ("#"~"#ffffff")光暈顏色(如果不填或null,則為默認顏色)   final int SIZE = ; // (~)流星大小   private MyPanel panel;   public MeteorFly() {   panel = new MyPanel();   this.getContentPane().add(panel);   this.setSize(, ); // 創(chuàng)建窗體   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   this.setVisible(true);   }   public static void main(String[] args) {   new MeteorFly();   }   class MyPanel extends JPanel implements Runnable {   Meteor p[];   int AppletWidth, AppletHeight;   BufferedImage OffScreen;   Graphics drawOffScreen;   Thread pThread;   public MyPanel() {     setBackground(Color.black); //窗體初始化     AppletWidth = ;     AppletHeight = ;     p = new Meteor[MAX];     for (int i = ; i < MAX; i++)     p[i] = new Meteor();     OffScreen = new BufferedImage(AppletWidth, AppletHeight,       BufferedImage.TYPE_INT_BGR);     drawOffScreen = OffScreen.getGraphics();     pThread = new Thread(this);     pThread.start();   }   @Override   public void paintComponent(Graphics g) {     // TODO Auto-generated method stub     super.paintComponents(g);     g.drawImage(OffScreen, , , this);   }   @Override   final public void run() {     while (true) {     // drawOffScreen.clearRect(, , AppletWidth, AppletHeight); //     // 清屏     for (int i = ; i < MAX; i++) {       drawOffScreen.setColor(p[i].color); // RGB顏色       drawOffScreen.fillOval(p[i].x, p[i].y, SIZE, SIZE);       p[i].x += p[i].mx;       p[i].y += p[i].my;       // if (p[i].x > AppletWidth || p[i].y > AppletHeight) {       // p[i].reset();       // }       int x = p[i].x;       int y = p[i].y;       int R = p[i].color.getRed(); // 提取顏色       int G = p[i].color.getGreen();       int B = p[i].color.getBlue();       while (true) {       if (R == && G == && B == ) {         break;       }       R -= COLORLV; // 尾部顏色淡化       if (R < ) {         R = ;       }       G -= COLORLV;       if (G < ) {         G = ;       }       B -= COLORLV;       if (B < ) {         B = ;       }       Color color = new Color(R, G, B);       x -= p[i].mx; // 覆蓋尾部       y -= p[i].my;       drawOffScreen.setColor(color);       drawOffScreen.fillOval(x, y, SIZE, SIZE);       }       if (x > AppletWidth || y > AppletHeight) { // 流星飛出窗口,重置流星       p[i].reset();       }     }     repaint();     try {       Thread.sleep(SLEEP);     } catch (InterruptedException e) {       // TODO Auto-generated catch block       e.printStackTrace();     }     }   }   }   class Meteor { // 流星類   int x, y; // 流星的位置   int mx, my; // 下落速度   Color color; // 流星顏色   public Meteor() {     reset();   }   public void reset() {     int rand = (int) (Math.random() * ); //隨機生成流星出現(xiàn)位置     if (rand > ) {     x = (int) (Math.random() * );     y = ;     } else {     y = (int) (Math.random() * );     x = ;     }     mx = (int) (Math.random() * + ); //隨機生成下落速度和角度     my = (int) (Math.random() * + );     if (COLOR == null || COLOR.length() == ) {     color = new Color(       // 隨機顏色       (new Double(Math.random() * )).intValue() + ,       (new Double(Math.random() * )).intValue() + ,       (new Double(Math.random() * )).intValue() + );     } else {     color = Color.decode(COLOR);     }   }   } }

以上代碼就是本文給大家講述的純Java代碼實現(xiàn)流星劃過天空,希望本文分享能夠給大家?guī)硪庀氩坏降氖斋@。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁都县| 金塔县| 陆河县| 瓦房店市| 雷州市| 江永县| 嘉定区| 杭锦后旗| 堆龙德庆县| 广水市| 宁南县| 宁晋县| 阳新县| 察隅县| 罗山县| 始兴县| 筠连县| 喜德县| 武邑县| 同德县| 防城港市| 永安市| 民勤县| 若尔盖县| 晋城| 淮南市| 桂平市| 离岛区| 呼伦贝尔市| 东至县| 平阴县| 淮阳县| 昌黎县| 新绛县| 遂昌县| 乌什县| 南康市| 洱源县| 虎林市| 余姚市| 澄迈县|