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

📄 bouncingcircle.java

📁 2D动态-弹跳球动画-Java源码,看看对你有好处
💻 JAVA
字号:
import java.applet.Applet;    
import java.awt.Color;    
import java.awt.Graphics;    
import java.awt.Rectangle;    
   
/** An applet that displays a simple animation */   
public class BouncingCircle extends Applet implements Runnable {    
  int x = 150, y = 50, r = 50; // Position and radius of the circle    
   
  int dx = 11, dy = 7; // Trajectory of circle    
   
  Thread animator; // The thread that performs the animation    
   
  volatile boolean pleaseStop; // A flag to ask the thread to stop    
   
  /** This method simply draws the circle at its current position */   
  public void paint(Graphics g) {    
    g.setColor(Color.red);    
    g.fillOval(x - r, y - r, r * 2, r * 2);    
  }    
   
  /**   
   * This method moves (and bounces) the circle and then requests a redraw.   
   * The animator thread calls this method periodically.   
   */   
  public void animate() {    
    // Bounce if we've hit an edge.    
    Rectangle bounds = getBounds();    
    if ((x - r + dx < 0) || (x + r + dx > bounds.width))    
      dx = -dx;    
    if ((y - r + dy < 0) || (y + r + dy > bounds.height))    
      dy = -dy;    
   
    // Move the circle.    
    x += dx;    
    y += dy;    
   
    // Ask the browser to call our paint() method to draw the circle    
    // at its new position.    
    repaint();    
  }    
   
  /**   
   * This method is from the Runnable interface. It is the body of the thread   
   * that performs the animation. The thread itself is created and started in   
   * the start() method.   
   */   
  public void run() {    
    while (!pleaseStop) { // Loop until we're asked to stop    
      animate(); // Update and request redraw    
      try {    
        Thread.sleep(100);    
      } // Wait 100 milliseconds    
      catch (InterruptedException e) {    
      } // Ignore interruptions    
    }    
  }    
   
  /** Start animating when the browser starts the applet */   
  public void start() {    
    animator = new Thread(this); // Create a thread    
    pleaseStop = false; // Don't ask it to stop now    
    animator.start(); // Start the thread.    
    // The thread that called start now returns to its caller.    
    // Meanwhile, the new animator thread has called the run() method    
  }    
   
  /** Stop animating when the browser stops the applet */   
  public void stop() {    
    // Set the flag that causes the run() method to end    
    pleaseStop = true;    
  }    
}    

⌨️ 快捷键说明

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