home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / Gamelicator / com / next / gt / DisplayManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-20  |  2.5 KB  |  72 lines

  1. package com.next.gt;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Image;
  5. import java.awt.MediaTracker;
  6. import java.awt.Rectangle;
  7.  
  8. public class DisplayManager {
  9.    private Image background;
  10.    private Image offScreenBuffer;
  11.    private DirtyRectSet dirtyRects = new DirtyRectSet();
  12.    protected Gamelication owner;
  13.  
  14.    public DisplayManager(Gamelication var1) {
  15.       this.owner = var1;
  16.    }
  17.  
  18.    public void refresh() {
  19.       this.dirtyRects.addRect(new Rectangle(0, 0, this.owner.getSize().width, this.owner.getSize().height));
  20.    }
  21.  
  22.    public void setBackground(Image var1) {
  23.       MediaTracker var2 = new MediaTracker(this.owner);
  24.       var2.addImage(var1, 0);
  25.  
  26.       try {
  27.          var2.waitForID(0);
  28.       } catch (InterruptedException var3) {
  29.       }
  30.  
  31.       this.background = var1;
  32.       this.offScreenBuffer = this.owner.createImage(this.owner.getSize().width, this.owner.getSize().height);
  33.       this.offScreenBuffer.getGraphics().drawImage(var1, 0, 0, this.owner);
  34.       this.dirtyRects.addRect(new Rectangle(0, 0, this.owner.getSize().width, this.owner.getSize().height));
  35.    }
  36.  
  37.    public void setBackgroundTile(Image var1) {
  38.       MediaTracker var2 = new MediaTracker(this.owner);
  39.       var2.addImage(var1, 0);
  40.  
  41.       try {
  42.          var2.waitForID(0);
  43.       } catch (InterruptedException var3) {
  44.       }
  45.  
  46.       this.setBackground(TiledImage.createTiledImage(var1, this.owner.getSize().width, this.owner.getSize().height, this.owner));
  47.    }
  48.  
  49.    public void paint(Graphics var1) {
  50.       Graphics var3;
  51.       if (this.offScreenBuffer == null) {
  52.          var3 = null;
  53.       } else {
  54.          var3 = this.offScreenBuffer.getGraphics();
  55.       }
  56.  
  57.       this.dirtyRects.drawImage(var3, this.background, this.owner);
  58.       DirtyRectSet var2 = this.dirtyRects;
  59.       this.dirtyRects = new DirtyRectSet(this.owner.actorManager.actors.size());
  60.  
  61.       for(int var4 = 0; var4 < this.owner.actorManager.actors.size(); ++var4) {
  62.          Actor var5 = (Actor)this.owner.actorManager.actors.elementAt(var4);
  63.          Rectangle var6 = new Rectangle((int)var5.x, (int)var5.y, var5.width, var5.height);
  64.          this.dirtyRects.addRect(var6);
  65.          var2.addRect(var6);
  66.          var5.draw(var3);
  67.       }
  68.  
  69.       var2.drawImage(var1, this.offScreenBuffer, this.owner);
  70.    }
  71. }
  72.