Implementation of 2D mode
This commit is contained in:
@@ -17,7 +17,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def lwjgl_version = "3.3.6"
|
def lwjgl_version = "3.3.6"
|
||||||
def lwjgl_natives = "natives-linux"
|
def lwjgl_natives = "natives-windows"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Use JUnit Jupiter for testing.
|
// Use JUnit Jupiter for testing.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
package chess;
|
package chess;
|
||||||
|
|
||||||
import chess.render.*;
|
import chess.view.render2D.Window;
|
||||||
|
|
||||||
public class App {
|
public class App {
|
||||||
public String getGreeting() {
|
public String getGreeting() {
|
||||||
@@ -11,6 +11,6 @@ public class App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
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.Matrix4f;
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL30;
|
import org.lwjgl.opengl.GL30;
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
import org.lwjgl.opengl.*;
|
import org.lwjgl.opengl.*;
|
||||||
|
|
||||||
import static org.lwjgl.opengl.GL30.*;
|
import static org.lwjgl.opengl.GL30.*;
|
||||||
import chess.render.shader.BoardShader;
|
import chess.view.render3D.shader.BoardShader;
|
||||||
|
|
||||||
public class Renderer {
|
public class Renderer {
|
||||||
private BoardShader shader;
|
private BoardShader shader;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
public class VertexAttribPointer {
|
public class VertexAttribPointer {
|
||||||
public int index;
|
public int index;
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
import static org.lwjgl.opengl.GL11.GL_FLOAT;
|
import static org.lwjgl.opengl.GL11.GL_FLOAT;
|
||||||
|
|
||||||
import java.nio.FloatBuffer;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -1,13 +1,10 @@
|
|||||||
package chess.render;
|
package chess.view.render3D;
|
||||||
|
|
||||||
import org.lwjgl.*;
|
import org.lwjgl.*;
|
||||||
import org.lwjgl.glfw.*;
|
import org.lwjgl.glfw.*;
|
||||||
import org.lwjgl.opengl.*;
|
import org.lwjgl.opengl.*;
|
||||||
import org.lwjgl.system.*;
|
import org.lwjgl.system.*;
|
||||||
|
|
||||||
import chess.render.Camera;
|
|
||||||
import chess.render.Renderer;
|
|
||||||
|
|
||||||
import java.nio.*;
|
import java.nio.*;
|
||||||
|
|
||||||
import static org.lwjgl.glfw.Callbacks.*;
|
import static org.lwjgl.glfw.Callbacks.*;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package chess.render.shader;
|
package chess.view.render3D.shader;
|
||||||
|
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package chess.render.shader;
|
package chess.view.render3D.shader;
|
||||||
|
|
||||||
import java.nio.FloatBuffer;
|
import java.nio.FloatBuffer;
|
||||||
import java.nio.IntBuffer;
|
import java.nio.IntBuffer;
|
||||||
Reference in New Issue
Block a user