diff --git a/1x.png b/1x.png new file mode 100644 index 0000000..66e874d Binary files /dev/null and b/1x.png differ diff --git a/src/sig/DrawLoop.java b/src/sig/DrawLoop.java index ff9fe8d..2f948ca 100644 --- a/src/sig/DrawLoop.java +++ b/src/sig/DrawLoop.java @@ -9,9 +9,9 @@ public class DrawLoop { DrawLoop.panel=panel; int[] p = panel.pixel; - for (int y=0;y=p.length) { + int index = (Y+(int)y)*RabiClone.BASE_WIDTH+X+(int)x; + if (index<0||index>=p.length||p[index]==sprite.getBi_array()[Y*sprite.getWidth()+X]) { continue; } else { Draw(p,index,sprite.getBi_array()[Y*sprite.getWidth()+X]); diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index 32e624e..459fee6 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -1,35 +1,52 @@ package sig; import javax.swing.JFrame; + import java.util.ArrayList; import java.util.List; import sig.engine.Panel; +import sig.objects.Player; import sig.engine.Object; +import java.awt.Toolkit; -public class RabiClone { +public class RabiClone{ public static final String PROGRAM_NAME="Sig's Java Project Template"; public static int UPCOUNT=0; public static Panel p; + public static JFrame f; public static List OBJ = new ArrayList(); + boolean newSizeSet=false; + + public static int BASE_WIDTH=512; + public static int BASE_HEIGHT=288; public static void main(String[] args) { - JFrame f = new JFrame(PROGRAM_NAME); + RabiClone r = new RabiClone(); + f = new JFrame(PROGRAM_NAME); + f.setResizable(false); + f.setUndecorated(true); + f.setSize(BASE_WIDTH,BASE_HEIGHT); //1024x576 (64x64) + ChooseBestRatio(); + p = new Panel(f); p.init(); f.add(p); - f.addComponentListener(p); f.addKeyListener(p); - f.setSize(1280,720); + f.setLocation((int)((Toolkit.getDefaultToolkit().getScreenSize().getWidth()-f.getWidth())/2), (int)((Toolkit.getDefaultToolkit().getScreenSize().getHeight()-f.getHeight())/2)); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); p.render(); + for (int i=0;i<10;i++) { + OBJ.add(new Player(p)); + } + long lastGameTime = System.nanoTime(); while (true) { long timePassed = System.nanoTime()-lastGameTime; @@ -44,4 +61,11 @@ public class RabiClone { } } } + private static void ChooseBestRatio() { + int multiplier=1; + while (f.getWidth()*(multiplier+1)getPanel().getWidth()|| - getY()<-this.getSprite().getHeight()||getY()>getPanel().getHeight()) { - setMarkedForDeletion(true); - } } @Override