From ca15225ecc936e0b019c314d40f3d5058539a72e Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 21 May 2022 02:41:04 -0500 Subject: [PATCH] Nana has been summoned Co-authored-by: sigonasr2 --- 3x.png | Bin 0 -> 19989 bytes scripts/md5 | 10 +-- sig | 2 +- ...avaProjectTemplate.java => RabiClone.java} | 14 +++- src/sig/engine/Panel.java | 75 ++++++++++-------- src/sig/engine/Sprite.java | 8 ++ utils/md5 | 10 +-- 7 files changed, 73 insertions(+), 46 deletions(-) create mode 100644 3x.png rename src/sig/{JavaProjectTemplate.java => RabiClone.java} (55%) create mode 100644 src/sig/engine/Sprite.java diff --git a/3x.png b/3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5809ad073b30dfcc7736a889009cf55873e00acd GIT binary patch literal 19989 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�~&&KNiKdOAGFYHa0Yk)>w>m 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 literal 0 HcmV?d00001 diff --git a/scripts/md5 b/scripts/md5 index c4273a3..c986421 100644 --- a/scripts/md5 +++ b/scripts/md5 @@ -1,5 +1,5 @@ -build.sh:a833e7598ad65672a9c01306d244b49f - -clean.sh:96ce35f2d2dcb555421e00a6afda23ca - -commit.sh:21af1fa6f09d01679c9e11408967264a - -jar.sh:2ac636f584c43a1124affb9ea6bdc7bf - -lean.sh:3be7b8b182ccd96e48989b4e57311193 - +build.sh:de32fdf9f3ce9eb5d4ea9902ee48dbe0 *- +clean.sh:8aec15e447257f1c3a4e978f1b56a78e *- +commit.sh:21af1fa6f09d01679c9e11408967264a *- +jar.sh:2ac636f584c43a1124affb9ea6bdc7bf *- +lean.sh:3be7b8b182ccd96e48989b4e57311193 *- diff --git a/sig b/sig index 5f8d83f..1978b84 100755 --- a/sig +++ b/sig @@ -1,6 +1,6 @@ source utils/define.sh -define PROJECT_NAME "JavaProjectTemplate" +define PROJECT_NAME "RabiClone" define PROJECT_DIR "src/sig" define MAIN_CLASS "sig.${PROJECT_NAME}" define OUT_DIR "bin" diff --git a/src/sig/JavaProjectTemplate.java b/src/sig/RabiClone.java similarity index 55% rename from src/sig/JavaProjectTemplate.java rename to src/sig/RabiClone.java index ac5ae34..1077d47 100644 --- a/src/sig/JavaProjectTemplate.java +++ b/src/sig/RabiClone.java @@ -1,14 +1,17 @@ package sig; +import javax.imageio.ImageIO; import javax.swing.JFrame; import sig.engine.Panel; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; -public class JavaProjectTemplate { +public class RabiClone { public static final String PROGRAM_NAME="Sig's Java Project Template"; public static void main(String[] args) { JFrame f = new JFrame(PROGRAM_NAME); Panel p = new Panel(f); - p.init(); f.add(p); @@ -17,5 +20,12 @@ public class JavaProjectTemplate { f.setVisible(true); p.render(); + BufferedImage nana; + try { + nana = ImageIO.read(new File("..","3x.png")); + p.Draw_Nana(p.Get_Nana(nana)); + } catch (IOException e) { + e.printStackTrace(); + } } } diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index 2f558f7..ac76f75 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -6,13 +6,17 @@ import java.awt.Image; import java.awt.Toolkit; import java.awt.image.ColorModel; import java.awt.image.MemoryImageSource; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.awt.image.BufferedImage; +import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; -import sig.JavaProjectTemplate; +import sig.RabiClone; public class Panel extends JPanel implements Runnable { JFrame window; @@ -32,6 +36,7 @@ public class Panel extends JPanel implements Runnable { int frameCount=0; long lastSecond=0; int lastFrameCount=0; + Sprite nana_sprite; public Panel(JFrame f) { super(true); @@ -54,6 +59,13 @@ public class Panel extends JPanel implements Runnable { * Call it after been visible and after resizes. */ public void init(){ + BufferedImage nana; + try { + nana = ImageIO.read(new File("..","3x.png")); + nana_sprite = Get_Nana(nana); + } catch (IOException e) { + e.printStackTrace(); + } cm = getCompatibleColorModel(); int screenSize = width * height; if(pixel == null || pixel.length < screenSize){ @@ -80,7 +92,7 @@ public class Panel extends JPanel implements Runnable { if (window!=null&&System.currentTimeMillis()-lastSecond>=1000) { - window.setTitle(JavaProjectTemplate.PROGRAM_NAME+" - FPS: "+(frameCount-lastFrameCount)); + window.setTitle(RabiClone.PROGRAM_NAME+" - FPS: "+(frameCount-lastFrameCount)); lastFrameCount=frameCount; lastSecond=System.currentTimeMillis(); } @@ -99,49 +111,25 @@ public class Panel extends JPanel implements Runnable { * Do your draws in here !! * pixel is your canvas! */ + + public /* abstract */ void render(){ int[] p = pixel; // this avoid crash when resizing //a=h/w - for (int x=0;x