Implementation of 2D mode
This commit is contained in:
@@ -17,7 +17,7 @@ repositories {
|
||||
}
|
||||
|
||||
def lwjgl_version = "3.3.6"
|
||||
def lwjgl_natives = "natives-linux"
|
||||
def lwjgl_natives = "natives-windows"
|
||||
|
||||
dependencies {
|
||||
// Use JUnit Jupiter for testing.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
package chess;
|
||||
|
||||
import chess.render.*;
|
||||
import chess.view.render2D.Window;
|
||||
|
||||
public class App {
|
||||
public String getGreeting() {
|
||||
@@ -11,6 +11,6 @@ public class App {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new Window().run();
|
||||
Window.main(args);
|
||||
}
|
||||
}
|
||||
|
||||
15
app/src/main/java/chess/model/Model2D.java
Normal file
15
app/src/main/java/chess/model/Model2D.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package chess.model;
|
||||
|
||||
import java.util.Observable;
|
||||
|
||||
public class Model2D extends Observable {
|
||||
public int x;
|
||||
public int y;
|
||||
|
||||
public void set(int i, int j){
|
||||
this.x = i;
|
||||
this.y = j;
|
||||
setChanged();
|
||||
notifyObservers();
|
||||
}
|
||||
}
|
||||
66
app/src/main/java/chess/view/render2D/Window.java
Normal file
66
app/src/main/java/chess/view/render2D/Window.java
Normal file
@@ -0,0 +1,66 @@
|
||||
package chess.view.render2D;
|
||||
|
||||
import chess.model.Model2D;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
|
||||
public class Window extends JFrame implements Observer {
|
||||
private final Model2D model;
|
||||
private final JLabel[][] tab = new JLabel[8][8];
|
||||
|
||||
public Window(Model2D model) {
|
||||
System.out.println("New window has been created.");
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
public static void main(String[] args){
|
||||
new Window(new Model2D()).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a playing grid with alternating black & white grids
|
||||
*/
|
||||
private void build(){
|
||||
JPanel jp = new JPanel(new GridLayout(8,8));
|
||||
setContentPane(jp);
|
||||
setTitle("Let's play chess!");
|
||||
for (int y = 0; y < 8; y++){
|
||||
for (int x = 0; x < 8; x++){
|
||||
JLabel jl = new JLabel();
|
||||
jl.setOpaque(true);
|
||||
if (((y+x)%2)!=0) {
|
||||
jl.setBackground(Color.BLACK);
|
||||
}
|
||||
final int yy = y;
|
||||
final int xx = x;
|
||||
|
||||
jl.addMouseListener(new MouseAdapter() {
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
System.out.println("(" + xx + ";" + yy + ")");
|
||||
model.set(xx, yy);
|
||||
update();
|
||||
}
|
||||
});
|
||||
this.tab[x][y]=jl;
|
||||
jp.add(jl);
|
||||
}
|
||||
}
|
||||
setSize(800,800);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void update() {
|
||||
tab[model.x][model.y].setBackground(Color.RED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Observable o, Object arg) {
|
||||
System.out.println("ok");
|
||||
update();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import org.joml.Matrix4f;
|
||||
import org.joml.Vector3f;
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import org.lwjgl.opengl.GL30;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
import org.lwjgl.opengl.*;
|
||||
|
||||
import static org.lwjgl.opengl.GL30.*;
|
||||
import chess.render.shader.BoardShader;
|
||||
import chess.view.render3D.shader.BoardShader;
|
||||
|
||||
public class Renderer {
|
||||
private BoardShader shader;
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
public class VertexAttribPointer {
|
||||
public int index;
|
||||
@@ -1,8 +1,7 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.GL_FLOAT;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package chess.render;
|
||||
package chess.view.render3D;
|
||||
|
||||
import org.lwjgl.*;
|
||||
import org.lwjgl.glfw.*;
|
||||
import org.lwjgl.opengl.*;
|
||||
import org.lwjgl.system.*;
|
||||
|
||||
import chess.render.Camera;
|
||||
import chess.render.Renderer;
|
||||
|
||||
import java.nio.*;
|
||||
|
||||
import static org.lwjgl.glfw.Callbacks.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render.shader;
|
||||
package chess.view.render3D.shader;
|
||||
|
||||
import org.joml.Matrix4f;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package chess.render.shader;
|
||||
package chess.view.render3D.shader;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
Reference in New Issue
Block a user