当前位置: 首页 > 编程笔记 >

纯Java代码实现流星划过天空

魏俊茂
2023-03-14
本文向大家介绍纯Java代码实现流星划过天空,包括了纯Java代码实现流星划过天空的使用技巧和注意事项,需要的朋友参考一下

废话不多说了,直接给大家贴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 = ; // (~)流星的个数
   final int SLEEP = ; // 流星飞行的速度(数值越大,速度越慢)
   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(, ); // 创建窗体
   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() * ); //随机生成流星出现位置
     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代码实现流星划过天空,希望本文分享能够给大家带来意想不到的收获。

 类似资料:
  • 本文向大家介绍js实现飞入星星特效代码,包括了js实现飞入星星特效代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现飞入星星特效代码,分享给大家供大家参考。 具体实现代码如下: 希望本文所述对大家的javascript程序设计有所帮助

  • 本文向大家介绍js实现漫天星星效果,包括了js实现漫天星星效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了漫天小星星效果的实现代码,供大家参考,具体内容如下 效果图: 实现代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍java实现的满天星效果实例,包括了java实现的满天星效果实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现满天星效果的方法。分享给大家供大家参考。 具体实现代码如下: 运行效果如下图所示: 希望本文所述对大家的Java程序设计有所帮助。

  • 本文向大家介绍jQuery基于ajax实现星星评论代码,包括了jQuery基于ajax实现星星评论代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery基于ajax实现星星评论代码。分享给大家供大家参考。具体如下: 这里使用jquery模仿点评网的星星评论功能,Ajax评论模块,鼠标点击星星即可评价,下边是分数,可以点击后给分,网上很流行的效果,本代码相对完整,相信很多朋友会喜欢

  • 本文向大家介绍纯JS前端实现分页代码,包括了纯JS前端实现分页代码的使用技巧和注意事项,需要的朋友参考一下 先给大家展示下效果图,如果大家感觉效果不错,请参考实现代码: 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是aj

  • 本文向大家介绍C#纯代码实现打字游戏,包括了C#纯代码实现打字游戏的使用技巧和注意事项,需要的朋友参考一下  本文实例为大家分享了C#实现打字游戏的具体代码,供大家参考,具体内容如下 一、需求分析 1、界面设计 布局 需要哪些内容控件 容器的概念 集合的概念 2、开始游戏 字母的生成 26个字母 ASCII码值 字母的载体 控件 字母、位置、大小、颜色 要求随机的 计时器 3、字母从上往下运动 T

  • 本文向大家介绍纯js代码实现简单计算器,包括了纯js代码实现简单计算器的使用技巧和注意事项,需要的朋友参考一下 本文实例分享了纯js代码实现简单计算器代码,相信大家会喜欢。具体如下: 运行效果截图如下: 具体代码如下: 复制粘贴上方代码即可实现简单的计算器功能,希望本文所述对大家学习javascript程序设计有所帮助。

  • 本文向大家介绍纯js实现手风琴效果代码,包括了纯js实现手风琴效果代码的使用技巧和注意事项,需要的朋友参考一下 我知道现在大多数前端开发人员都在使用jQuery等第三方的库来进行开发,这不仅节约了时间,也让效率大大的提高,并让公司的效益增加,何乐而不为呢? 但是,这也会有一定的缺点,比如jQ比js慢,尤其在大型项目中就会显现出来,下面我用原生js实现一个简单的手风琴效果效果。  HTML代码如下