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

📄 spritecanvas.java

📁 演示win32的socket 通讯 八皇后的改进算法 并发Concurrency的JAVA实现 applet演示鼠标的点击时间和显示图象 手机J2ME的多线程演示
💻 JAVA
字号:
/**
@author  j.n.magee 14/08/98
*/
package concurrency.sprite;

import java.awt.*;
import java.applet.*;
import java.util.*;
import concurrency.time.*;

/**************************************************************/

public class SpriteCanvas extends Canvas implements Timed  {

    Image backdrop;
    ImmutableList sprites = null;
    boolean ended= false;
    Font ff = new Font("Serif",Font.BOLD,36);

    private Dimension dc;

    public SpriteCanvas(Image backdrop) {
        this.backdrop = backdrop;
    }

    // clear all shapes
    public void reset() {
        ended = false;
        sprites = null;
    }


    void addSprite(Sprite p) {
        sprites = ImmutableList.add(sprites,p);
    }

    void removeSprite(Sprite p ){
        sprites = ImmutableList.remove(sprites,p);
    }

    public void pretick() throws TimeStop{
      repaint();
    }

    public void tick() {}

    public void paint(Graphics g) {
        update(g);
    }

    public void endGame(){
        ended=true;
        repaint();
    }

    Image offscreen;
    Dimension offscreensize;
    Graphics offgraphics;

    public  void update(Graphics g){
        dc = getSize();
	    if ((offscreen == null) || (dc.width != offscreensize.width)
	                            || (dc.height != offscreensize.height)) {
	        offscreen = createImage(dc.width, dc.height);
	        offscreensize = dc;
	        offgraphics = offscreen.getGraphics();
	        offgraphics.setFont(ff);
	    }
	    offgraphics.drawImage(backdrop,0,0,this);
        if (ended) {
            offgraphics.setColor(Color.red);
            offgraphics.drawString("The End",200,150);
        } else {
             // Display sprites
             Enumeration e = ImmutableList.elements(sprites);
             while(e.hasMoreElements()) {
                Sprite s = (Sprite)e.nextElement();
                s.paint(offgraphics);
             }
        }
        g.drawImage(offscreen, 0, 0, null);
     }
}


/**************************************************************/

⌨️ 快捷键说明

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