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

📄 birdfly.java

📁 java程序中关于多媒体编程 既有文件说明 更有例子 希望大家可以一起学习交流
💻 JAVA
字号:
package birdfly;import java.awt.*;import java.awt.event.*;import java.applet.*;/** * <p>Title: 飞行的大鸟</p> * <p>Description: 在沙漠中飞行的大鸟</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 北京师范大学计算机系</p> * @author 孙一林 * @version 1.0 */public class BirdFly extends MultiThreadApplet {  boolean isStandalone = false;  Image offScreenImg;					//存放备用屏幕的内容  Graphics offScreenG;					//备用屏幕的绘图环境  MediaTracker tracker;					//媒体跟踪器  Image walkerImgs[]=new Image[4];		//存放大鸟走路姿势图像  Image currentImg;						//当前放映的大鸟动作图像  int xpos,ypos=0;						//大鸟动作图像显示的位置  int walk_step=20;						//大鸟图像每次移动的距离  int delay = 250;						//每帧时延(毫秒)  Image bgImage;						//存放草原背景图像  int applet_width,applet_height;  int birdImg_width;						//大鸟图像宽度  //Get a parameter value  public String getParameter(String key, String def) {    return isStandalone ? System.getProperty(key, def) :      (getParameter(key) != null ? getParameter(key) : def);  }  //Construct the applet  public BirdFly() {  }  //Initialize the applet  public void init() {    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception {    tracker = new MediaTracker(this);    for (int i=0;i<walkerImgs.length;i++){					//获取大鸟动作图像      walkerImgs[i]=getImage(getCodeBase(),"images/bird"+i+".gif");      tracker.addImage(walkerImgs[i], 0);				//列入0组跟踪范围    }    bgImage = getImage(getCodeBase(),"images/"+"bg.gif");	//获取草原背景图像    tracker.addImage(bgImage, 0);						//列入0组跟踪范围    applet_width = getSize().width;    applet_height = getSize().height;    try {      offScreenImg = createImage (applet_width,applet_height);//创建备用屏幕      offScreenG = offScreenImg.getGraphics ();//获取备用屏幕的绘图环境    }    catch (Exception e) {      offScreenG = null;		//若出错,就置备用屏幕的绘图上下文环境为null    }  }  public void run(){    try{      tracker.waitForID(0);			//等待0组中所有图像的到达    }    catch(InterruptedException e){      return;    }    birdImg_width=walkerImgs[0].getWidth(this);    int i=0;    while(true){      for(xpos=-birdImg_width;xpos<=applet_width;xpos+=walk_step){//计算位置        currentImg=walkerImgs[i];        repaint();        i=(i+1)%walkerImgs.length;			//计算下一帧是哪幅图像        try{          Thread.sleep(delay);        }        catch(InterruptedException e){        }      }    }  }  public void paint(Graphics g){    g.drawImage(bgImage,0,0,this);    g.drawImage(currentImg,xpos,ypos,this);  }  public void update(Graphics g){    if (offScreenG!=null) {					//如果备用屏幕创建成功      paint(offScreenG);      g.drawImage(offScreenImg,0,0,this);	//将备用屏幕内容画到当前屏幕来    }    else{      paint(g);    }  }  //Get Applet information  public String getAppletInfo() {    return "飞行的大鸟";  }  //Get parameter info  public String[][] getParameterInfo() {    return null;  }}

⌨️ 快捷键说明

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