1212
0.2.0 simple awt keyevent support · pkstudio/JavaGameDevelopmentKit@b9f703d · GitHub
Skip to content

Commit b9f703d

Browse files
committed
0.2.0 simple awt keyevent support
1 parent c52139f commit b9f703d

29 files changed

+183
-83
lines changed

pom.xml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<modelVersion>4.0.0</modelVersion>
66

77
<groupId>studio.programkode</groupId>
8-
<artifactId>jdgk</artifactId>
9-
<version>1.0-SNAPSHOT</version>
8+
<artifactId>jgdk</artifactId>
9+
<version>0.1.0</version>
1010

1111
<name>Java Game Development Kit</name>
1212
<description>Simple Java Game Development Kit, allowing you to create simple prototypes and games.</description>
@@ -29,9 +29,9 @@
2929
</developers>
3030

3131
<scm>
32-
<connection>scm:git:git://github.com/programkode/JavaGameDevelopmentKit.git</connection>
33-
<developerConnection>scm:git:ssh://github.com:programkode/JavaGameDevelopmentKit.git</developerConnection>
34-
<url>https://github.com/programkode/JavaGameDevelopmentKit/tree/main</url>
32+
<connection>scm:git:git://github.com/pkstudio/JavaGameDevelopmentKit.git</connection>
33+
<developerConnection>scm:git:ssh://github.com:pkstudio/JavaGameDevelopmentKit.git</developerConnection>
34+
<url>https://github.com/pkstudio/JavaGameDevelopmentKit/tree/main</url>
3535
</scm>
3636

3737
<properties>
@@ -78,11 +78,6 @@
7878
<goal>jar</goal>
7979
</goals>
8080
</execution>
81-
<execution>
82-
<goals>
83-
<goal>test-jar</goal>
84-
</goals>
85-
</execution>
8681
<execution>
8782
<id>javadoc-jar</id>
8883
<phase>package</phase>

src/main/java/studio/programkode/jdgk/API.java renamed to src/main/java/studio/programkode/jgdk/API.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
package studio.programkode.jdgk;
1+
package studio.programkode.jgdk;
22

3-
import studio.programkode.jdgk.library.helper.*;
4-
import studio.programkode.jdgk.library.math.geometry.*;
5-
import studio.programkode.jdgk.library.render.*;
6-
import studio.programkode.jdgk.library.resource.*;
3+
import studio.programkode.jgdk.library.helper.*;
4+
import studio.programkode.jgdk.library.math.geometry.*;
5+
import studio.programkode.jgdk.library.render.*;
6+
import studio.programkode.jgdk.library.resource.*;
77

88
import javax.imageio.ImageIO;
99
import java.awt.BasicStroke;
1010
import java.awt.Font;
1111
import java.awt.FontMetrics;
1212
import java.awt.Graphics2D;
13+
import java.awt.event.KeyEvent;
1314
import java.awt.image.BufferedImage;
1415
import java.io.File;
1516
import java.util.function.Consumer;
@@ -515,6 +516,18 @@ public void onMouseRelease(Consumer<Point> function) {
515516
this.innerface.getWindow().getCurrentScene().onMouseRelease(function);
516517
}
517518

519+
public void onKeyTyped(Consumer<KeyEvent> function) {
520+
this.innerface.getWindow().getCurrentScene().onKeyTyped(function);
521+
}
522+
523+
public void onKeyPressed(Consumer<KeyEvent> function) {
524+
this.innerface.getWindow().getCurrentScene().onKeyPressed(function);
525+
}
526+
527+
public void onKeyReleased(Consumer<KeyEvent> function) {
528+
this.innerface.getWindow().getCurrentScene().onKeyReleased(function);
529+
}
530+
518531
public void setBackgroundColor(Color color) {
519532
this.innerface.background(color);
520533
}
@@ -553,5 +566,9 @@ public int getHalfWidth() {
553566
public int getHalfHeight() {
554567
return (int)(this.getHeight()/2.0);
555568
}
569+
570+
public double getDelta() {
571+
return this.innerface.getDelta();
572+
}
556573
}
557574
}

src/main/java/studio/programkode/jdgk/Launcher.java renamed to src/main/java/studio/programkode/jgdk/Launcher.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package studio.programkode.jdgk;
1+
package studio.programkode.jgdk;
22

3-
import studio.programkode.jdgk.library.helper.Terminal;
3+
import studio.programkode.jgdk.library.helper.Terminal;
44

55
import java.io.File;
66
import java.lang.reflect.InvocationTargetException;

src/main/java/studio/programkode/jdgk/Plugin.java renamed to src/main/java/studio/programkode/jgdk/Plugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package studio.programkode.jdgk;
1+
package studio.programkode.jgdk;
22

3-
import studio.programkode.jdgk.library.helper.Terminal;
3+
import studio.programkode.jgdk.library.helper.Terminal;
44

55

66
public abstract class Plugin

src/main/java/studio/programkode/jdgk/Window.java renamed to src/main/java/studio/programkode/jgdk/Window.java

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package studio.programkode.jdgk;
1+
package studio.programkode.jgdk;
22

3-
import studio.programkode.jdgk.library.math.geometry.Point;
4-
import studio.programkode.jdgk.library.math.geometry.Rectangle;
5-
import studio.programkode.jdgk.library.resource.Color;
3+
import studio.programkode.jgdk.library.math.geometry.Point;
4+
import studio.programkode.jgdk.library.math.geometry.Rectangle;
5+
import studio.programkode.jgdk.library.resource.Color;
66

77
import javax.swing.JComponent;
88
import javax.swing.JFrame;
@@ -29,7 +29,6 @@
2929
import java.util.concurrent.BlockingQueue;
3030
import java.util.concurrent.TimeUnit;
3131
import java.util.function.Consumer;
32-
import java.util.function.Function;
3332

3433

3534
/**
@@ -452,6 +451,9 @@ public class Scene extends JPanel
452451
private final HashMap<Rectangle, Consumer<Point>> mouseClick = new HashMap<>();
453452
private final ArrayList<Consumer<Point>> mousePress = new ArrayList<>();
454453
private final ArrayList<Consumer<Point>> mouseRelease = new ArrayList<>();
454+
private final ArrayList<Consumer<KeyEvent>> keyPressed = new ArrayList<>();
455+
private final ArrayList<Consumer<KeyEvent>> keyReleased = new ArrayList<>();
456+
private final ArrayList<Consumer<KeyEvent>> keyTyped = new ArrayList<>();
455457

456458

457459
//# Constructors
@@ -524,6 +526,32 @@ public void mouseMoved(MouseEvent e) {
524526
Window.this.cursor.y = e.getY();
525527
}
526528
});
529+
530+
this.setFocusable(true);
531+
this.setFocusTraversalKeysEnabled(false);
532+
533+
this.addKeyListener(new KeyListener() {
534+
@Override
535+
public void keyTyped(KeyEvent event) {
536+
for (var function : Scene.this.keyTyped) {
537+
function.accept(event);
538+
}
539+
}
540+
541+
@Override
542+
public void keyPressed(KeyEvent event) {
543+
for (var function : Scene.this.keyPressed) {
544+
function.accept(event);
545+
}
546+
}
547+
548+
@Override
549+
public void keyReleased(KeyEvent event) {
550+
for (var function : Scene.this.keyReleased) {
551+
function.accept(event);
552+
}
553+
}
554+
});
527555
}
528556

529557

@@ -559,6 +587,18 @@ void onMousePress(Consumer<Point> function) {
559587
void onMouseRelease(Consumer<Point> function) {
560588
this.mouseRelease.add(function);
561589
}
590+
591+
void onKeyTyped(Consumer<KeyEvent> function) {
592+
this.keyTyped.add(function);
593+
}
594+
595+
void onKeyPressed(Consumer<KeyEvent> function) {
596+
this.keyPressed.add(function);
597+
}
598+
599+
void onKeyReleased(Consumer<KeyEvent> function) {
600+
this.keyReleased.add(function);
601+
}
562602
}
563603

564604

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package studio.programkode.jgdk.examples;
2+
3+
import studio.programkode.jgdk.API;
4+
import studio.programkode.jgdk.Launcher;
5+
import studio.programkode.jgdk.Plugin;
6+
import studio.programkode.jgdk.library.math.geometry.Point;
7+
8+
import java.util.ArrayList;
9+
10+
public class AimTrainer extends Plugin
11+
{
12+
13+
private long timer;
14+
private int radius = 25;
15+
private ArrayList<Point> points = new ArrayList<>();
16+
17+
static void main() {
18+
Launcher.createWindow(640, 480, new AimTrainer());
19+
}
20+
21+
@Override
22+
public void setup(API.Setup window) {
23+
this.timer = System.currentTimeMillis();
24+
25+
window.onMousePress((click) -> {
26+
int n = 0;
27+
for (var circle : this.points) {
28+
if (click.distance(circle) <= this.radius) {
29+
this.points.remove(n);
30+
break;
31+
}
32+
33+
n ++;
34+
}
35+
});
36+
}
37+
38+
@Override
39+
public void draw(API window) {
40+
if (System.currentTimeMillis() - this.timer > 1000) {
41+
this.points.add(window.getRandomPoint());
42+
this.timer = System.currentTimeMillis();
43+
}
44+
45+
if (!this.points.isEmpty()) {
46+
for (var circle : this.points) {
47+
window.drawCircle(circle.x, circle.y, 25);
48+
}
49+
}
50+
}
51+
}

src/main/java/studio/programkode/jdgk/examples/ClickToDrawLines.java renamed to src/main/java/studio/programkode/jgdk/examples/ClickToDrawLines.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
package studio.programkode.jdgk.examples;
1+
package studio.programkode.jgdk.examples;
22

3-
import studio.programkode.jdgk.API;
4-
import studio.programkode.jdgk.Launcher;
5-
import studio.programkode.jdgk.Plugin;
6-
import studio.programkode.jdgk.library.math.geometry.Anchor;
7-
import studio.programkode.jdgk.library.math.geometry.Dimension;
8-
import studio.programkode.jdgk.library.math.geometry.Point;
3+
import studio.programkode.jgdk.API;
4+
import studio.programkode.jgdk.Launcher;
5+
import studio.programkode.jgdk.Plugin;
6+
import studio.programkode.jgdk.library.math.geometry.Point;
97

108
import java.util.ArrayList;
119

1210

1311
public class ClickToDrawLines extends Plugin
1412
{
15-
public static void main(String[] args) {
13+
static void main() {
1614
Launcher.createWindow(640, 480, new ClickToDrawLines());
1715
}
1816

src/main/java/studio/programkode/jdgk/examples/MouseCoordinates.java renamed to src/main/java/studio/programkode/jgdk/examples/MouseCoordinates.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package studio.programkode.jdgk.examples;
1+
package studio.programkode.jgdk.examples;
22

3-
import studio.programkode.jdgk.API;
4-
import studio.programkode.jdgk.Launcher;
5-
import studio.programkode.jdgk.Plugin;
6-
import studio.programkode.jdgk.library.math.geometry.Point;
7-
import studio.programkode.jdgk.library.resource.Color;
3+
import studio.programkode.jgdk.API;
4+
import studio.programkode.jgdk.Launcher;
5+
import studio.programkode.jgdk.Plugin;
6+
import studio.programkode.jgdk.library.math.geometry.Point;
7+
import studio.programkode.jgdk.library.resource.Color;
88

99

1010
public class MouseCoordinates extends Plugin

src/main/java/studio/programkode/jdgk/games/Reversi.java renamed to src/main/java/studio/programkode/jgdk/games/Reversi.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package studio.programkode.jdgk.games;
2-
3-
import studio.programkode.jdgk.API;
4-
import studio.programkode.jdgk.Launcher;
5-
import studio.programkode.jdgk.Plugin;
6-
import studio.programkode.jdgk.library.math.geometry.Anchor;
7-
import studio.programkode.jdgk.library.math.geometry.Dimension;
8-
import studio.programkode.jdgk.library.math.geometry.Point;
9-
import studio.programkode.jdgk.library.math.geometry.Rectangle;
10-
import studio.programkode.jdgk.library.resource.Color;
1+
package studio.programkode.jgdk.games;
2+
3+
import studio.programkode.jgdk.API;
4+
import studio.programkode.jgdk.Launcher;
5+
import studio.programkode.jgdk.Plugin;
6+
import studio.programkode.jgdk.library.math.geometry.Anchor;
7+
import studio.programkode.jgdk.library.math.geometry.Dimension;
8+
import studio.programkode.jgdk.library.math.geometry.Point;
9+
import studio.programkode.jgdk.library.math.geometry.Rectangle;
10+
import studio.programkode.jgdk.library.resource.Color;
1111

1212
import java.util.ArrayList;
1313
import java.util.HashMap;

src/main/java/studio/programkode/jdgk/library/helper/Cache.java renamed to src/main/java/studio/programkode/jgdk/library/helper/Cache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package studio.programkode.jdgk.library.helper;
1+
package studio.programkode.jgdk.library.helper;
22

33
import java.util.HashMap;
44

0 commit comments

Comments
 (0)