From 1b7d81b588b84b1d0e148e26e07961b1afbe8e10 Mon Sep 17 00:00:00 2001 From: Simon-Dao Date: Sat, 28 Sep 2019 21:00:36 -0700 Subject: [PATCH] simon was here --- PacMan/build.xml | 53 + PacMan/build/built-jar.properties | 4 + .../build/classes/Main_Package/Audio$1.class | Bin 0 -> 774 bytes .../build/classes/Main_Package/Audio$2.class | Bin 0 -> 773 bytes PacMan/build/classes/Main_Package/Audio.class | Bin 0 -> 2132 bytes .../build/classes/Main_Package/Control.class | Bin 0 -> 1894 bytes .../build/classes/Main_Package/Main$1.class | Bin 0 -> 605 bytes .../build/classes/Main_Package/Main$2.class | Bin 0 -> 1214 bytes .../build/classes/Main_Package/Main$3.class | Bin 0 -> 772 bytes .../classes/Main_Package/Main$Direction.class | Bin 0 -> 1123 bytes PacMan/build/classes/Main_Package/Main.class | Bin 0 -> 13063 bytes PacMan/build/classes/Main_Package/Map.class | Bin 0 -> 3234 bytes .../build/classes/Main_Package/Player.class | Bin 0 -> 1164 bytes PacMan/build/classes/Main_Package/Tile.class | Bin 0 -> 1410 bytes PacMan/dist/PacMan_2.html | 45 + PacMan/dist/PacMan_2.jar | Bin 0 -> 15312 bytes PacMan/dist/PacMan_2.jnlp | 18 + PacMan/dist/web-files/dtjava.js | 3958 ++++++++++++++++ PacMan/dist/web-files/error.png | Bin 0 -> 725 bytes PacMan/dist/web-files/get_java.png | Bin 0 -> 9886 bytes PacMan/dist/web-files/get_javafx.png | Bin 0 -> 11077 bytes PacMan/dist/web-files/javafx-chrome.png | Bin 0 -> 11369 bytes .../dist/web-files/javafx-loading-100x100.gif | Bin 0 -> 17878 bytes .../dist/web-files/javafx-loading-25x25.gif | Bin 0 -> 2433 bytes PacMan/dist/web-files/upgrade_java.png | Bin 0 -> 11000 bytes PacMan/dist/web-files/upgrade_javafx.png | Bin 0 -> 13655 bytes ...-modules-java-j2seproject-copylibstask.jar | Bin 0 -> 26716 bytes PacMan/lib/junit_4/junit-4.12-javadoc.jar | Bin 0 -> 943877 bytes PacMan/lib/junit_4/junit-4.12-sources.jar | Bin 0 -> 203570 bytes PacMan/lib/junit_4/junit-4.12.jar | Bin 0 -> 316791 bytes PacMan/lib/nblibraries.properties | 12 + PacMan/manifest.mf | 3 + PacMan/nbproject/build-impl.xml | 1446 ++++++ .../configs/Run_as_WebStart.properties | 2 + .../configs/Run_in_Browser.properties | 2 + PacMan/nbproject/genfiles.properties | 8 + PacMan/nbproject/jfx-impl.xml | 4049 +++++++++++++++++ .../configs/Run_as_WebStart.properties | 2 + .../private/configs/Run_in_Browser.properties | 2 + PacMan/nbproject/private/private.properties | 4 + PacMan/nbproject/private/private.xml | 9 + PacMan/nbproject/project.properties | 113 + PacMan/nbproject/project.xml | 28 + PacMan/pacman_beginning.wav | Bin 0 -> 46592 bytes PacMan/pacman_chomp.wav | Bin 0 -> 15892 bytes PacMan/src/Main_Package/Audio.java | 81 + PacMan/src/Main_Package/Control.java | 40 + PacMan/src/Main_Package/Main.java | 463 ++ PacMan/src/Main_Package/Map.java | 146 + PacMan/src/Main_Package/Player.java | 69 + PacMan/src/Main_Package/Tile.java | 79 + 51 files changed, 10636 insertions(+) create mode 100644 PacMan/build.xml create mode 100644 PacMan/build/built-jar.properties create mode 100644 PacMan/build/classes/Main_Package/Audio$1.class create mode 100644 PacMan/build/classes/Main_Package/Audio$2.class create mode 100644 PacMan/build/classes/Main_Package/Audio.class create mode 100644 PacMan/build/classes/Main_Package/Control.class create mode 100644 PacMan/build/classes/Main_Package/Main$1.class create mode 100644 PacMan/build/classes/Main_Package/Main$2.class create mode 100644 PacMan/build/classes/Main_Package/Main$3.class create mode 100644 PacMan/build/classes/Main_Package/Main$Direction.class create mode 100644 PacMan/build/classes/Main_Package/Main.class create mode 100644 PacMan/build/classes/Main_Package/Map.class create mode 100644 PacMan/build/classes/Main_Package/Player.class create mode 100644 PacMan/build/classes/Main_Package/Tile.class create mode 100644 PacMan/dist/PacMan_2.html create mode 100644 PacMan/dist/PacMan_2.jar create mode 100644 PacMan/dist/PacMan_2.jnlp create mode 100644 PacMan/dist/web-files/dtjava.js create mode 100644 PacMan/dist/web-files/error.png create mode 100644 PacMan/dist/web-files/get_java.png create mode 100644 PacMan/dist/web-files/get_javafx.png create mode 100644 PacMan/dist/web-files/javafx-chrome.png create mode 100644 PacMan/dist/web-files/javafx-loading-100x100.gif create mode 100644 PacMan/dist/web-files/javafx-loading-25x25.gif create mode 100644 PacMan/dist/web-files/upgrade_java.png create mode 100644 PacMan/dist/web-files/upgrade_javafx.png create mode 100644 PacMan/lib/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar create mode 100644 PacMan/lib/junit_4/junit-4.12-javadoc.jar create mode 100644 PacMan/lib/junit_4/junit-4.12-sources.jar create mode 100644 PacMan/lib/junit_4/junit-4.12.jar create mode 100644 PacMan/lib/nblibraries.properties create mode 100644 PacMan/manifest.mf create mode 100644 PacMan/nbproject/build-impl.xml create mode 100644 PacMan/nbproject/configs/Run_as_WebStart.properties create mode 100644 PacMan/nbproject/configs/Run_in_Browser.properties create mode 100644 PacMan/nbproject/genfiles.properties create mode 100644 PacMan/nbproject/jfx-impl.xml create mode 100644 PacMan/nbproject/private/configs/Run_as_WebStart.properties create mode 100644 PacMan/nbproject/private/configs/Run_in_Browser.properties create mode 100644 PacMan/nbproject/private/private.properties create mode 100644 PacMan/nbproject/private/private.xml create mode 100644 PacMan/nbproject/project.properties create mode 100644 PacMan/nbproject/project.xml create mode 100644 PacMan/pacman_beginning.wav create mode 100644 PacMan/pacman_chomp.wav create mode 100644 PacMan/src/Main_Package/Audio.java create mode 100644 PacMan/src/Main_Package/Control.java create mode 100644 PacMan/src/Main_Package/Main.java create mode 100644 PacMan/src/Main_Package/Map.java create mode 100644 PacMan/src/Main_Package/Player.java create mode 100644 PacMan/src/Main_Package/Tile.java diff --git a/PacMan/build.xml b/PacMan/build.xml new file mode 100644 index 0000000..7397317 --- /dev/null +++ b/PacMan/build.xml @@ -0,0 +1,53 @@ + + Builds, tests, and runs the project PacMan_2. + + + diff --git a/PacMan/build/built-jar.properties b/PacMan/build/built-jar.properties new file mode 100644 index 0000000..457dc8c --- /dev/null +++ b/PacMan/build/built-jar.properties @@ -0,0 +1,4 @@ +#Wed, 25 Sep 2019 19:27:57 -0700 + + +C\:\\Users\\Gamer\\Documents\\NetBeansProjects\\PacMan_2= diff --git a/PacMan/build/classes/Main_Package/Audio$1.class b/PacMan/build/classes/Main_Package/Audio$1.class new file mode 100644 index 0000000000000000000000000000000000000000..18aa92c5b2920f0bbe9171c77be7e24ebcb02000 GIT binary patch literal 774 zcmaJ<*>2N76g|_Jm>3sA8&cNLLVzr7oJfclP!TF1Atk7YDzDYlnYKe6yYj;F0eny; zC>0NU0KWp?fH>ns<)IOleCIC5=iGZeKmUCH0pKAzC6sW}frDEPuA^3bdi3ja?c~jG z2e+|o%!)C0Y}~a`7bvFtI;nRBD*b`f;r6EV59FTmo@FB)J!buh4t2UNu+*3ZXbuIe zjcB9rI%fSHAU4i zwqb;vw^0`R>ZLa1PTpbXoqR8;{UY>(DAD2GK&AW9$i_Vv_fd6m0j`UA<2^vbM$<(L zZ5OL1vxX|?K09{3C$MOUy)4y%x24Bsq~w4TodpY&4g>jV`-2P!aHQ|6gbVF*rH^K> ztZ%4yKYEF;LgkIsNK0>E>?V0s%%N-lM^G|R=`aeiF&AMqp67qTbipV|qeCq75;(jM zqFgo`pf|^N9v8t~(OYM1GES@g6{7VGb4NL*Oj{%dXyP($b%MeIDvXHF*#r?+SetO| zqL6>F+WG=F^bdR81|`m{?xPosa0`~yld>OgC%%aK^JZGa&>pYJ5?{RZsxd( SYdkGp?i*Old*VKL^7#w?K%w#g literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Audio$2.class b/PacMan/build/classes/Main_Package/Audio$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5054d3bde5c4349640612bb3af81cba8ab4c25a6 GIT binary patch literal 773 zcmaJr{~;zJ3s$iTmo3ZLJ1{2aNyvfgL|kJ-yZ+^UOoT# z+rcBu7&B|kV;fIw_zcDLKx%)Hq0(w|sdlz_c*yrfu$FaY{EF(YrIP6?!&Ge;V6MYp zHRG;exYd$Me8_scBH8A<5oIP?amb?%Po#+lNy`W_xbKw`Ni*VF3ktm<cUdybloITv*_ zT+Exy3wSj5^|AeBhDk#lWT}jTZP_y;=|h_6I+$VfDB|CC1W&0c9)?0|e`%36`f~Wj zT84S=YoJ4+M9>pm$%D4BTSOxgnz{Oa1Vc%Sv=c{JkM>~I*7KiWnxIIh@eyX|4mflj zSh;K#K;8(w} VV;XnqwCHZ%$7J3U?SoEw{sI%bq4xj) literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Audio.class b/PacMan/build/classes/Main_Package/Audio.class new file mode 100644 index 0000000000000000000000000000000000000000..beaf1da7ad6edb5398a2bf65235a4f7bff575740 GIT binary patch literal 2132 zcma)7TUQ%p6x|aDlT60~NgzNGp#=@JGEi%&g00*Qgh08ZrdH#SOkp6IiJ3`@Z@&2C zpYSKxwc6m4wS4f=U*cN&8(i*hCKqa9X&%n`F6ZpC&t<;+{`W7x0=NSwj8Uu#@tJ}# zBxS70SPvnkAczei(h4@QrJx-f!t9}pZ3QZJLf94iJs~neJnDGx;?M7get!6uxc^*; ztPqc7e4!wYCo;Ya;VT9G*a$K>e{Fx%7o9(fK+J=y`G~YK4Ov^H@gPdbm zt%8K%OU<{6`nN`fPT}SG-3EHt(A|cs@@PJ_-ndYn>&4^7O~;&RneKfFZHe)Wg!V3oM-2{TrPYU=~NgT==nxSYgL-Gj_3BVrSbEOWwC2=1M~R;`yOZ z)X5(jg=*25cUR04qp+>J^d6{Z(<+%a*lTM7Gt_XA(0_^Dc!n>@DBm=o0|C)@t^#7X zJk3seniJ<~Hr3PYE42(sOd#bncfS!qqW*5;6m1h{XwRM@n2mItLarfHL--WRD_r4? znw@xwE2ntt6#^~8tFIe&HVivGL+Mh(uGbB_Uw8~}Qx1_K5apxX!*wr5vJb0#G&8t{ zG6wMhZ&jZ&ANdct;|JW#=P}y6yJ332JThbTfMMRZ&ESnt1Rm|ZNra4HI`&n z#4AA_)AYDYEk-KDQcE@TwxTKI5B}xK*g99f9-*$c6Pcc~-Xk5G$W+*khqU;nM& literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Control.class b/PacMan/build/classes/Main_Package/Control.class new file mode 100644 index 0000000000000000000000000000000000000000..d16a8e8e0906a41ad214ca6a1b4804cdd0bfd37d GIT binary patch literal 1894 zcmaJ?YjfK~6g_LZR->qnahkqpLMQ>8q*N`0@^A^Xu1iDg)>I)7D1?o?O;pR0M^ZBN zAL2WmA!XVbegMO7Vz|3fZ7F#CMfvW;f`OGO ztm0~gtRL$52x~emKc2!(e4^u1e5T`b)HK}E@C8G$&+QiX80MNS?s&UxZg=^^#Po9~fG?>a< z8}3E&5SIMbB%M>riQ(+fAr-`6^aH2IgMkW2d!=9)F1oz8*WpVi$t+!GSR2tv#bmQN zUjHyMH^rcFB)mxRDs;tw4l_T|k>Lyxv%92wqL*&@hk-5bIZ{z05#^fH!@yb0G0cuB zrhyV>G^`u=5?_&~cYHqzqk#8YB0BIp;Y<;?%eX^By^OmC8n~z7YXkSOVc;8VYG@j0 z;em#S2HKd@@U4MIut={=wuBC4kc3Q^d;8|Yy{E#C7~ag(EGr1Z^k!pcxBaMLS&h34 z7ha1Zq+F&FZEMgMH62^{j^X@J@{|Lqs#6P4$rp#__=04UDfNp7-0MgQZ;X6X)mt7z z;J%8GjZw)QMO{CJ67O^rQ7TO&0*0GI^xyTNezb;9u=!{dwuptiAHKO}upm9z$7Bp?k)ka69q?dNZbbqm_nV=mBZ^e)q6X_j$wfL{N8m7z*l* ze_{pWdz9eCH#V+CxD*G*y&t<-QQ&y{>77jANdGaY6OD1o$-r^7GRSrAx|S0OdUkgi z-u<6GR7V&@+6-*yqz%JIZFi^6P!mNcE%$b-svA~dydNM3;F-$ov zF4e^ecl-QW)U;El<9(@Q)LdVVO? zbxTA&|I);wjU_DGNW-*|LEgp+R;k002Fu$N)hx9^B)wWk-saok89+vD?+-?t(_P)LQ+3pKgTLfB1J=CxtuPMb_x13$b!10U4wib zv8o%dVAVGyo@2}y*)(B*2iRnbzbK4jl03r4Y>W^&pT6c9zLSfpJp<>DPg48aR2N&_L$7c(p)T`9X{cR~Cg=!1#3 zsEN_UglN(D;1BRe8P8d3sVQNTnK}1!_WNdj{r>S2z&T9Dp`(|#3~yNtjWAg1)6j!{ z-Uc)bBFEBDlyVUB?oGxp9K(n}LrHr6f@Q7>h#7&zrYxn`U29FcPv(8Oq6CupM{-j> z+{$^Z=K|}Pz#)!YF$H?6epA^hXG(ihdbyjfTrXOtH|5yA+VVNUFIrxDNT4-8D=quM zoHSRtAS>)1w`|Lw5V)J!$6xJHGegyOP~YsLKxE2UrXOj_TeiBhv9_e#1-VorOH1A{ zWoc2m7V8ybgy$5{Z`-zVrwATTk=j;2RCUkYWwCPBoSw{<6b+qGxjw5K& zaS@kvT*j3c#&nG1s*VX>kD*b zsu@iqJ}vtyKhvrO+e*5?}Tkj{l%jT>nT47_;0+L zynt~(xY3!t`47G$I7JVpk)B3`7NHCz5)6KD68^zSjF2}(s~sH>I7(6h;UK5e=qp1Q z{bhuVfil9zH$;qh8PS~}rIU6oNPSAhp5a(fgiCeeI8M;X5;ve{h?7WF%73BaVe%D> zuMppHDDoP&NDTc|W4mY|DH`8?j--*IZfvI&-bH*T#V(bEw*3;VbzUkOrj~#~g8?sa z7_UfwgKoS*V~pVs@Q*UiUQAj;qRH*dd^Yo)*_+*;zrLRXc#H=nEaI9A7gd*{C4<*(EE~9C z%uQozHg4HiVW$T4z{VX9t7v$*1kXbgYaZ_69z)egT8isIYbWld;jk@* zinfv@PCVQ@MhXEG6EOESH{89K~nauhA}^_QQo7{fJJhX$`pfEXSDL2x literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Main$Direction.class b/PacMan/build/classes/Main_Package/Main$Direction.class new file mode 100644 index 0000000000000000000000000000000000000000..b7562e66b7ff7dee9a0b1829688ecf2eb43c02bd GIT binary patch literal 1123 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 VKm+`66BY16KAq1nYb*JTzX0f)a~uEw literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Map.class b/PacMan/build/classes/Main_Package/Map.class new file mode 100644 index 0000000000000000000000000000000000000000..67545a258ef422805c8e725e1c7a00053ac152fb GIT binary patch literal 3234 zcma)8TT@%t75?_o1AS^UM79YOFR7qeQ19`U-M$Ob-%qO!BOfoX3p%r z*4}G>`&(F?`F1aU|WR-}?tQ0I5yL&5J&?V^T^}a(G3@ zw2mWEyrd)LLknJ&!(|^aUX#*{9A@QUxlacam_nQLA&q%?RYrm@=*SAVuIJ~=IRP;& z&^)kQD3z^3dD2>}WE?!%A>hts^4VOOmZh|{m=Q1r&c(;ar)LI6FOE!bxv)H+DG3Bq zsl){>ocrV_(ye*Kvh+CzmV5bmlD6 zfNw*dT{89tofv+QE;5b$cbV%tiLJVy~P7%exlQ<&aZ&;TR zkw>o?D57MbjEaF(#0*@=nt|8l@CKH3ylLPD-ZF3#aRYDT9bO<=Rl_zqcO{c%ss_t-l~_&b93MS%wpwS-@TE=`nxmMV6L_3P%$_f!R4W>l1AMT2Y06r>TCF}_BFi;r zm1?+(%IK;^*0zvUGmUJxQOS%hun(}TAC`))sdK{dXq8uE}&#drTfRGdtA$6rSd+)AkvJId)R(BZkJ=9cjM<@f&3q z;pkJVhv6bxl=@>;D?E#%)Fcmi3+oJBh}E#2d<^jm3K}GoTP=1f7^7-XgAsTR z&vQi*8G~0{5s3a4+72AimX-jV{C42pqtyc0gS+TN4EuR{k6K`tS^(Yn22llnOX}2m zc}`N>7n%MTx^w;xbduEfNLKwlM!%2Si0<1ZdK@RJM8)?=)Jdq#$X$3MX2%_P)#!_u zZ46<=A+gO4v*R-u+8s1IdMW=DOOC#foM(7%bEv!H4``VVbwnw3-Ns{T_WT6RN-*79 zB)JWzL#cPMFZsU)W(}y@u>*5z-66Ige6+4{yd}fsP@(VPFCK7;eEsyS6($0F$sjYS zk2!Ff;W>jBFo-1#;T;U)2h?wI{WeBb6e2wNJmzQaOHx#6ujC(vKdN~gxvCc=DVcAGvw{`LvG ztRMIM__-h3R7R+nhs-XDJx=qmAGgdlDZBjm+>cMqqf&AE@jLUT`LvXE#|cl+!$i== z94EX%uar(p#zAj)(9^wxR_7L8v@h)6L}&C_SrI|$n#gSgJ=Ix`8){&UY>U5A+=Fp# zp~t>Jm`JpZ)%2A(@7a&FG8G?!<9Y;~-Ub}~p*ZfZ#=++eI4qKj_JzQ0#O?b2+c;h= z@>v#Q^r-CuvuU;-J1GVbQlny!v)UGZs0wcdP23By!wj$&O=^Rx@VrQ96RPk$vdrpbNvYbzo3tOZKgC(d2etQc zmXZTUw71x=;_OY&Y1eR$k_)}sJiUwa$7Wc21us+5RY&Sa(*q>nRsH9@j>H!})uX)P aJ}%tHQ2m>`k8}4CzlUhG$y`vKWaPicYJa8x literal 0 HcmV?d00001 diff --git a/PacMan/build/classes/Main_Package/Player.class b/PacMan/build/classes/Main_Package/Player.class new file mode 100644 index 0000000000000000000000000000000000000000..5822098b6b086da9d6d2377938b2a6cb98774963 GIT binary patch literal 1164 zcma)5?M@Rx6g{)uvUFJ~AA*$+6%lQVvVKuPj0TGuk|HD+lwW38m$F#4&338f349s< zXcQBF_y9hX@yu=mE!M;)Gk5Ntd(S=h%=XvsA3p)y$3qh)rc+4an%ZVkxQ-hpvdAen zZ(-vG`Uu}j<^m4hDvMF^WSbr=e;bu_L{6M3G_Vjd@p<~kjUn?1oUF{ zohy(odA|Gd@LfxSO7Z~XT-l)hUHz2lNcEdLjGFj;L z$kDT_Ipy(cI}Xw$>oxho7szHy`?4W-n|9rCeb;uR-;j0tMIdW?o>MPY{m^ZOONyvg zb_8brD_y|ctR4oA``lBL^u_$d35##jOa3eB!azihAX?7L1Vkm(quM(IPlSglk8ioX4h+J6^OL9ieiRdpWk$|P|L6*IBBGMVVkB=HxM1u|Lu2NNZ>Vls(Kt+4{?rp7AF zet~|BW~h+^V{L=v-}@6z3&Tej=VwIi>g5O=D6wWg3b^zCDphoO~K z+pD}=x19rf&$ZTr@M8si&uzR_h!u*gsV`OEvsUklS8>;lKJ2=+%~th+m8xU=TXxM8 zKMd-PvR79ayjXeD^WCuSwu0f+-<)w|6SC~8yNz~CFYE+Cr)*dD+>m{Wq?TF(^f+bL zIiTZvb+1}c=-y~>hE@A8WRZB{RlLSCg=C>r+9?&cf?NmHIQ=^I$K4lKI|mIP=a9Eb*#5Fw7xvuG7<-24vpl?M%@#6%Dr#u(3;)(05J z1U)4K5Id8#&gAjPIX9C6l>Jn20{Y7gVe zc)|De5|b#g(JRbgHQ+PfYIP=~6+C*G)(W1zyag+eR%Wr}KgYU4w;0mhlnHn@dMVvD Xvux09t%KRxxy_7*OcYGk)Ntn?6Kk-W literal 0 HcmV?d00001 diff --git a/PacMan/dist/PacMan_2.html b/PacMan/dist/PacMan_2.html new file mode 100644 index 0000000..5e0e7c8 --- /dev/null +++ b/PacMan/dist/PacMan_2.html @@ -0,0 +1,45 @@ + + + + + + + +

Test page for PacMan_2

+ Webstart: click to launch this app as webstart


+ + +
+ diff --git a/PacMan/dist/PacMan_2.jar b/PacMan/dist/PacMan_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..c8f55f46fb5a589746bc1063c7e98e72c5308375 GIT binary patch literal 15312 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 + + + PacMan_2 + Gamer + null + + + + + + + + + + + + diff --git a/PacMan/dist/web-files/dtjava.js b/PacMan/dist/web-files/dtjava.js new file mode 100644 index 0000000..b77ecd7 --- /dev/null +++ b/PacMan/dist/web-files/dtjava.js @@ -0,0 +1,3958 @@ +/* + * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + */ + +/** + The Java Deployment Toolkit is a utility to deploy Java content in + the browser as applets or applications using the right version of Java. + If needed it can initiate an upgrade of user's system to install required + components of Java platform. +

+ Note that some of the Deployment Toolkit methods may not be fully operational if + used before web page body is loaded (because DT native plugins could not be instantiated). + If you intend to use it before web page DOM tree is ready then dtjava.js + needs to be loaded inside the body element of the page and before use of other DT APIs. + + @module java/deployment_toolkit +*/ +var dtjava = function() { + function notNull(o) { + return (o != undefined && o != null); + } + + function isDef(fn) { + return (fn != null && typeof fn != "undefined"); + } + + //return true if any of patterns from query list is found in the given string + function containsAny(lst, str) { + for (var q = 0; q < lst.length; q++) { + if (str.indexOf(lst[q]) != -1) { + return true; + } + } + return false; + } + + /* Location of static web content - images, javascript files. */ + var jscodebase = (function () { + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PacMan/nbproject/private/configs/Run_as_WebStart.properties b/PacMan/nbproject/private/configs/Run_as_WebStart.properties new file mode 100644 index 0000000..86ae865 --- /dev/null +++ b/PacMan/nbproject/private/configs/Run_as_WebStart.properties @@ -0,0 +1,2 @@ +# Do not modify this property in this configuration. It can be re-generated. +javafx.run.as=webstart diff --git a/PacMan/nbproject/private/configs/Run_in_Browser.properties b/PacMan/nbproject/private/configs/Run_in_Browser.properties new file mode 100644 index 0000000..f4e8549 --- /dev/null +++ b/PacMan/nbproject/private/configs/Run_in_Browser.properties @@ -0,0 +1,2 @@ +# Do not modify this property in this configuration. It can be re-generated. +javafx.run.as=embedded diff --git a/PacMan/nbproject/private/private.properties b/PacMan/nbproject/private/private.properties new file mode 100644 index 0000000..5b5cdba --- /dev/null +++ b/PacMan/nbproject/private/private.properties @@ -0,0 +1,4 @@ +auxiliary.org-netbeans-modules-projectapi.issue214819_5f_fx_5f_enabled=true +# No need to modify this property unless customizing JavaFX Ant task infrastructure +endorsed.javafx.ant.classpath=. +user.properties.file=C:\\Users\\Gamer\\AppData\\Roaming\\NetBeans\\8.2\\build.properties diff --git a/PacMan/nbproject/private/private.xml b/PacMan/nbproject/private/private.xml new file mode 100644 index 0000000..0fa0239 --- /dev/null +++ b/PacMan/nbproject/private/private.xml @@ -0,0 +1,9 @@ + + + + + + file:/C:/Users/Gamer/Documents/NetBeansProjects/PacMan_2/src/Main_Package/Main.java + + + diff --git a/PacMan/nbproject/project.properties b/PacMan/nbproject/project.properties new file mode 100644 index 0000000..5c8974c --- /dev/null +++ b/PacMan/nbproject/project.properties @@ -0,0 +1,113 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=PacMan_2 +application.vendor=Gamer +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +compile.on.save=true +compile.on.save.unsupported.javafx=true +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/PacMan_2.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +includes=** +# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects +jar.archive.disabled=true +jar.compress=false +javac.classpath=\ + ${javafx.classpath.extension} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +javafx.application.implementation.version=1.0 +javafx.binarycss=false +javafx.classpath.extension=\ + ${java.home}/lib/javaws.jar:\ + ${java.home}/lib/deploy.jar:\ + ${java.home}/lib/plugin.jar +javafx.deploy.allowoffline=true +# If true, application update mode is set to 'background', if false, update mode is set to 'eager' +javafx.deploy.backgroundupdate=false +javafx.deploy.embedJNLP=true +javafx.deploy.includeDT=true +# Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) +javafx.disable.concurrent.runs=false +# Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project +javafx.enable.concurrent.external.runs=false +# This is a JavaFX project +javafx.enabled=true +javafx.fallback.class=com.javafx.main.NoJavaFXFallback +# Main class for JavaFX +javafx.main.class=Main_Package.Main +javafx.preloader.class= +# This project does not use Preloader +javafx.preloader.enabled=false +javafx.preloader.jar.filename= +javafx.preloader.jar.path= +javafx.preloader.project.path= +javafx.preloader.type=none +# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. +javafx.rebase.libs=false +javafx.run.height=600 +javafx.run.width=800 +# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects +jnlp.enabled=false +# Main class for Java launcher +main.class=Main_Package.Main +# For improved security specify narrower Codebase manifest attribute to prevent RIAs from being repurposed +manifest.custom.codebase=* +# Specify Permissions manifest attribute to override default (choices: sandbox, all-permissions) +manifest.custom.permissions= +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +platform.active=default_platform +run.classpath=\ + ${dist.jar}:\ + ${javac.classpath}:\ + ${build.classes.dir} +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/PacMan/nbproject/project.xml b/PacMan/nbproject/project.xml new file mode 100644 index 0000000..8a2f98c --- /dev/null +++ b/PacMan/nbproject/project.xml @@ -0,0 +1,28 @@ + + + org.netbeans.modules.java.j2seproject + + + + + + + + + + + + + PacMan_2 + + + + + + + + + .\lib\nblibraries.properties + + + diff --git a/PacMan/pacman_beginning.wav b/PacMan/pacman_beginning.wav new file mode 100644 index 0000000000000000000000000000000000000000..5303fb1048f96f5c291067c4a8bbeac3acc6f0c6 GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/PacMan/pacman_chomp.wav b/PacMan/pacman_chomp.wav new file mode 100644 index 0000000000000000000000000000000000000000..993b08ead95aa8b78dc270aefdca7edb26cf26b8 GIT binary patch literal 15892 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 SN`!`PgIY_3Ty~1brT#zE2F< + { + if(keys.getCode() == KeyCode.ESCAPE) + { + primaryStage.close(); + System.exit(0); + } + }); + + + } +} diff --git a/PacMan/src/Main_Package/Main.java b/PacMan/src/Main_Package/Main.java new file mode 100644 index 0000000..cb2b917 --- /dev/null +++ b/PacMan/src/Main_Package/Main.java @@ -0,0 +1,463 @@ +package Main_Package; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.logging.Level; +import java.util.logging.Logger; +import javafx.animation.AnimationTimer; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.canvas.Canvas; +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.Pane; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.stage.Stage; + +/** + * TODO add smoother movement + * add sound + * add enemies + * add a pause screen + * add a main menu + * add a map maker *OPTIONAL* + * add special fruit + * + * + * @author Simon Dao + */ +public class Main extends Application +{ + //variables + private final int width = 700; + private final int height = 700; + private final int velocity = 1; + + private final String title = "Pac Man!!!"; + + private boolean running = false; + private GraphicsContext gc; + private Scene scene; + + private Player pacMan = new Player(); + private Control control = new Control(); + private Audio soundPlayer = new Audio(); + + // red green yellow color for the map + private int r = 2; + private int g = 3; + private int y = 4; + private int b = 5; + + private int count = 0; + + private enum Direction {up,down,left,right} + private Direction oldDir; + private Direction dir = Direction.right; + + private int[][] GOOGLE_MAP = + { //12 + {1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,0,0,0,0,0,0,0,0,0,0,0, 1,b,1,0,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,0,1,1,1,1,0,1,1,1,1,0, 1,b,1,0,1,1,1,1,1,0,1,1,1,1,0,1}, + {1,0,1,b,b,1,0,1,b,b,1,0, 1,b,1,0,1,0,0,0,0,0,0,0,0,1,0,1}, + {1,0,1,1,1,1,0,1,1,1,1,0, 1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1}, + {1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1}, + {1,0,1,1,1,1,0,1,1,1,1,0, 1,1,1,0,0,0,0,1,0,1,0,1,0,0,0,1}, + {1,0,0,0,0,1,0,0,0,0,0,0, 0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,1}, + {1,0,1,1,0,1,0,1,1,1,1,0, 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,0,0,1,0,1,0,0,0,0,0,0, 1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1}, + {1,1,0,1,0,1,0,1,1,1,1,0, b,b,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,b,b,b, y,b,1,1,1,1,0,g,g,g,0,r,r,r,r,0}, + //5 + {0,1,1,1,1,0,r,r,r,b,y,y, y,b,1,0,0,1,0,g,0,0,0,r,0,0,0,0}, + {0,1,0,0,0,0,r,b,r,b,y,b, 6,b,1,0,1,1,0,g,0,1,0,r,r,r,0,0}, + {0,1,0,1,1,0,r,b,r,b,y,b, y,b,1,0,0,0,0,g,0,1,0,r,0,0,0,0}, + {0,1,0,0,1,0,r,b,r,b,y,b, y,b,1,1,1,1,0,g,0,1,0,r,r,r,r,0}, + {0,1,1,1,1,0,r,r,r,b,y,y, b,b,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + //11 + {0,0,0,0,0,0,0,0,0,b,b,b, 1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,1}, + {1,1,0,1,0,1,0,1,0,1,1,1, 1,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1}, + {1,0,0,0,0,1,0,1,0,1,1,1, 1,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1}, + {1,0,1,0,1,1,0,1,0,0,0,0, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,0,1,0,1,1,0,1,1,1,1,0, 1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1}, + {1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,0,1,1,1,1,0,1,1,1,1,0, 1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1}, + {1,0,1,b,b,1,0,1,b,b,1,0, 1,b,1,0,1,b,b,b,1,0,1,b,b,1,0,1}, + {1,0,1,1,1,1,0,1,1,1,1,0, 1,b,1,0,1,1,1,1,1,0,1,1,1,1,0,1}, + {1,0,0,0,0,0,0,0,0,0,0,0, 1,b,1,0,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} + // 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 + }; + + private Map m; + /** + * + * @param primaryStage + */ + @Override + public void start(Stage primaryStage) + { + //setup scene, graphics and canvas + Pane layout = new Pane(); + Canvas c = new Canvas(width,height); + GraphicsContext gc = c.getGraphicsContext2D(); + layout.getChildren().add(c); + scene = new Scene(layout, width, height); + +//////////////////////////////////////////////////////////////////////////////// + //START OF GAME +//////////////////////////////////////////////////////////////////////////////// + // sets up escape button + control.setSceneControls(scene, primaryStage); + setPauseScreen(scene,gc); + setControls(scene,primaryStage); + rotateMap(GOOGLE_MAP); + reflectMap(GOOGLE_MAP); + + //draw background + gc.setFill(Color.BLACK); + gc.fillRect(0, 0, 700, 700); + + //draw map + m = new Map(GOOGLE_MAP); + m.drawMap(gc); + + //draw pac man + gc.setFill(Color.YELLOW); + gc.fillOval(pacMan.getX() * m.getScale(), pacMan.getY() * m.getScale(), m.getScale(), m.getScale()); + + soundPlayer.beginning(); + + TimerTask task = new TimerTask() + { + @Override + public void run() + { + running = true; + } + }; + + Timer timer = new Timer("Timer"); + + long delay = 4000L; + timer.schedule(task, delay); + + new AnimationTimer() + { + long lastTick = 0; + /** + * + * @param now + */ + public void handle(long now) + { + if(running == true ) + { + primaryStage.setScene(scene); + + if(lastTick == 0 ) + { + lastTick = now; + tick(gc); + return; + } + + if ( now - lastTick > 1000000000/8) + { + lastTick = now; + tick(gc); + } + } + } + }.start(); + + primaryStage.setTitle(title); + primaryStage.setScene(scene); + primaryStage.show(); + } + + /** + * Draws background and pacMan + * sets movement + * checks which fruits have been in the path of the player and removes it + * + * @param gc + */ + public void tick(GraphicsContext gc) + { + setMovement(); + setCollision(); + + m.drawBackground(gc); + m.drawMap(gc); + + cherrySound(); + + gc.setFill(Color.YELLOW); + gc.fillOval(pacMan.getX() * m.getScale(), pacMan.getY() * m.getScale(), m.getScale(), m.getScale()); + + // turns any node in pacMan's path to set hasFruit as false + m.getNode(pacMan.getX(), pacMan.getY()).changeFruit(false); + m.SubtractCherries(); + } + + /** + * *DISCLAIMER* + * + * the reason why this method is here is because + * the integer[] map shows up rotated 90 degrees clockwise and inverted + * on screen so this method counteracts that transformation + * + * ////////////////////////////////////////////////// + * @param mapy + * @return + */ + public int[][] rotateMap(int[][] mapy) + { + int N = mapy.length; + + //turn counter clockwise 90 degrees + for (int i =0; i < N/2 ;i++) + { + for (int j = i; j < N - i - 1; j++ ) + { + int temp = mapy[i][j]; + mapy[i][j] = mapy[N - 1 - j][i]; + mapy[N - 1 - j][i] = mapy[N - 1 - i][N - 1 - j]; + mapy[N - 1 - i][N - 1 - j] = mapy[j][N - 1 - i]; + mapy[j][N - 1 - i] = temp; + + } + } + return mapy; + } + + /** + * + * @param mapy + * @return + */ + public int[][] reflectMap(int[][] mapy) + { + + for (int j = 0;j< 12 ; j++) + { + for(int i = 0; i < (mapy.length / 2); i++) + { + int temp = mapy[j][i]; + mapy[j][i] = mapy[j][mapy.length - i - 1]; + mapy[j][mapy.length - i - 1] = temp; + } + } + return mapy; + } + + //controls + /** + * sets up the controls for the game + * + * @param scene + * @param primaryStage + */ + public void setControls(Scene scene, Stage primaryStage) + { + scene.addEventFilter(KeyEvent.KEY_PRESSED, keys -> + { + //up + if(keys.getCode() == KeyCode.W) + { + // if node to above is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()-1).isWalkable()) + { + dir = oldDir; + } + else + { + dir = Direction.up; + } + } + + //left + else if(keys.getCode() == KeyCode.A) + { + // if node to the left is not walkable + if(!m.getNode(pacMan.getX()-1, pacMan.getY()).isWalkable()) + { + dir = oldDir; + } + else + { + dir = Direction.left; + } + } + + //down + else if(keys.getCode() == KeyCode.S) + { + // if node below is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()+1).isWalkable()) + { + dir = oldDir; + } + else + { + dir = Direction.down; + } + } + + //right + else if(keys.getCode() == KeyCode.D) + { + // if node the right is not walkable + if(!m.getNode(pacMan.getX()+1, pacMan.getY()).isWalkable()) + { + dir = oldDir; + } + else + { + dir = Direction.right; + } + } + + }); + } + + // sets up what action pacman will take when a certain button is pressed + // sets up collision + public void setMovement() + { + //movement + + oldDir = Direction.right; + + switch(dir) + { + case right: + oldDir = Direction.right; + pacMan.setX(pacMan.getX() + velocity); + break; + case left: + oldDir = Direction.left; + pacMan.setX(pacMan.getX() - velocity); + break; + case up: + oldDir = Direction.up; + pacMan.setY(pacMan.getY() - velocity); + break; + case down: + oldDir = Direction.down; + pacMan.setY(pacMan.getY() + velocity); + break; + } + + //checking collision + // if pacman is going right + if(dir == Direction.right) + { + // if the node to the right of pacman is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()).isWalkable()) + { + pacMan.setX(pacMan.getX()-1); + } + } + // if pacman is going left + if(dir == Direction.left) + { + // if the node to the left of pacman is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()).isWalkable()) + { + pacMan.setX(pacMan.getX()+1); + } + } + //if pacman is going up + if(dir == Direction.up) + { + // if the node above pacman is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()).isWalkable()) + { + pacMan.setY(pacMan.getY()+1); + } + } + // if pacman is going down + if(dir == Direction.down) + { + // if the node below pacman is not walkable + if(!m.getNode(pacMan.getX(), pacMan.getY()).isWalkable()) + { + pacMan.setY(pacMan.getY()-1); + } + } + } + + public void setCollision() + { + // go through the left portal + if(pacMan.getX() == -1 && dir == dir.left) + { + pacMan.setX(27); + pacMan.setY(pacMan.getY()); + + } + + // go through the right portal + if(pacMan.getX() == 28 && dir == dir.right) + { + pacMan.setX(0); + pacMan.setY(pacMan.getY()); + + } + } + + //sees if the current node has cherries and plays a cherry eating sound + public void cherrySound() + { + if(m.getNode(pacMan.getX(), pacMan.getY()).hasFruit()) + { + soundPlayer.play_eat(); + } + } + + public void print(String thing) + { + System.out.println(thing); + } + + public void setPauseScreen(Scene scene, GraphicsContext gc) + { + scene.addEventFilter(KeyEvent.KEY_PRESSED, keys -> + { + if(keys.getCode() == KeyCode.P) + { + count++; + running = false; + + if(count % 2 == 0) + { + running = true; + } + gc.setFill(Color.ORANGE); + gc.fillRoundRect(160, 260,390, 60,30,30); + + gc.setFill(Color.RED); + gc.setFont(new Font("Courier New",50)); + gc.fillText("GAME PAUSED", 190, 305); + + System.out.println(running); + System.out.println(count); + } + }); + } + /** + * + * @param args the command line arguments + */ + public static void main(String[] args) + { + launch(args); + } + +} + diff --git a/PacMan/src/Main_Package/Map.java b/PacMan/src/Main_Package/Map.java new file mode 100644 index 0000000..59753d1 --- /dev/null +++ b/PacMan/src/Main_Package/Map.java @@ -0,0 +1,146 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Main_Package; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +/** + * + * @author Simon Dao + */ +public class Map { + + private final int width = 28; + private final int height = 28; + + private int scale = 25; + private int CHERRY_COUNT = 0; + + private Tile[][] nodes; + private boolean[][] fruit; + + /** + * + * @param scale + */ + public void setScale(int scale) + { + this.scale = scale; + } + + /** + * + * @return + */ + public int getScale() + { + return scale; + } + + public void drawBackground(GraphicsContext gc) + { + gc.setFill(Color.BLACK); + gc.fillRect(0, 0, 700, 700); + } + + public int SubtractCherries() + { + CHERRY_COUNT--; + return CHERRY_COUNT; + } + /** + * + * @param map + */ + public Map(int[][] map) + { + // copies the map array into the tile array + nodes = new Tile[width][height]; + + for(int y = 0; y < height; y++) + { + for(int x = 0; x < width; x++) + { + nodes[x][y] = new Tile( x, y, map[x][y] == 0 || map[x][y] == 5 || map[x][y] == 6, map[x][y]); + + + if(map[x][y] == 5 || map[x][y] == 6) + { + nodes[x][y].changeFruit(false); + } + + } + } + + } + + public Tile getNode(int x, int y) + { + return nodes[x][y]; + } + + public void drawMap(GraphicsContext gc) + { + //colors + Color WALL_COLOR = Color.rgb(50, 10, 219); + Color CHERRY_COLOR = Color.rgb(250, 169, 167); + Color RED_COLOR = Color.rgb(250, 26, 46); + Color GREEN_COLOR = Color.rgb(32, 147, 25); + Color YELLOW_COLOR = Color.rgb(245, 190, 45); + Color DARK_YELLOW_COLOR = Color.rgb(185, 126, 38); + + for(int y = 0; y < height; y++) + { + for(int x = 0; x < width; x++) + { + if(nodes[x][y].getColor() == 1 && !nodes[x][y].isWalkable()) + { + gc.setFill(WALL_COLOR); + gc.fillRect(x*scale, y*scale, scale, scale); + } + else if(nodes[x][y].getColor() == 2 && !nodes[x][y].isWalkable()) + { + gc.setFill(RED_COLOR); + gc.fillRect(x*scale, y*scale, scale, scale); + } + else if(nodes[x][y].getColor() == 3 && !nodes[x][y].isWalkable()) + { + gc.setFill(GREEN_COLOR); + gc.fillRect(x*scale, y*scale, scale, scale); + } + else if(nodes[x][y].getColor() == 4 && !nodes[x][y].isWalkable()) + { + gc.setFill(YELLOW_COLOR); + gc.fillRect(x*scale, y*scale, scale, scale); + } + else if(nodes[x][y].getColor() != 5 && nodes[x][y].hasFruit() && nodes[x][y].isWalkable()) + { + CHERRY_COUNT++; + gc.setFill(CHERRY_COLOR); + gc.fillOval(x*scale+11, y*scale+11,5, 5); + } + // still has fruit but you cant see it + else if(nodes[x][y].getColor() == 5 && nodes[x][y].isWalkable()) + { + gc.setFill(Color.BLACK); + gc.fillRect(x*scale, y*scale, scale, scale); + } + else if(nodes[x][y].getColor() == 6 && nodes[x][y].isWalkable()) + { + gc.setFill(DARK_YELLOW_COLOR); + gc.fillRect(x*scale, y*scale, scale, scale); + } + String c = String.valueOf(CHERRY_COUNT); + + gc.setFill(Color.WHITE); + gc.fillText(c, 27*scale, 27*scale); + } + } + } +} + + diff --git a/PacMan/src/Main_Package/Player.java b/PacMan/src/Main_Package/Player.java new file mode 100644 index 0000000..bd61d80 --- /dev/null +++ b/PacMan/src/Main_Package/Player.java @@ -0,0 +1,69 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Main_Package; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.paint.Color; + +/** + * + * @author Simon Dao + */ +public class Player { + + private int x = 1; + private int y = 1; + + Map m; + + /** + * + * @return + */ + public int getX() + { + return x; + } + + /** + * + * @param x + */ + public int setX(int x) + { + this.x = x; + return x; + } + + /** + * + * @return + */ + public int getY() + { + return y; + } + + /** + * + * @param y + */ + public int setY(int y) + { + this.y = y; + return y; + } + + /** + * + * @param gc + */ + public void spawn(GraphicsContext gc) + { + gc.setFill(Color.YELLOW); + gc.fillOval(x * m.getScale(), y * m.getScale(), m.getScale(), m.getScale()); + } +} diff --git a/PacMan/src/Main_Package/Tile.java b/PacMan/src/Main_Package/Tile.java new file mode 100644 index 0000000..8cdbe75 --- /dev/null +++ b/PacMan/src/Main_Package/Tile.java @@ -0,0 +1,79 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Main_Package; + +/** + * + * @author Simon Dao + */ +public class Tile { + + private int x; + private int y; + private boolean walkable = true; + private boolean hasFruit = true; + private int color; + Player player = new Player(); + + public int getX() + { + return x; + } + + public int getY() + { + return y; + } + + public boolean isWalkable() + { + return walkable; + } + + public boolean setWalkable(boolean walkable) + { + this.walkable = walkable; + return walkable; + } + + public boolean hasFruit() + { + return hasFruit; + } + + public boolean changeFruit(boolean hasFruit) + { + this.hasFruit = hasFruit; + return hasFruit; + } + + public int getColor() + { + return color; + } + + public boolean checkCollision() + { + + if (player.getX() == x && player.getY() == y) + { + hasFruit = false; + } + + return hasFruit; + } + + public Tile(int x, int y, boolean walkable, int color) + { + this.x = x; + this.y = y; + this.walkable = walkable; + this.color = color; + + // checkCollision(); + } + public Tile(){}; +}