diff --git a/sprites/cursor.png b/sprites/cursor.png new file mode 100644 index 0000000..81bb272 Binary files /dev/null and b/sprites/cursor.png differ diff --git a/src/sig/JavaProjectTemplate.java b/src/sig/JavaProjectTemplate.java index b282d8e..dddd1ba 100644 --- a/src/sig/JavaProjectTemplate.java +++ b/src/sig/JavaProjectTemplate.java @@ -32,8 +32,10 @@ public class JavaProjectTemplate { Player pl = new Player(); Sprite bookSpr = new Sprite("book.png"); - JavaProjectTemplate(){ + public void initializeGame(){ //Initialize your game here. + + game.Cursor_SetCursor(new Sprite("cursor.png"),0,0); } public void updateGame(double fElapsedTime) { @@ -66,6 +68,14 @@ public class JavaProjectTemplate { if (Mouse.mouseWheel==MouseScrollValue.DOWN) { System.out.println("Scroll down!"); } + + if (Mouse.isPressed(3)) { + if (game.Cursor_IsVisible()) { + game.Cursor_Hide(); + } else { + game.Cursor_Show(); + } + } } public void drawGame() { diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index 0714eab..b804a9b 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -25,6 +25,8 @@ import java.awt.event.KeyListener; import java.awt.Graphics2D; import java.awt.RenderingHints; +import java.awt.Cursor; + import sig.JavaProjectTemplate; public class Panel extends JPanel implements Runnable,KeyListener { @@ -61,6 +63,8 @@ public class Panel extends JPanel implements Runnable,KeyListener { public static Panel p; public static JFrame f; + static Cursor currentCursor = new Cursor(Cursor.DEFAULT_CURSOR); + public static void InitializeEngine(JavaProjectTemplate instance){ System.setProperty("sun.java2d.transaccel", "True"); System.setProperty("sun.java2d.d3d", "True"); @@ -89,6 +93,8 @@ public class Panel extends JPanel implements Runnable,KeyListener { p.render(); + gameInstance.initializeGame(); + long lastGameTime = System.nanoTime(); long dt = 0; while (true) { @@ -238,6 +244,24 @@ public class Panel extends JPanel implements Runnable,KeyListener { * pixel is your canvas! */ + public boolean Cursor_IsVisible(){ + return !f.getCursor().getName().equals("INVISIBLE"); + } + + public void Cursor_Hide(){ + f.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefaultToolkit().getImage(""), new java.awt.Point(0,0), "INVISIBLE")); + } + public void Cursor_Show(){ + f.setCursor(currentCursor); + } + public void Cursor_SetCursor(Sprite cursorimg,int x_origin,int y_origin){ + currentCursor=Toolkit.getDefaultToolkit().createCustomCursor(cursorimg.img, new java.awt.Point(x_origin,y_origin), "CUSTOM"); + f.setCursor(currentCursor); + } + public void Cursor_ResetCursor(){ + f.setCursor(Cursor.getDefaultCursor()); + } + public /* abstract */ void render(){ gameInstance.drawGame();