Mega Code Archive

 
Categories / Java / Game
 

Image Test

/* DEVELOPING GAME IN JAVA  Caracteristiques Editeur : NEW RIDERS  Auteur : BRACKEEN  Parution : 09 2003  Pages : 972  Isbn : 1-59273-005-1  Reliure : Paperback  Disponibilite : Disponible a la librairie  */ import java.awt.*; import javax.swing.ImageIcon; import javax.swing.JFrame; public class ImageTest extends JFrame {     public static void main(String[] args) {         DisplayMode displayMode;         if (args.length == 3) {             displayMode = new DisplayMode(                 Integer.parseInt(args[0]),                 Integer.parseInt(args[1]),                 Integer.parseInt(args[2]),                 DisplayMode.REFRESH_RATE_UNKNOWN);         }         else {             displayMode = new DisplayMode(800, 600, 16,                 DisplayMode.REFRESH_RATE_UNKNOWN);         }         ImageTest test = new ImageTest();         test.run(displayMode);     }     private static final int FONT_SIZE = 24;     private static final long DEMO_TIME = 10000;     private SimpleScreenManager screen;     private Image bgImage;     private Image opaqueImage;     private Image transparentImage;     private Image translucentImage;     private Image antiAliasedImage;     private boolean imagesLoaded;     public void run(DisplayMode displayMode) {         setBackground(Color.blue);         setForeground(Color.white);         setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE));         imagesLoaded = false;         screen = new SimpleScreenManager();         try {             screen.setFullScreen(displayMode, this);             loadImages();             try {                 Thread.sleep(DEMO_TIME);             }             catch (InterruptedException ex) { }         }         finally {             screen.restoreScreen();         }     }     public void loadImages() {         bgImage = loadImage("images/background.jpg");         opaqueImage = loadImage("images/opaque.png");         transparentImage = loadImage("images/transparent.png");         translucentImage = loadImage("images/translucent.png");         antiAliasedImage = loadImage("images/antialiased.png");         imagesLoaded = true;         // signal to AWT to repaint this window         repaint();     }     private Image loadImage(String fileName) {         return new ImageIcon(fileName).getImage();     }     public void paint(Graphics g) {         // set text anti-aliasing         if (g instanceof Graphics2D) {             Graphics2D g2 = (Graphics2D)g;             g2.setRenderingHint(                 RenderingHints.KEY_TEXT_ANTIALIASING,                 RenderingHints.VALUE_TEXT_ANTIALIAS_ON);         }         // draw images         if (imagesLoaded) {             g.drawImage(bgImage, 0, 0, null);             drawImage(g, opaqueImage, 0, 0, "Opaque");             drawImage(g, transparentImage, 320, 0, "Transparent");             drawImage(g, translucentImage, 0, 300, "Translucent");             drawImage(g, antiAliasedImage, 320, 300,                 "Translucent (Anti-Aliased)");         }         else {             g.drawString("Loading Images...", 5, FONT_SIZE);         }     }     public void drawImage(Graphics g, Image image, int x, int y,         String caption)     {         g.drawImage(image, x, y, null);         g.drawString(caption, x + 5, y + FONT_SIZE +             image.getHeight(null));     } } /**  * The SimpleScreenManager class manages initializing and displaying full screen  * graphics modes.  */ class SimpleScreenManager {   private GraphicsDevice device;   /**    * Creates a new SimpleScreenManager object.    */   public SimpleScreenManager() {     GraphicsEnvironment environment = GraphicsEnvironment         .getLocalGraphicsEnvironment();     device = environment.getDefaultScreenDevice();   }   /**    * Enters full screen mode and changes the display mode.    */   public void setFullScreen(DisplayMode displayMode, JFrame window) {     window.setUndecorated(true);     window.setResizable(false);     device.setFullScreenWindow(window);     if (displayMode != null && device.isDisplayChangeSupported()) {       try {         device.setDisplayMode(displayMode);       } catch (IllegalArgumentException ex) {         // ignore - illegal mode for this device       }     }   }   /**    * Returns the window currently used in full screen mode.    */   public Window getFullScreenWindow() {     return device.getFullScreenWindow();   }   /**    * Restores the screen's display mode.    */   public void restoreScreen() {     Window window = device.getFullScreenWindow();     if (window != null) {       window.dispose();     }     device.setFullScreenWindow(null);   } }