heroofhyla

Screen

Apr 16th, 2015
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. package com.aezart.darkmaze;
  2.  
  3. import java.awt.AlphaComposite;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.image.BufferedImage;
  8.  
  9. import javax.swing.JPanel;
  10.  
  11. public class Screen extends JPanel{
  12.     DarkMaze darkMaze;
  13.     BufferedImage mapImage = new BufferedImage(608, 480, BufferedImage.TYPE_3BYTE_BGR);
  14.     BufferedImage drawingSurface = new BufferedImage(608, 480, BufferedImage.TYPE_3BYTE_BGR);
  15.     BufferedImage lightSurface = new BufferedImage(608, 480, BufferedImage.TYPE_4BYTE_ABGR);
  16.     BufferedImage finalRender = new BufferedImage(608,480,BufferedImage.TYPE_3BYTE_BGR);
  17.    
  18.     Graphics mapG = mapImage.getGraphics();
  19.     Graphics drawingG = drawingSurface.getGraphics();
  20.     Graphics2D lightG2D = (Graphics2D) lightSurface.getGraphics();
  21.     Graphics finalG = finalRender.getGraphics();
  22.     public Screen(DarkMaze darkMaze){
  23.         this.darkMaze = darkMaze;
  24.     }
  25.     @Override
  26.     protected void paintComponent(Graphics g) {
  27.         long paintTime = System.currentTimeMillis();
  28.         super.paintComponent(g);
  29.        
  30.         drawingG.drawImage(mapImage, 0, 0, null);
  31.         lightG2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR));
  32.         lightG2D.fillRect(0, 0, 608, 480);
  33.         lightG2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
  34.        
  35.         for (int i = 0; i < darkMaze.coins.length; ++i){
  36.             for (int k = 0; k < darkMaze.coins[0].length; ++k){
  37.                 if (darkMaze.coins[i][k]){
  38.                     drawingG.drawImage(darkMaze.tileset, k*64+32, i*64+32, k*64+64, i*64+64, 32, 0, 48, 16, null);
  39.                 }
  40.             }
  41.         }
  42.  
  43.        
  44.         for (Entity e: darkMaze.entities){
  45.             e.draw(drawingG);
  46.             e.drawLights(lightG2D);
  47.         }
  48.        
  49.         lightG2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_IN));
  50.         lightG2D.drawImage(drawingSurface, 0, 0, null);
  51.         finalG.setColor(Color.black);
  52.         finalG.fillRect(0, 0, 608, 480);
  53.         finalG.drawImage(lightSurface, 0, 0, null);
  54.        
  55.         finalG.setColor(Color.black);
  56.         finalG.fillRect(0,468,608,480);
  57.         finalG.setColor(Color.white);
  58.         finalG.drawString("Lives: " + darkMaze.lives + " Depth: " + (10*darkMaze.level)  + "ft Coins: " + darkMaze.coinCount, 0, 478);
  59.  
  60.         for (Entity e: darkMaze.entities){
  61.             e.drawEffects(finalG);
  62.         }
  63.        
  64.         g.drawImage(finalRender, 0, 0, null);
  65.         System.out.println(System.currentTimeMillis() - paintTime);
  66.        
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment