From 6212745dcdc1b0dbd29a54b376a4bbd8ea55dce2 Mon Sep 17 00:00:00 2001 From: Lenz Wiechers <> Date: Sat, 15 Feb 2020 20:48:44 +0100 Subject: [PATCH] Ball rng added + some other stuff --- README.md | 4 ---- README.txt | 10 ++++++++++ bin/Ball.class | Bin 1912 -> 2420 bytes bin/Game.class | Bin 1215 -> 1160 bytes bin/Main.class | Bin 408 -> 408 bytes bin/Player.class | Bin 958 -> 840 bytes src/Ball.java | 39 ++++++++++++++++++++++++++++++++++++--- src/Game.java | 23 ++++++++++------------- src/Main.java | 3 ++- src/Player.java | 15 +++++++++------ 10 files changed, 67 insertions(+), 27 deletions(-) delete mode 100644 README.md create mode 100644 README.txt diff --git a/README.md b/README.md deleted file mode 100644 index be4356b..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -This is a test - - - diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..e4aeaf5 --- /dev/null +++ b/README.txt @@ -0,0 +1,10 @@ +This is Pong. +But with moving Frames. +Yes, it is awesome. + +Made by Lenz Wiechers + +Made for one FullHD Monitor +You have to select the Ball (the middle frame) +You can then control the left Frame with 'w' to move it up and 'a' to move it down. +The right Frame can be controlled with ArrowUp and ArrowDown. \ No newline at end of file diff --git a/bin/Ball.class b/bin/Ball.class index 3df6dc944c966c3466d3b726ed03930dc940e978..9870a02867bc05235148cbbe704f213910ca5d82 100644 GIT binary patch literal 2420 zcmZuzOLG%P5dKzPNw&O}g@SFsB$$^YuK@u8!o%3aFOZSJ_(g0IU@eX91$m|HuCPQB z!X<|s!i5v3kdrSQpbDE*QkBY?s@(Ela!DomW>$WX_@L?D?&+ESzV4pV+rNMQ6~HNc z6Gcda-ftBOQRo_y_pAq2CG9QS&O&-**tM2K6cG)3q&;md`)Tn&IDY!7sAg@?7mjc> zBs}5TR$*GWo?UdNGJ_hl5e-cPMaT0k$Dg(eWfA^!@Q=4opANm$5cWz!S69Z0 z9#zKZRi%b26ZS(vQ-(XMfgUM{d4H-zfkdDkGq3|mX*+JT^ zeEuCq_oae_wk7;R*R%{iW8h<))v(JG{-Bt*$_0O*Q1rz0l5j1bg<#65OtAO7feYx- z5aZry+q35iBv?<)2Hsu+ebQ^tJ1#u?p+$cbpRlt3r6q<-I4GAv14Cf_8XZyb`-{bb zuy`Svnw1c*7-&a})J6>K4YaI*-GO$^z#g<{XwKS>xK>`86YiwEQr4lEV0o zw}y+q;L^++^k=)*Fz^hGroM{HE2x(;v&D9`W*dFQ%j$5Q>o_|GOhrc{X=ozcIJ=~o zNhWZJ$#vlXj^Q95j6*n!PL5y-mubzyWPCR!>Ai(C?&3IdIDtjJ?qfW$H2{Pgya9~r zQouD#@GA-Z9|nh_(4urfkLx625>o*kIL$qh4o#*RQfW%Qzyvmr)@nz~8cpLSR}G(T z9PvBjcaiq}7tvJId5q+nAFkvA!`?+bEwGK$RbL(zmQEssbpi@o3HLlkQV2rbI zg8(L3=qVg!GUv!{FW;q2?)x^9?Rz)b9ZiWQCVL+RuIz05B_U8gZckL6qsM%W%rmr^ zGq2g&uW`8JyL;a+u+3M{&dPPEG)~K6%les0QIzYvJ8n!n=d;(OUS1i{Vo5 ze)6L31#<`*{*0RQ+sx|@wYzL|i%92)GS8w37HOW%y}(y?k*kdg(LBPELf^qNh-Cx) zW7-`em9`?^laOlfdPMfOg*)29^zfOjF|kCijE=W|`x8nW#L**bc<@R^hZ(zE%a6ms uT^?U4pA{)H$K@?|$2abd<4X>be8F_q;H%o*{9kn?ie))ZU-Os{9{me2^UFB^ literal 1912 zcmZ`)O;a035Pd5x5{LzaVq^1R1O5Q9V6X`ZHrU`;fRQY0f`n{HNU}&{*jPxa)nZUi zx#Z-dt8xuFap7QB1tpb3et@fT%YVr&l{d3O*cDO~+r2$K)9=0RS-tz`_dftkKm_5_ zpg*wk`5<%+k#DV+*8W&|&n|3@B^DfOhZzA4T{1pq?YU#(r6{;#k3=PDmt9d1j)rhq zIJT9~2&Zfp3#;)t4O&7&ORQKZyH>%?SovMi@b}zb?_R&2f1{zHToNM3qy?7VUoMtu zD#|qMr|jLX+~mXyC40u-zFA{^(GK z=f;XT5rQ8*1}>sgpZK}$O%pWq8ZgkJ$9@Fl>lFj7Xp!DE18tr+U?7Zk8H*Z-pgly- zG%$=24Xsu#_kjex(d7RtG(D7&n@0_d;iiU*W#P_==hklCjpd7F@uVai%cXLJ8;yIp z;|4y)goY4vGj`eD%u^LTx-L1jCGCQEyt}h0oV2ADBFSQw`djP*-)lkL-L|Q0ASs(W zP3c~UO1e^#!uOnoc3w7?P$@KPb)Lb;%OEJ8wCsp-S>!^P#b-g>*Kpy#{8hez2Z(Xc zmT;+1rQz~vdc5EY$Js5pA~(OE6(!k21K*&NJt{eN!BsHR zj+K?obL}0PK2KLw?yUW6R47&4b+Tf?mOXEh-5ZrP(N87({BJ-AT?nF)eiLu8kMBM? z&dTQ;E6XXSB|Wq&%L!JNf-6h8m8ICqQfk@&ckrI@*~Pc-d9Fq~ZvKjHGjiz|m(57u zG5Xc>su|85-dU(&Su+kta zji4L1a0#C>)9@-{61VxL;SQ#1Xyj==89O~(!Uctq8#}zk+D5r`8h82BaIb#EpUja* ztPNK&6MlMtu&Ezo&h#H+;Se1vnmRy>j4sINoC*!p5*KACagrFVB_?Ea(F}*GNJ?ma z#e0ezfots0b$SCF^g;9@%E%D^hA~dolej^MqgdpJVF@>}!ss(z{8Kt>bvkP`I!}0N z0D4E{e1z1N>(qX#QJX!X)~xU!qWy$bqYNyZ5K_yFC(GobmJ_E02Gnp(@_CyC?yyZ$ zByf)uW(a$hk^A&w?}44IgPr{lYZ>FFQC-Lm4m|LXq!&3Haej&u9MPnz+efi^O1*9uQb@CgjIHv5_#oxd;WL^U~8HgMlYt%(tZa)k&|)FI8$&AeB)wO+Rs7O$7Qjyjod T*6Q-NbuowyoeNnO^C9;y7cf*l diff --git a/bin/Game.class b/bin/Game.class index dbe7972cb36d23281cf214eedc5c83c22099dc86..e9d001d8ee63f8af25941be6e652fe63f15187dc 100644 GIT binary patch literal 1160 zcmaJ=%T^OX5WSPvB$LKG1j0+?A(#XO6?_4{0KvrYkc24F%_NLraFTG6L5W|W$DJSG z&f^b+;L&qjy6{i@1UG8cOaNCdx~uy3t**M&-9LVR`37JL&ty0xxR%tCCc`BmxTC&Q zCk(Y*oLJ58Xa$ot^QvJ;@TBI*&PZ@<5hx`kxDB;tW+W(v_S{@E)Vfxc;7!>c5&c!Y zxP83gnbpg>d0T=r8q3nD^OY@4ffFHtHk^`ino`)I3c?8aAfZ!0fuFrD0Rg{^9tz|# z6m;8^GXidSe6&0(Fn~d-YCo;N)~Lb+qr(E{EVRxjhm8uHM^u7b(@dM`jwTYZtdFt| zbLvqqE>Q6-YT%@xae)b3B7GE=(M^LgbVO4p-AbEPyy1s1VH*;vlTF101ca6%x-u$SS5$}36}Mv5z2CT=vD z%W*|vOfz{+;1QE$OVq|LV`+g5V?GPx6C?yudRbf9E9JFnM$L1F!mPr`s#TrWEzo6d z>m=Kg;zvi%q%Cc#g%``}ZfjpjSN5s}ZBgeFd`ueWHe-;4IqA{5t>K~B!9BGsskJOU z7t7LPAxmocZP6T{#am)aWZUA02*$r6ym^TB19Y6Y5puf;?L9zWykU<9`q^z@sEHBs zI-EQ;5NjgNUU;mDi{wNYj~wHX@MRmf4hrtm=42CB$@B&5twj?z3@tRGYUpZ?RIH`FF4HfUZ%h~@xXWCL{d zJ!r=WIx&qdBIFIK6cockNM$rtwrw~~*UK{-dqqNXJ zF}rBa*)+}?g@QsuW`uk|!81=#r4{@IW7*CrgbU^id$M4xnH7a##+B&USg{sf?id;d zt&(LAD|q9HJhP6L=gly@Xx7++y#cfklL}!((Hw%pJ`Fz_0%&J#H)k08UDE-LFdD_F zOGAqkMYqNw^suYdto7DphbcjOHI6vwnxK;VsKznG6#~nq?Rxs-sZ=5#V)9<8a8#rd z8Yd;rw>nu~7PMdEG|sS<1=A)(A)cO@Nu$O#y58k|}ZEU)oUu#kg^r$ST4Dw*Re#aXkGGiGJlsH~@uH!7Cs z+n~>WX~{w}a)rE`Jz3kBdv(uP+O~(Y<(0~udE1f6|#Xu4M~w)?YOXz*IUD>8qSImy->p?3bAJI?<&L|lgQXkq*S2hSawIoq62QE zQ$Dgvx1k!Yk+ntEwv`%2lAkbIMM@aKlv%~lKZw;MVS>`z5I@dv*JTqs{q3$^cYENv zO}TC#w$`~sFCLMOqlL5yJ~WfIpcAd=!#-R^J5uO?L1Ymz*yzGL9K?HcW1Ua-4ZZlm oKkz5w_=TiWIHBTD0|x`=>o&W#< delta 17 YcmbQiJcD^dE+Z=&0|x`g7 zbN~`#;^g9>iLHq-%*21l#KHL7n=YQ=y2zR&wRmjhRR@ayl7OQ6opV@=juM&>jP9(gHzcK?>b^7TvSVFxE@Zq*!Hsa$Wy1MAO3v#s?UFrazp6JuP4_f| zx-A|9`b}Di0pmh1l94w|Mfoo7i1WF_UA@c^bIkXb|HLPy;=21rA!Om~1A(?LXnXO3 zyxUe;R<3;f>g`JvKQS}rT~O|~pT8&kuV**H*37%l3Qfk8CD9?SA#R9gg50J6E0kEG r%qmkcqSGft(MOEbJ&{G&>)dBiQIV=kc|4F#k<8{N)$mY{1dsj!)=f*z delta 653 zcmZvY&rcIU9L3*km)&%kN`aRC5LyK+?D%6*tD;~9tp}rrCQX{)twKXeN=xWssF%j0 z2ThuuIGUJv@u0@7i3iTagIE6>zVn^=zPInhI<}pke|{VT$m4O(*_=Bp zwb}yWiGbNT#iGE-VY&XQ#=WEW-s^N}N@4<&X8!%y=P(3P5)MW+otKb^SZf;`$xk0; zCC*_?(?y9WBAVtT#u0Hymn3pn=>5*6T?vKD0#3W;SL*Hhiv}gl#piCNza*Y^!?=lC zHu3_|o$AY~*QhqPy>h4R*LEdtIucpAFmfmRH)ZH~q4|U#sq}IJk=y8}|ez z|I?OO#eD&LPrqn1wQSL?2pC%&XdLV@k$z9C3akH1xLrCxgg+4HL(kh1O02vkC3UEP<<0QbWvIdw}<^YRdhJ&tf%`r7FG7~ma4O7fP z0;8B=vh%FEE_JU_?<%j!Q!UmWD}g0kKlAYc7Djkh_=+3q8!`hd&m1A4Hpr}#**80H zx9R62QgQPLv40wy+9)r+`@{($Xj^H{1E%0qkfgg5vOHSAG?tMWT2XXNxic%83VfoY ZDBuCsI7ZVt$;3ml31c?S{v)!1;$OkvXJG&U diff --git a/src/Ball.java b/src/Ball.java index 7e1fe9b..232ed10 100644 --- a/src/Ball.java +++ b/src/Ball.java @@ -1,5 +1,6 @@ import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import java.util.Random; import javax.swing.JFrame; @@ -9,8 +10,8 @@ public class Ball extends JFrame implements KeyListener { private float speed = 0.0000003f; - private float xPos = 300; - private float yPos = 300; + private double xPos = 300; + private double yPos = 300; public int xSize = 100; public int ySize = 100; @@ -20,11 +21,33 @@ public class Ball extends JFrame implements KeyListener { public boolean rightUp; public boolean rightDown; + private boolean ballUp; + private boolean ballDown; + private boolean ballRight; + private boolean ballLeft; + + Random rand; + public Ball() { this.addKeyListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); + this.setResizable(false); + + Random rand = new Random(); + + if (rand.nextBoolean()) { + ballRight = true; + } else { + ballLeft = true; + } + + if (rand.nextBoolean()) { + ballUp = true; + } else { + ballDown = true; + } } @@ -69,13 +92,23 @@ public class Ball extends JFrame implements KeyListener { public int getPos(char coordinate, long dt) { if (coordinate == 'x') { + if (ballLeft) { + xPos -= speed * dt; + } else if (ballRight) { + xPos += speed * dt; + } return (int) xPos; } else if (coordinate == 'y') { + if (ballUp) { + yPos -= speed * dt; + } else if (ballDown) { + yPos += speed * dt; + } return (int) yPos; } else return 0; } - + public void delay(int time) { try { diff --git a/src/Game.java b/src/Game.java index 1db4061..ba98222 100644 --- a/src/Game.java +++ b/src/Game.java @@ -2,7 +2,7 @@ public class Game { Ball ball; - + // blob // Delta time: siehe https://en.wikipedia.org/wiki/Delta_timing @@ -14,22 +14,19 @@ public class Game { public Game() { - ball = new Ball(); - leftPlayer = new Player(); rightPlayer = new Player(); + + ball = new Ball(); ball.setSize(ball.xSize, ball.ySize); leftPlayer.setSize(0, leftPlayer.ySize); - leftPlayer.setLocation(leftPlayer.xPos, leftPlayer.getPos(0, false, false)); leftPlayer.setTitle("left Player"); - rightPlayer.xPos = 1000; rightPlayer.setSize(0, rightPlayer.ySize); - rightPlayer.setLocation(rightPlayer.xPos, rightPlayer.getPos(0, false, false)); rightPlayer.setTitle("right Player"); - + ball.setLocation(ball.getPos('x', dt), ball.getPos('y', dt)); lastT = System.nanoTime(); // delta time @@ -39,16 +36,16 @@ public class Game { dt = System.nanoTime() - lastT; // delta time lastT = System.nanoTime(); // delta time - leftPlayer.setLocation(10, leftPlayer.getPos(dt, ball.leftUp, ball.leftDown)); - - rightPlayer.setLocation(rightPlayer.xPos, rightPlayer.getPos(dt, ball.rightUp, ball.rightDown)); + leftPlayer.setLocation(0, leftPlayer.getPos(dt, ball.leftUp, ball.leftDown)); - // ball.setLocation(ball.getPos('x', dt), ball.getPos('y', dt)); + rightPlayer.setLocation(1785, rightPlayer.getPos(dt, ball.rightUp, ball.rightDown)); + + ball.setLocation(ball.getPos('x', dt), ball.getPos('y', dt)); // ball.leftPlayer.setLocation(10, 700); // ball.xPos++; - - //System.out.println(ball.leftDown + " " + ball.leftUp); + + // System.out.println(ball.leftDown + " " + ball.leftUp); } diff --git a/src/Main.java b/src/Main.java index 48f9a0a..c95a842 100644 --- a/src/Main.java +++ b/src/Main.java @@ -2,7 +2,8 @@ public class Main { public static void main(String[] args) { - + + @SuppressWarnings("unused") Game game = new Game(); } diff --git a/src/Player.java b/src/Player.java index 785f3be..a088a58 100644 --- a/src/Player.java +++ b/src/Player.java @@ -6,25 +6,28 @@ public class Player extends JFrame { public float speed = 0.0000003f; - public int xPos = 10; public double yPos = 100; - public int xSize = 100; public int ySize = 200; public Player() { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); + this.setResizable(false); } public int getPos(long dt, boolean up, boolean down) { - System.out.println(yPos); - if(up) { + // System.out.println(yPos); + + if(yPos > 850) { + yPos = 850; + } + + if (up) { yPos -= speed * dt; - } else if(down) { - + } else if (down && yPos < 850) { yPos += speed * dt; } return (int) yPos;