Guest User

Untitled

a guest
Jan 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1. import java.awt.event.KeyEvent;
  2. import java.awt.event.KeyListener;
  3.  
  4. import javax.media.opengl.GL;
  5. import javax.media.opengl.GLAutoDrawable;
  6. import javax.media.opengl.GLCanvas;
  7. import javax.media.opengl.GLCapabilities;
  8. import javax.media.opengl.GLEventListener;
  9. import javax.media.opengl.glu.GLU;
  10. import javax.swing.JFrame;
  11.  
  12. import com.sun.opengl.util.FPSAnimator;
  13. import com.sun.opengl.util.GLUT;
  14.  
  15. public class RubikGUI extends JFrame implements GLEventListener, KeyListener{
  16.  
  17.     private static final long serialVersionUID = 1902650987469552859L;
  18.    
  19.     GLU glu = new GLU();
  20.     GLUT glut = new GLUT();
  21.  
  22.     GLCapabilities caps;
  23.     GLCanvas canvas;
  24.     FPSAnimator animator;
  25.    
  26.     public static void main(String[] args) {
  27.         new RubikGUI().start();
  28.     }
  29.    
  30.     @Override
  31.     public void keyPressed(KeyEvent arg0) {
  32.         // TODO Auto-generated method stub
  33.        
  34.     }
  35.  
  36.     @Override
  37.     public void keyReleased(KeyEvent arg0) {
  38.         // TODO Auto-generated method stub
  39.        
  40.     }
  41.  
  42.     @Override
  43.     public void keyTyped(KeyEvent arg0) {
  44.         // TODO Auto-generated method stub
  45.        
  46.     }
  47.  
  48.     @Override
  49.     public void display(GLAutoDrawable arg0) {
  50.        
  51.         GL gl = arg0.getGL();
  52.        
  53.         gl.glClear(GL.GL_COLOR_BUFFER_BIT);
  54.  
  55.         gl.glBegin(GL.GL_QUADS);
  56.  
  57.         drawFaceOne(gl);
  58.        
  59.         //Rubik3x3.performAction(Rubik3x3.getRandomAction());
  60.        
  61.         gl.glEnd();
  62.        
  63.     }
  64.  
  65.     private void drawFaceOne(GL gl) {
  66.        
  67.         float curx=0, cury=0, curz=3;
  68.        
  69.         for(int i=0; i<Rubik3x3.TOTAL_CUBIES; i++) {
  70.            
  71.             int[] cubie_color_arr = Rubik3x3.getCubieColor(i);
  72.             float[] colors = gen_color(Rubik3x3.getColor(cubie_color_arr[5]));
  73.  
  74.             gl.glColor4fv(colors, 0);
  75.             gl.glVertex3f(curx, cury, curz);
  76.             gl.glVertex3f(curx+1, cury, curz);
  77.             gl.glVertex3f(curx+1, cury+1, curz);
  78.             gl.glVertex3f(curx, cury+1, curz);
  79.            
  80.             curx++;
  81.            
  82.             if(i%3 == 0) {
  83.                 cury++;
  84.                 curx=0;
  85.             }
  86.            
  87.             if(i%9 == 0) {
  88.                 curz--;
  89.                 cury=0;
  90.                 curx=0;            
  91.             }
  92.         }
  93.     }
  94.  
  95.     private float[] gen_color(String color) {
  96.         switch(color) {
  97.         case "hidden":  return new float[] {0,0,0,0};
  98.         case "red":     return new float[] {1,0,0,1};
  99.         case "orange":  return new float[] {1,1,0,1};
  100.         case "blue":    return new float[] {0,0,1,1};
  101.         case "green":   return new float[] {0,1,1,1};
  102.         case "white":   return new float[] {1,1,1,1};
  103.         case "yellow":  return new float[] {1,1,0,1};
  104.         default:        return new float[] {0,0,0,0};
  105.         }
  106.     }
  107.  
  108.     public void start() {
  109.  
  110.         caps = new GLCapabilities();
  111.         caps.setDoubleBuffered(true);
  112.         caps.setHardwareAccelerated(true);
  113.  
  114.         canvas = new GLCanvas(caps);
  115.         canvas.addGLEventListener(this);
  116.         canvas.addKeyListener(this);
  117.  
  118.         animator = new FPSAnimator(canvas, 60);
  119.  
  120.         getContentPane().add(canvas);
  121.  
  122.         setSize(400, 400);
  123.         setLocationRelativeTo(null);
  124.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  125.         setVisible(true);
  126.         animator.start();
  127.        
  128.     }
  129.    
  130.     @Override
  131.     public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) {
  132.         // TODO Auto-generated method stub
  133.        
  134.     }
  135.  
  136.     @Override
  137.     public void init(GLAutoDrawable arg0) {
  138.        
  139.         GL gl = arg0.getGL();
  140.  
  141.         gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  142.         gl.glMatrixMode(GL.GL_PROJECTION);
  143.        
  144.         gl.glLoadIdentity();
  145.        
  146.         glu.gluOrtho2D(-1, 4, -1, 4);
  147.         gl.glMatrixMode(GL.GL_MODELVIEW);
  148.        
  149.     }
  150.  
  151.     @Override
  152.     public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3,
  153.             int arg4) {
  154.         // TODO Auto-generated method stub
  155.        
  156.     }
  157.  
  158. }
Add Comment
Please, Sign In to add comment