Package Global_Package

Source Code of Global_Package.TestClient3$GamePanel

package Global_Package;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.MouseInfo;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

import serverMessages.ScrollDemo;


import Client.ClientGameState;
import Client.RenderTest;

public class TestClient3 extends JFrame implements KeyListener,MouseListener {
  /**
   *
   */
  private static RenderTest render;
  private static final long serialVersionUID = 5913793104316103999L;

  private static ClientGameState game;

  private AffineTransform view = new AffineTransform();

  public TestClient3() {
    super("Test Client");
    setUndecorated(true);
    setContentPane(new GamePanel(Toolkit.getDefaultToolkit().getScreenSize()));
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    pack();
   
    this.addKeyListener(TestClient3.this);
    setLocationRelativeTo(null);
  }

  public class GamePanel extends JPanel implements MouseWheelListener  {
    /**
     *
     */
    private static final long serialVersionUID = -7476778187348802451L;

    private static final double SHIFT_PER_TICK = 25;
    private static final double BUFFER_ZONE = 30;
    private static final double ZOOM_PER_SCROLL = .05;

    GamePanel(Dimension size) {
      super();
      setSize(size);
      setMaximumSize(size);
      setPreferredSize(size);

      setBackground(Color.BLACK);
      this.addMouseListener(TestClient3.this);
      addMouseWheelListener(this);
      setVisible(true);
      tick.start();
    }

    private Timer tick = new Timer(10, new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (!isActive() || !isVisible()) {
          return;
        }
        // Rectangle2D viewBounds = view.createTransformedShape(
        // getBounds()).getBounds2D();

        AffineTransform screenLocTranslate = new AffineTransform();
        screenLocTranslate.translate(getLocationOnScreen().getX(),
            getLocationOnScreen().getY());
        Rectangle2D boundsOnScreen = screenLocTranslate
            .createTransformedShape(getBounds()).getBounds2D();
        Point2D mouseLocOnScreen = MouseInfo.getPointerInfo()
            .getLocation();

        if (mouseLocOnScreen.getX() <= boundsOnScreen.getMinX()
            + BUFFER_ZONE) {
          // System.out.println("Troll to da left");
          view.translate(SHIFT_PER_TICK, 0);
          repaint();
        }
        if (mouseLocOnScreen.getX() >= boundsOnScreen.getMaxX()
            - BUFFER_ZONE) {
          // System.out.println("Troll to da right");
          view.translate(-SHIFT_PER_TICK, 0);
          repaint();
        }
        if (mouseLocOnScreen.getY() <= boundsOnScreen.getMinY()
            + BUFFER_ZONE) {
          // System.out.println("Troll to da up");
          view.translate(0, SHIFT_PER_TICK);
          repaint();
        }
        if (mouseLocOnScreen.getY() >= boundsOnScreen.getMaxY()
            - BUFFER_ZONE) {
          // System.out.println("Troll to da down");
          view.translate(0, -SHIFT_PER_TICK);
          repaint();
        }
        repaint();
        // System.out.println("I'm a troll with location "+mouseLocOnScreen+" and my mom is at "+boundsOnScreen);
        // System.out.println("pain is "+view);
      }
    });

    public void paint(Graphics g) {
      super.paint(g);
      Graphics2D g2d = (Graphics2D) g;
      g2d.transform(view);
      // System.out.println("cupcake is "+view);
     
     
      render.paint(g2d,game);
     
     
    }
   
    public void mouseWheelMoved(MouseWheelEvent arg0) {
      double scale = 1 - arg0.getWheelRotation() * ZOOM_PER_SCROLL;
      view.translate(getWidth()/2D, getHeight()/2D);
      view.scale(scale, scale);
      view.translate(-getWidth()/2D, -getHeight()/2D);
      repaint();
//      System.out.println(view);
    }

 

  }

 

  @SuppressWarnings("static-access")
  public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
    if(e.getKeyCode()==e.VK_ESCAPE){
      TestClient3.this.setVisible(false);
          System.exit(0);
    }else{
      for(Entity en : Enums.effectiveMap.values()){
        en.keyDown(e, game);
      }
    }
   
  }

 
  public void keyReleased(KeyEvent e) {}
  public void keyTyped(KeyEvent e) {}


  public void mouseClicked(MouseEvent e) {
   
   
  }
  public void mouseEntered(MouseEvent e) {}
  public void mouseExited(MouseEvent e) {}
  public void mousePressed(MouseEvent e) {
    Point2D locationOnMap=null;
    try {
       locationOnMap=view.inverseTransform(e.getPoint(), null);
    } catch (NoninvertibleTransformException e1) {
      System.out.println("WHO MADE THE VIEW NOTHING?????");
    }
    for(Entity en : Enums.effectiveMap.values()){
      en.mouseDown(locationOnMap, game);
    }
  }
  public void mouseReleased(MouseEvent e) {}
 
  public static void main(String args[]) throws IOException,InterruptedException {
   
   
    //key's and mouse are released to gameState
    render=new RenderTest();
    game = new ClientGameState("127.0.0.1", null, null);
    game.start();
    //render, renders texture's and other such things
   
    TestClient3 t=new TestClient3();
//    while(true){
//      t.repaint();
//      Thread.sleep(60);
//     
//    }
  }
}
TOP

Related Classes of Global_Package.TestClient3$GamePanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.