From 0a85725d27420f729511971c3ff982c72e38267a Mon Sep 17 00:00:00 2001 From: Sebastian Cabrera Date: Tue, 27 Aug 2019 14:41:33 -0400 Subject: [PATCH] Initial Commit --- pixels/.classpath | 6 ++ pixels/.idea/$PRODUCT_WORKSPACE_FILE$ | 19 +++++ pixels/.idea/misc.xml | 6 ++ pixels/.idea/modules.xml | 8 ++ pixels/.idea/workspace.xml | 60 +++++++++++++ pixels/.project | 17 ++++ pixels/.settings/org.eclipse.jdt.core.prefs | 11 +++ pixels/.vscode/launch.json | 21 +++++ pixels/bin/.project | 17 ++++ pixels/bin/bz/bronze/pixels/Gameloop.class | Bin 0 -> 2012 bytes pixels/bin/bz/bronze/pixels/Init.class | Bin 0 -> 1131 bytes pixels/bin/bz/bronze/pixels/Renderer.class | Bin 0 -> 920 bytes pixels/bin/bz/bronze/pixels/Window.class | Bin 0 -> 2167 bytes .../pixels/bz/bronze/pixels/Gameloop.class | Bin 0 -> 2066 bytes .../pixels/bz/bronze/pixels/Init.class | Bin 0 -> 1115 bytes .../pixels/bz/bronze/pixels/Renderer.class | Bin 0 -> 922 bytes .../pixels/bz/bronze/pixels/Window.class | Bin 0 -> 2147 bytes pixels/pixels.iml | 11 +++ pixels/src/bz/bronze/pixels/Gameloop.java | 80 ++++++++++++++++++ pixels/src/bz/bronze/pixels/Init.java | 23 +++++ pixels/src/bz/bronze/pixels/Renderer.java | 20 +++++ pixels/src/bz/bronze/pixels/Window.java | 49 +++++++++++ 22 files changed, 348 insertions(+) create mode 100644 pixels/.classpath create mode 100644 pixels/.idea/$PRODUCT_WORKSPACE_FILE$ create mode 100644 pixels/.idea/misc.xml create mode 100644 pixels/.idea/modules.xml create mode 100644 pixels/.idea/workspace.xml create mode 100644 pixels/.project create mode 100644 pixels/.settings/org.eclipse.jdt.core.prefs create mode 100644 pixels/.vscode/launch.json create mode 100644 pixels/bin/.project create mode 100644 pixels/bin/bz/bronze/pixels/Gameloop.class create mode 100644 pixels/bin/bz/bronze/pixels/Init.class create mode 100644 pixels/bin/bz/bronze/pixels/Renderer.class create mode 100644 pixels/bin/bz/bronze/pixels/Window.class create mode 100644 pixels/out/production/pixels/bz/bronze/pixels/Gameloop.class create mode 100644 pixels/out/production/pixels/bz/bronze/pixels/Init.class create mode 100644 pixels/out/production/pixels/bz/bronze/pixels/Renderer.class create mode 100644 pixels/out/production/pixels/bz/bronze/pixels/Window.class create mode 100644 pixels/pixels.iml create mode 100644 pixels/src/bz/bronze/pixels/Gameloop.java create mode 100644 pixels/src/bz/bronze/pixels/Init.java create mode 100644 pixels/src/bz/bronze/pixels/Renderer.java create mode 100644 pixels/src/bz/bronze/pixels/Window.java diff --git a/pixels/.classpath b/pixels/.classpath new file mode 100644 index 0000000..dfa42f8 --- /dev/null +++ b/pixels/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/pixels/.idea/$PRODUCT_WORKSPACE_FILE$ b/pixels/.idea/$PRODUCT_WORKSPACE_FILE$ new file mode 100644 index 0000000..79be354 --- /dev/null +++ b/pixels/.idea/$PRODUCT_WORKSPACE_FILE$ @@ -0,0 +1,19 @@ + + + + + + + 11 + + + + + + + + \ No newline at end of file diff --git a/pixels/.idea/misc.xml b/pixels/.idea/misc.xml new file mode 100644 index 0000000..e208459 --- /dev/null +++ b/pixels/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pixels/.idea/modules.xml b/pixels/.idea/modules.xml new file mode 100644 index 0000000..76afca1 --- /dev/null +++ b/pixels/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/pixels/.idea/workspace.xml b/pixels/.idea/workspace.xml new file mode 100644 index 0000000..2c42c43 --- /dev/null +++ b/pixels/.idea/workspace.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1566930672613 + + + + \ No newline at end of file diff --git a/pixels/.project b/pixels/.project new file mode 100644 index 0000000..81e7df1 --- /dev/null +++ b/pixels/.project @@ -0,0 +1,17 @@ + + + pixels + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/pixels/.settings/org.eclipse.jdt.core.prefs b/pixels/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..b81b13d --- /dev/null +++ b/pixels/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=10 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=11 diff --git a/pixels/.vscode/launch.json b/pixels/.vscode/launch.json new file mode 100644 index 0000000..1148705 --- /dev/null +++ b/pixels/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Debug (Launch) - Current File", + "request": "launch", + "mainClass": "${file}" + }, + { + "type": "java", + "name": "Debug (Launch)-Init", + "request": "launch", + "mainClass": "bz.bronze.pixels.Init", + "projectName": "pixels" + } + ] +} \ No newline at end of file diff --git a/pixels/bin/.project b/pixels/bin/.project new file mode 100644 index 0000000..d176cb0 --- /dev/null +++ b/pixels/bin/.project @@ -0,0 +1,17 @@ + + + ge + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/pixels/bin/bz/bronze/pixels/Gameloop.class b/pixels/bin/bz/bronze/pixels/Gameloop.class new file mode 100644 index 0000000000000000000000000000000000000000..0710e713c449c936549548f2be004b9ddb1f5dcc GIT binary patch literal 2012 zcmZuxT~iZR7=8{3*|6P&ZwLZ{3N=J)v{u>(eu7XCl>%bXYP(5}xEgl1n@ww(Ue=5D zsKF7p_LeOKN z2D*mVx74;=CLO&iypz<`FRvVOzBAvBUYi$>~2-*I&u!BGuw zZizqrS<#mZ2HwIkw!$`TXU1A!&sehY$eCBKBqxHnjv!;;I7lkwlzf5aG6u^@PkNT^ zPy1}}!hnVo#8>GtkJ+!YC9A*&M{$ZJVb_j#>lnltMdvIdZKhLpAQ@#bY~UP5*hbTJ zIRye8$+5mo+_yv@P#*6Z7{fSu_)b|V(3ITnLfZ*k)NnzdF#x-jhJi~8nC2>G1zR=f zJp)s!n$@|2G(8$pBlKL%p)Z?Z~C0MUd$P|ifd{n3R1f4NOD}U zyp9hw+z{AZDcYFrOV2C0zRaJyo0G0@Ikth1RJ_^%(zI{p?#y^*j)4WT269TL<*lOY z6xF(w7fPV!rsWm=azCR5b6wP3vsje*@_B8^c0DI2D<@IkV)$SPs+CyemW{FRzN;k0 z@7~mdoxpNPVgberrn|N-`m|H>a&p8{*FkK3MGh&_*h3N_{;Cm1l^S0TT$Ngd;LY{q zyFo1{ZEAzFI@QG^aw#XiYVtZW(P)0`vADK$y=EQ$!iM26dD> zcw#UF9np#1d<%4K1iegKrRz$)MEBft>|Mq_ioJ78vVR$=)bB{G;NbsLs0$^IRwCWa zB$X6h8!6HoDGmfFnYI!n669>!u_VarfN%W%+863cA9OMKX!Z^}g(j(l>qqxTV>;{e@ODjpM&#Ax1 z3*t+hz}Gm1Z|U_t&Jf8Eu?*v9-ZV>${~Mz`#rdH8H-ia$wpM-(zak%uOAUTu%s6MX zkt}Xf3KQ#N%u|XG@gv-#6lIJDuqf$7{~d1Q4!!r{J_?j#%vg;D*wi~@-wAD%)M_*c r5mFz)(d*gO(lMgpx|#{Dc)9l^tmbrwp}7>GE)R5NXk40B;p6`Rl{J%2 literal 0 HcmV?d00001 diff --git a/pixels/bin/bz/bronze/pixels/Init.class b/pixels/bin/bz/bronze/pixels/Init.class new file mode 100644 index 0000000000000000000000000000000000000000..07ee485540f4af055769d614fbaef9f0bb335de7 GIT binary patch literal 1131 zcmZ`%YflqF6g|_|K3phmZ4prfp9PgwR8WifAWBRcHL1ZEKW)pV4%zND?IOs(5)vSi z_yhb=#xql(kZPOE?A*EM+;h*|-+zAo0fqHx=H+j7efy6)Rh#s*RX zBkSHb&kek=>AtV8`;Ay2vnj*1Xj5RUI)MA6uPOqmrq}WX#s^bYco9TVn@Q$kBap1L zB#ZVRraU@1ExT> zDntL>Myu|3K6>?ldh^w&;RUN+N2;?9+DIZxY4KOtC3LVMvVVJ;idh?^!Ko zuvwX2wJ?dR2Byw9TKnFO{g#7kxK0P64TbK3W#oQPbj15!t779O$_8!;6g2nQYX{Sq z5HPfWAXHrpC}0E1EM?za2eaC~2DxKjxpL3JeHBV~W3LmNc)&uvr<_#XNiUGw{@RpH z?;bh0j0qD90=Z*jCu<7E1XgKzk_t-YFM}G?3)`=^8h$&LQP?%Gc-)Vkuag^9X34>A zr6}cfnzX&}4?2?7qK!_&entKLgItmhS1dnK3?t=03%swvmVHq7vYKYTI zz&I{3(NY#NqBP8tT!GCUT$$O!jXu6t)}nIz6o<)anb92d=ZIrPGXSGI$nD|I4oZ7) z^K%Dyn4jm;r!3I`V2FJTa}Y+5_gl9)Qcvp!c(UXezZ RPRUE*IbP`ems}Hg^%q#N-z)$C literal 0 HcmV?d00001 diff --git a/pixels/bin/bz/bronze/pixels/Renderer.class b/pixels/bin/bz/bronze/pixels/Renderer.class new file mode 100644 index 0000000000000000000000000000000000000000..a0a2b6e45dc39c679b82c31325932b88508bcd11 GIT binary patch literal 920 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 HDU^Q$-T~jm literal 0 HcmV?d00001 diff --git a/pixels/out/production/pixels/bz/bronze/pixels/Renderer.class b/pixels/out/production/pixels/bz/bronze/pixels/Renderer.class new file mode 100644 index 0000000000000000000000000000000000000000..4ddd175f884fcb1c92476925c4f0a91a4fbdc93c GIT binary patch literal 922 zcmZ`%TW=CU6#izpth+3hQl-|#DrzgBvR>-7#0P7PBxsY?l!yAzVVT0TbRo+krqBKo zUwqaGCO$Mi`&0Z0#;9iiZAxP%Ip;f<`OcYh=G(6?2LP5(G!e&n0~e4nVBw-dmlV3J z(1M9YTrrVFPDkE^fvYNZO~-W|1qQ8MVPGW%o)Ksh*d!}jl%5P8F@&d6MOp%bOeAm&zVH!$CuK80>O&->Ld7Z(lfV`9?H5&YJLQ!WaHB zL&R+g?o&z05MK|tyZfBC#{}kjtLwYssZ=H6e=ikw_-k%q2B&m57H(k5!bv4=Dv?m) z7H;cUvTz4?b=Yl@Ufg|^LT{us8z#n(Fw}oHw0t*kZY+)KnhPnUt%a9n7 zG`UxIR;xS04H#yRrB|d^YxU@DJy{DHG{uIH^#-LzNAG8tFHbZxYDCmZsx=zRWV1)& z3`Si9YrGQ(np`HEn`Eo_GEj>cr4Ze@iE>91Xt>08I1kD{&UqLnK7E`|Um}~^EFnXG zDNf%o1WoONkft^<)HKtfW@=?%I8D|T#Tn_v{AaNIM`(S7NQL`|kctkV4{+iui~-C( zVjqV0QzTP}kTej6i5Q(E)m@;Ra)rh(jZ8o8F~*Pme352^-LULSsM3MZ+V9 GhWS4s#l&L( literal 0 HcmV?d00001 diff --git a/pixels/out/production/pixels/bz/bronze/pixels/Window.class b/pixels/out/production/pixels/bz/bronze/pixels/Window.class new file mode 100644 index 0000000000000000000000000000000000000000..aef1906682f5513ff9569a861ae7e321478930ac GIT binary patch literal 2147 zcmZ`(`F9gl6#ib5bdoT%X=#A6wrr+=1Qb*#qPCS9EEH)iiwjPY*JL2c#K|Nn1;qvT z<$p0bCq2iW;~(H3#qql{B?+kW!@c+2_uc#MI)6X?^Dh8r@oO9@%*XH&-V>4$az)7d zaV+4fNY~<6#C4HAh+`XW7+4a%Y~aH_iRu2sBfDtS+rd8TsolTVAWpJ zrJBNl;MQt-X}fF{bb6+~x~g5B&&Y|$Xv5acs^il0NDn(}RT@@}*8^EPIoP}Ccf!{! zPZu5#rV0u>dZ>BVsut~>I2gQWS8VT+LMS!0q7a^S@(g--!LI0Q^>S9b%T_i>!(m=4 zmTSv-OBwcxHs2p#$gZceu2Wgp=^(N6O}}#Dzh2EV3JN(_`+}lHP|&obJ!hA7rDi)7 zf}C3h}zAbQfO1fa;JT91c9dDR8gI7$Pz)2G?|oX{e6RPO*|3uosjR*F!2L^H1QLDRu~Fu zH}Pnqar)HhGYb2CduK#IUGrx%p%BZv zR@0w9g>$Li)C41$;n&jzf%!L!*_w76+MS-dqp-j0H$Vhq{cIvRXSJd%mQmB*lD*Cr zM^c%L4B&2R=JcvnFL|>ir=}OHnp4d2piRn0#E1wQq_DRyyg+x=s&H`_1bv09d|qLy z4>RkOt4@WjoDNdxtA%f2()SHrv)6;652x;kpQOCV@s}`e=n{EDFFUOCe|i>+C@q$Q z{ZDRz`hNfdi4(G7*KB{g5bCl5o(;*(DElqOf?k>eXse^3~}MbbfEY2r=FW&pq? zyv0)tZ+DF^z@P@$)51Utp-`xWa0?OD!Qjmnj1HpWQTZN+5E3MIU@yk8kJ@*-ex4%2 zcY)tqhy^Y>h*KWyz$Dwm_S+j6>R{NvPmGRqFiJ7h!45J$H|Ad?JJ?Af+`+C*?7r=L z8ZR=S7RHMk*t5_=;zS2~1GX<<`^h3593bo9U>k-X_(U56y=u%L!RQXM5)+JnlJpRp zaF}I2!crc^42~hgHr-{5R@tO7Z$17=AM%g&geCrsjgd<346@v+ch0)0^1FtS8%ujf5CZcx2#K8 + + + + + + + + + + \ No newline at end of file diff --git a/pixels/src/bz/bronze/pixels/Gameloop.java b/pixels/src/bz/bronze/pixels/Gameloop.java new file mode 100644 index 0000000..02a4ec6 --- /dev/null +++ b/pixels/src/bz/bronze/pixels/Gameloop.java @@ -0,0 +1,80 @@ +package bz.bronze.pixels; + +public class Gameloop implements Runnable { + + private Thread thread; + private Renderer renderer; + + private boolean running = false; + private final double TPS = 1.0/60.0; + + public void start() { + renderer = new Renderer(); + + thread = new Thread(this); + thread.run(); + } + + public void stop() { + + } + + public void run() { + running = true; + + boolean render = false; + + double firstTime = 0; + double lastTime = System.nanoTime() / 1000000000.0; + double passedTime = 0; + double unprocessedTime = 0; + + double tickTime = 0; + int ticks = 0; + int tps = 0; + + while (running) { + render = false; + + firstTime = System.nanoTime() / 1000000000.0; + passedTime = firstTime - lastTime; + lastTime = firstTime; + + unprocessedTime += passedTime; + tickTime += passedTime; + + while (unprocessedTime >= TPS) { + unprocessedTime -= TPS; + + render = true; + + if (tickTime >= 1.0) { + tickTime = 0; + tps = ticks; + ticks = 0; + } + + System.out.println("TPS: " + tps); + } + + if (render) { + renderer.clear(); + + Window.update(); + ticks++; + } else { + try { + Thread.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + dispose(); + } + + public void dispose() { + + } +} \ No newline at end of file diff --git a/pixels/src/bz/bronze/pixels/Init.java b/pixels/src/bz/bronze/pixels/Init.java new file mode 100644 index 0000000..7bc7f20 --- /dev/null +++ b/pixels/src/bz/bronze/pixels/Init.java @@ -0,0 +1,23 @@ +package bz.bronze.pixels; + +public class Init { + + static Window window = new Window(); + static Gameloop game = new Gameloop(); + + public static void print(String out) { + System.out.println(out); + } + + public static void init() { + window.create(); + game.start(); + + print("Window Initialized!"); + print("Gameloop Started!"); + } + + public static void main(String[] args) throws Exception { + init(); + } +} \ No newline at end of file diff --git a/pixels/src/bz/bronze/pixels/Renderer.java b/pixels/src/bz/bronze/pixels/Renderer.java new file mode 100644 index 0000000..7499eb7 --- /dev/null +++ b/pixels/src/bz/bronze/pixels/Renderer.java @@ -0,0 +1,20 @@ +package bz.bronze.pixels; + +import java.awt.image.DataBufferInt; + +public class Renderer { + private int pW, pH; + private int[] p; + + public Renderer() { + pW = Window.width; + pH = Window.height; + p = ((DataBufferInt)Window.pixels.getRaster().getDataBuffer()).getData(); + } + + public void clear() { + for (int i = 0; i < p.length; i++) { + p[i] += i; + } + } +} \ No newline at end of file diff --git a/pixels/src/bz/bronze/pixels/Window.java b/pixels/src/bz/bronze/pixels/Window.java new file mode 100644 index 0000000..b3922dc --- /dev/null +++ b/pixels/src/bz/bronze/pixels/Window.java @@ -0,0 +1,49 @@ +package bz.bronze.pixels; + +import java.awt.BorderLayout; +import java.awt.Canvas; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.image.BufferStrategy; +import java.awt.image.BufferedImage; + +import javax.swing.*; + +public class Window { + static JFrame window = new JFrame(); + + static int width = 800; + static int height = 600; + static int scale = 1; + static String title = "pixels | v0.01"; + + static BufferedImage pixels = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + static Canvas viewport = new Canvas(); + static BufferStrategy bs; + static Graphics g; + + public static void update() { + g.drawImage(pixels, 0, 0, width, height, null); + bs.show(); + } + + public void create() { + window.setSize(width, height); + window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + window.setLayout(new BorderLayout()); + window.add(viewport, BorderLayout.CENTER); + window.setResizable(false); + window.setLocationRelativeTo(null); + window.setTitle(title); + window.setVisible(true); + + Dimension s = new Dimension(width * scale, height * scale); + viewport.setPreferredSize(s); + viewport.setMaximumSize(s); + viewport.setMinimumSize(s); + + viewport.createBufferStrategy(2); + bs = viewport.getBufferStrategy(); + g = bs.getDrawGraphics(); + } +} \ No newline at end of file