From 087cd3bcb5a3ed6687ce26cba018b7a9952de9c8 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Thu, 1 Dec 2022 21:57:48 -0600 Subject: [PATCH] FillCircle/FillOval fix Co-authored-by: sigonasr2 --- src/sig/JavaProjectTemplate.java | 6 ++++-- src/sig/engine/Panel.java | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/sig/JavaProjectTemplate.java b/src/sig/JavaProjectTemplate.java index e57cdee..78ff0af 100644 --- a/src/sig/JavaProjectTemplate.java +++ b/src/sig/JavaProjectTemplate.java @@ -25,8 +25,10 @@ class Player{ public class JavaProjectTemplate { public static final String PROGRAM_NAME="Sig's Java Project Template"; - public static int WINDOW_WIDTH=1280; - public static int WINDOW_HEIGHT=720; + public static int WINDOW_WIDTH=256; + public static int WINDOW_HEIGHT=240; + public static int PIXEL_SIZE_X=4; + public static int PIXEL_SIZE_Y=4; public static Panel game; Player pl = new Player(); diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index 6a6f013..795c18a 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -92,6 +92,31 @@ public class Panel extends JPanel implements Runnable,KeyListener { p.ACTUAL_WINDOW_WIDTH=(int)d.getWidth(); p.ACTUAL_WINDOW_HEIGHT=(int)d.getHeight(); p.init(false); + /*{ + int32_t ww = vScreenSize.x * vPixelSize.x; + int32_t wh = vScreenSize.y * vPixelSize.y; + float wasp = (float)ww / (float)wh; + + if (bPixelCohesion) + { + vScreenPixelSize = (vWindowSize / vScreenSize); + vViewSize = (vWindowSize / vScreenSize) * vScreenSize; + } + else + { + vViewSize.x = (int32_t)vWindowSize.x; + vViewSize.y = (int32_t)((float)vViewSize.x / wasp); + + if (vViewSize.y > vWindowSize.y) + { + vViewSize.y = vWindowSize.y; + vViewSize.x = (int32_t)((float)vViewSize.y * wasp); + } + } + + vViewPos = (vWindowSize - vViewSize) / 2; + } + */ } }); p = new Panel(f); @@ -287,6 +312,7 @@ public class Panel extends JPanel implements Runnable,KeyListener { //System.out.println("X:"+(Math.sin(theta)*r+center_x)+" Y:"+(Math.cos(theta)*r+center_y)); points.add(new Point((double)(Math.round(Math.sin(theta)*r+center_x)),(double)(Math.round(Math.cos(theta)*r+center_y)))); } + points.add(points.get(1)); FillPolygon(0d,0d,col,points,PolygonStructure.FAN); } @@ -307,6 +333,7 @@ public class Panel extends JPanel implements Runnable,KeyListener { newP.y+=center_y; points.add(newP); } + points.add(points.get(1)); FillPolygon(0d,0d,col,points,PolygonStructure.FAN); }