Advertisement
Guest User

Rotate Test

a guest
May 8th, 2017
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Point;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. import java.awt.event.KeyListener;
  7.  
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10.  
  11. public class TetrisRotate extends JPanel{
  12.  
  13.     //Z Shape's coordinates
  14.     int[][] array = {{1,0},  {0,0},   {0,-1},  { -1, -1 }};
  15.     Point[] point = new Point[4];
  16.     final int SCALE = 25;
  17.     int curX = 5, curY = 5;
  18.    
  19.     public TetrisRotate(){
  20.         JFrame frame = new JFrame("Tetris Rotate Test");
  21.         frame.setSize(400,400);
  22.         frame.setLocationRelativeTo(null);
  23.         frame.add(this);
  24.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.        
  26.         this.setBackground(Color.DARK_GRAY);
  27.        
  28.         for(int i=0; i<4; ++i){
  29.             point[i] = new Point(array[i][0],array[i][1]);
  30.         }
  31.        
  32.         frame.addKeyListener(new KAdapter());
  33.         frame.setVisible(true);
  34.     }
  35.    
  36.     public void setX(int index, int x){
  37.         point[index].x = x;
  38.     }
  39.    
  40.     public void setY(int index, int y){
  41.         point[index].y = y;
  42.     }
  43.    
  44.     public int x(int index){
  45.         return  point[index].x;
  46.     }
  47.    
  48.     public int y(int index){
  49.         return  point[index].y;
  50.     }
  51.    
  52.     public void rotateLeft(){
  53.         for(int i=0; i<4; ++i){
  54.            this.setX(i,-y(i));
  55.            this.setY(i, x(i));
  56.         }
  57.     }
  58.    
  59.     @Override
  60.     public void paint(Graphics g) {
  61.         super.paint(g);
  62.        
  63.         g.setColor(new Color(80,5,5));
  64.         for(int i=0; i<4; ++i){
  65.             int x = curX + point[i].x;
  66.             int y = curY + point[i].y;
  67.             g.fill3DRect(x * SCALE, y * SCALE , SCALE, SCALE, true);
  68.         }
  69.     }
  70.    
  71.     class KAdapter extends KeyAdapter{
  72.         @Override
  73.         public void keyPressed(KeyEvent a) {
  74.             int key = a.getKeyCode();
  75.             if(key == KeyEvent.VK_LEFT){
  76.                 rotateLeft();
  77.                 repaint();
  78.             }
  79.         }
  80.     }
  81.    
  82.     public static void main(String[] args) {
  83.         new TetrisRotate();
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement