From e3a6f5b08b97ecb9bb351ec586393faf2187c415 Mon Sep 17 00:00:00 2001 From: jalitat <jalitat@jyu.fi> Date: Wed, 18 Dec 2024 16:12:35 +0900 Subject: [PATCH] yes --- .../.idea/indexLayout.xml | 4 +- .../bin/Debug/net8.0/Content/kentta1.txt | 4 +- .../bin/Debug/net8.0/platformerPeli.dll | Bin 12288 -> 12288 bytes .../bin/Debug/net8.0/platformerPeli.exe | Bin 138752 -> 138752 bytes .../bin/Debug/net8.0/platformerPeli.pdb | Bin 14128 -> 13608 bytes .../platformerPeli/platformerPeli.cs | 123 ++++++++++++++---- 6 files changed, 105 insertions(+), 26 deletions(-) diff --git a/pelikoodi/platformerPeli/.idea/.idea.platformerPeli/.idea/indexLayout.xml b/pelikoodi/platformerPeli/.idea/.idea.platformerPeli/.idea/indexLayout.xml index 7b08163..a864d88 100644 --- a/pelikoodi/platformerPeli/.idea/.idea.platformerPeli/.idea/indexLayout.xml +++ b/pelikoodi/platformerPeli/.idea/.idea.platformerPeli/.idea/indexLayout.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="UserContentModel"> - <attachedFolders /> + <attachedFolders> + <Path>../../../platformerpeli-main</Path> + </attachedFolders> <explicitIncludes /> <explicitExcludes /> </component> diff --git a/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/Content/kentta1.txt b/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/Content/kentta1.txt index 88315be..624ca0a 100644 --- a/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/Content/kentta1.txt +++ b/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/Content/kentta1.txt @@ -4,12 +4,12 @@ - ############## + ############## - ###### ###### + ###### ###### diff --git a/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.dll b/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.dll index a905ccf9bb1e853b55835e0b2a30ab1ff61c3867..afbdc27d1159a8841b7a3aec4e5d04b25d00e93b 100644 GIT binary patch delta 752 zcmXYvUuaTM9LIm>T>sUabKGG<J!s-pv&6L?#$sV8(Wux2$BML+xI^32O;@ynx?>S5 zeAwM7h>Eb6NN6;;P*4y_G3qH9t6rkAr=rLndi0@lkLL%!FXwX(=garr^Hb7FdU?q( z_*|{1l^y7^TAQ#1VgRE+D-BRFs&3J$09YyaMFA4Tjdzn1$cL_y1*#QNLldqPy`tA) z+8B%w+Xc{Y0wBt?O+=N#+8F*}?8?#|Ge9p0MKWTMwKYpyKn-ox`T}2hB+)}yfWHP2 zcZ0>(p$ir}^uQNR7qJQK(Bd@9sLkk_vuV=La)Hi01TAETc}@o?iEy1$ABfliH#tdQ z0w+99aEvp2!|4X2&zxQ|`o-xZBY}Rb9{UfY?VL<VHyzOS+nd;2$38d->%=1-9Ij&p zPeC15nZ9EBjVTEFzKdyuX_~3Rw5qH2K)h?SZ=}AL{KuoQTd;Y=*4?wN9o_j94{SwX z><@)QVE}{v<1Glf^kkh%#2a4$9UH?G@6gWD$IOzHcbgH@$HQda>ls;GogKau`E+RI z-`gdjA#Lg|(V^scSuT~6XET#>DLGn@W2M}AIT<USIhU6UbLHgBbY^a{Sjx+#8F@Ol zC!fg`NZp&*%iW|6?nV=w{`vaDllr^cwP%Uni*Y_QdcG-r?NZ$il+sQ~Ye)@SiOpYd zR0M$KG(cOA&8v;civK=JlKy}P4Qk_o_ecoS8S@2$<Y90K-P4*u7baCHu_e+OTxFlu J8){Kg^M9oIv*iE) delta 842 zcmXw&T}TvB6vzMf&VGrut*n@!4{NgP+UB-1>nf9EhC&HNs~Hj&?z--RWadXy^wJs> zB?eCSA;SuL2$Bk<DG8#Go`a}|3ZGVx2#FMWNWzEC9j7y#|J>iX=bV|#naQW}sp*>z z<F9+mn5trv#(a-A(GDC3SqdmPjcR{M9w;GhZv(nTHQy^vv064QCP)inp7jI<sYKcl zat<es?g2I{07gvi5=JOyCixF%=`cmyKq-`Zr7Yr7!lKQS<$(Fbv!$?2^Kr==esv*4 zS(w0v!_RlXSG!G@JwEKjcbl$o7kv0*)2Ky`u*|$svEq_@qjlSL4C~B?37cAo{4i`P zgP)h<zD*&xP=S}-Hg;P0!KO)zR&9D`(Qli+SX4}>maqNGq8giAOg3#c<GvN{UgNds z#k#2UA3Ctc^ZYE<_?)FnmKH39BI5x|TP;mlnzwXLs(H^p>-F_rU%WN);?uEw-?OFF zs_~y@`|d^F8)t~B(O5JV8PL?mL?)ierByYnHt4Z<zpCkaT5Hr|x}Hd9;!RpEm(c-- z9F>QmSRTQ$!<7#nfgMZIaBz`)hNeFw>VvzSUYfR7bOdXHPe1#EiTC5Jultt|b`=FC zWs|o3r$>g;7joyv&Sl3&vO|O7Rj^yLGgF&(rtE%q*)==*?Rm@F*{>aE>@P?@`jT7+ zjOubWXm*7bnDB;&%L@uHodS|{|8Ge}+zCHq3qq}{VN>SGx{pk`hJB(o5;+mU05qs* zL;@Ma$#X~(tH_c!Ku3(C{j}C-t<#=Hxf(?!C5UBJ6Gd`#Whe&G8EIx4=Iuy;7qxEx O5>pLkX>^?#G50_Jkh!S< diff --git a/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.exe b/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.exe index 700654386dcd0c9230e2f2f4c827039748727d91..8d0670fb258df5cc633208f15ffc38944e779a58 100644 GIT binary patch delta 105 zcmZqJ!_lyZV?z%kW5?!RMr$C|e3GgCBopKIlT1vrMOiXf85pJqNHB@8RRCFkn5H*L zFwJ9(nXV|wq|9is-Bpt5JR`FK1KV_QX(sLM)1;ZSn0Ws%F)%z~VE}`g>1Sn`j3+UN F002W^8%O{E delta 186 zcmZqJ!_lyZV?z%k<DJdDjMhM^`6N^ONhZeaCz+ULi?ZxtWnh>dAi*TUb_U1_V4mJ2 z!8DI?!*oSSCS}H+?XHqc=NXxs81$!$OEYN)Ycr%U7%><!m@$|#Br_NTaT-G+kZ;J4 z3dAN1mJ9|!(Ig<-2*|bs${7LG8UaN?JX0Vaq{|#Ak_LpyKrx2xjzEK%cmtRj7@n{& MfWd|7m9k960Gn_oF#rGn diff --git a/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.pdb b/pelikoodi/platformerPeli/platformerPeli/bin/Debug/net8.0/platformerPeli.pdb index dde2da44329deaabb62019ec9bf97ddd25b67ee8..de05f0eb916f46f9747bd84554de6d112f851074 100644 GIT binary patch delta 1068 zcmZXSZERCj7{{M;+S^@LR=JLn4a%tQRc!B?wHp<>vX`<K$z(Y9g%M~w?q+9qOM44S zAaL%+OBa}KJ0v6~iizN6oCq261xXAsW*<mgcu^6^8iFrT;|D-VMo4^aV}jA7zvq9R z=bZoZoZEZPs#61FzO6e<0Hyl@d}e?)z;#zT6;t~)T*5xA;SWl?yMW;$Y^+<m+e4^X z%-cMeH^mcC%!fZs*6(fju4UrkY{oQKas9Q;bMxb4@dGy8>j47&K;d1~NmP*#SV1WC zpsJ_@9==GS(?wwlnMcfS3V!4jWG^y~{DwS1+GGl!Bcz(bCgdaJ67mi509inY2d5xQ ziZK)+PNWL)AbzC5!;h2S3tq?D6@UO1yn}6Kls1!SGmZyL-**|0?!?UwS0$L>9a4#Z z#${6&D_31%wA^s9+-??Q(w)Uh+U+D3m~)4T08KK(I4OUCaY6nPV|#TL<9pRSXjb_b z=8#wD)|8Yc3`F{rl(<P%LaEqpWl<>6yK7KU(^}!qcqHAINDV5fok~3B9*o3P{)|v| zz`B)~^OqEtu4!!S#0LwWs;Q}$CbKj18^5Z0Gjd}g*fRCQFW1M)d)GhtWJY@0r4zfz zz1rfZc9wD8OcwntYdw$t*kE>)lxFVUnVtA-{Mx<P`N*~5GpB4eQzAMbgp}y6ev7K4 z{jx{q9}9Bfv;S%`%dW7i>?Z$7c&@ADKjRuTO&N^F_q3~h37q{un;vi`ha|_V>;G!2 ztS|d<%av`H0u|oV!s&xm+WFnL?<X&YXP9_lwKQ!f(+)DdhLU2x@q$WttM_G_Q5_-E zV=v%KBQ^Y_w?ZmhR6u~80bPPJ{J2RI|JGYZHuJ|`FA4K%pPjtHH~3bSTP+d+-3fN1 z+dhFnITa;XMe&0mbWhNzvO_%M3wY{*O@ZzJeH8QuFcgKMTQJ-KQtrqJblRyX8m5q7 zm`?KhzF>hst(5U?7Nc^G2Wq!0w-PJaPFpA&Sw=#6M*VB_uApK*KU@3KVk_B5-)hZu z_@4h++iXSuhaIAE?pNMi*IvGwu**arUS^Ed0j*Xl=7C5d&zPONjh@fX)%iMW8*nT< vUzd|2Z7mK12RppZ&|-GPZ)g$A<a8+;$>~aVG+@-1vt$398_nf*_O}0TGw27` delta 1608 zcmY+E2~ZPP7=YhfNC=QbA_S46tXzs>LLdTi2?kN1C<U}_43+>(j5#L>mojGKftEqU zE>+NR>J?F}6idCv(PC}UG9Ddk$Bv>PT3fNUR%wwDZU04PI?n9({^R}s``^Cn(5g;j zlU!wXK`3-BLTRoDEkd9d*eqJ3#tJIh3_kc!=+Xkz0E(H_7cR}p067M>JO=FfdQ%D5 zN3MH^&-uohcB<soynJ`Eeqq4wz1y1fb}#6QM;OgR1hRl!4e~a~A&~!Ij5q`V)}z@3 zS|B0NZr}zm3e1)gNCB9EI-nnT3e1fr&_UoCkR~J04xj_*1|9&9foH%dfTqR}$PEwz zVjvI*1!l%D&G>hL5oRYq9K?k=_;hU{6xf~sr4g8ng#C3Ay5>u!!!m4enGS&`ImO_) zC@Ds6s8>>nT#zTG$78mG9zhI%UM?MgUageGZs=QSG3Fw9G!1P_^d4v*M|VS;C>wyb zQ3fS+l+k8WBaPZXA@fQ`;acPs@P558LTk+Y>S%purs(h2%pTW_NkX$;Z7Vlf43x!8 z>9x!hPFR_n3cGp-1x1nl=Q`GClAHsm2e;|ezK7)g%S$F*-VpkWm)E{)ypb}||H*lf zEGe~4q!yDcWBTDZ9MZSmkb3`eqw5Kc*!1(hcQgBm^E-1(-&yX%9O9%+622)!@1j4W zo%H9-OU^Vq-3zlvQYo3NuCSRjl##NiZB!X4O%-@lSm6+n1vOS1Wk`D4l;l(8daBf> zH5s92x!P)_3?=%SL{bAMNv%&ze3K=~uQ1xQ21>GwvREM&#*-APEgH&}X@RAxGUZxy z={7j5B^5SmMu=qbf<lGKLZzF{Q4<*{l?jsQkSKB@-lEIUT45P#7DGCjLXM}9Y)E90 zz=H|o2HW5IOUF$zvKs$87_Q9TRbO>)#o*~X2YZ?}7jAth9_3y>F6hz~I8-m-`W$8Y zb1p=CUF`RK72KE-`DNvkz5|IH=C-~d`SHW)wWki=jBAPr%?f(;XKq`A!2ZLgh$W}b z)Sj!_k>e*^Q*>@hUG#-p?dtST<aTARaipixkZq(7HxzH;3UN~$UHs|f^nlg8kD6zA z#$0tdakkZ(o~L%<>lEGL1xoL(ru>hCRob-H^NpVOqR8fB-OpXFY#(+$S+r9)xF)M* z<JS-Rs&utq#HoBcjSbGBhr@o!1rn7^mG$diXXE8{?S=B2^IX=Ao;2-kpKb3gHy(Yc zH9XRHidR~lv#!sYTx))Pw>8YV;zmccCS~wWfpW?nS<Xm?^uU$KFptb9e>B!K8w4*^ zd1L3#TpC=Ns4m@J>hqqhwV_ArGu^%C$Li)V@3Q+x60UuCy{OW;bXn|eMN)j9$B^T> zT{^P=rFm@2t!Z{;|4*v2r|qYmqK&&=ID7VmXdUitkGOY7QgN4wdt#=j!vlASa7Pq@ z{S)BC;Q%I1mMvtxYjMZMNVu<f7Skw;5c#+ZFrtqkhZu#y#^5>3cd{^?$_&Y3mDwDO zCKEgX@+RQQW1=Pm?l;Z@uMffFAh^94ULvk5!7D{rScBORg5YyS7&&GjF<Z9?g2M@( z2nA0Jk-~aQnd+EiNh+e-ks}y6wjswTTBk+p?xXd~5c~XLE98j@9*-ST0i|#?^B^Xb z?@I6q?Fuf~bR8p&Rr>QWAD0kW1l{P1Gu&8z3uFcoJTGQ{>|8z{FCo@0Wb^4Z=C@dd zC!e4X=ki$lI1?w&3Xj6{_t>%3m#s-(f>cj}=Z1Lj0<x7w<L;}>0l7R!k_Kf_h;&@| oeUQjnfn`aom`WwE!moT>_-MvOkT#ih`mcHuq8qowdUiMd1HCxhng9R* diff --git a/pelikoodi/platformerPeli/platformerPeli/platformerPeli.cs b/pelikoodi/platformerPeli/platformerPeli/platformerPeli.cs index bc69999..16898a4 100644 --- a/pelikoodi/platformerPeli/platformerPeli/platformerPeli.cs +++ b/pelikoodi/platformerPeli/platformerPeli/platformerPeli.cs @@ -9,20 +9,25 @@ namespace platformerPeli; /// <summary> /// Platformer PVP Peli /// </summary> + public class platformerPeli : PhysicsGame { - private const int RuudunKoko = 40; - private const double nopeus = 200; - private const double hyppyNopeus = 650; - private PlatformCharacter pelaaja; - private PlatformCharacter pelaaja2; - private Image pelaajankuva = LoadImage("alpha000.png"); - private Image background = LoadImage("Illustration27.png"); + private const int RuudunKoko = 40; // Kentän ruudun koko + private const double nopeus = 200; //liikkumisnopeutta + private const double hyppyNopeus = 650; //hyppyvoimaa + private PlatformCharacter pelaaja; //pelaaja 1 + private PlatformCharacter pelaaja2; //pelaaja 2 + private Image pelaajankuva = LoadImage("alpha000.png"); //lataa tyhjänkuvan minkä heti jälkeen vaihtaa animaation kanssa + private Image background = LoadImage("Illustration27.png"); //taustakuva private Image[] idleanimaatio = LoadImages("stand000", "stand001", "stand003", "stand004", "stand005", "stand006", "stand007", "stand008", "stand009", "stand010", "stand011", "stand012", "stand013", "stand014", "stand015"); private Image[] kavelyanimaatio = LoadImages("dashFront000", "dashFront001", "dashFront002", "dashFront003", "dashFront004", "dashFront005", "dashFront006"); - private Image[] hyppyanimaatio = LoadImages("jump000", "jump001", "jump003", "jump004", "jump005", "jump006", "jump007", "jump008"); - private double jumpcount = 0; - + private Image[] hyppyanimaatio = LoadImages("jump000", "jump001", "jump003", "jump004", "jump005", "jump006", "jump007", "jump008"); //nämä kolme on animaatiot mitä käytetää + private double jumpcount = 0; //lasketaan hyppy counteri + + + /// <summary> + /// kutsuu aliohjelmat joka pyörittää sitten pelin + ///</summary> public override void Begin() { Gravity = new Vector(0, -1000); @@ -38,7 +43,11 @@ public class platformerPeli : PhysicsGame LisaaAseet(); } + + /// <summary> + /// Luo kentän teksti tiedoston symbolejen avulla + /// </summary> private void LuoKentta() { TileMap kentta = TileMap.FromLevelAsset("kentta1.txt"); @@ -48,7 +57,14 @@ public class platformerPeli : PhysicsGame kentta.Execute(RuudunKoko, RuudunKoko); Camera.ZoomToLevel(); } - + + + /// <summary> + /// Luo tason + /// </summary> + /// <param name="paikka">tason paikka</param> + /// <param name="leveys">tason leveys</param> + /// <param name="korkeus">tason korkeus</param> private void LuoTaso(Vector paikka, double leveys, double korkeus) { PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); @@ -58,6 +74,13 @@ public class platformerPeli : PhysicsGame Add(taso); } + + /// <summary> + /// Luo kaksi pelaaja (on mahdollista luoda enemmän) + /// </summary> + /// <param name="paikka">Pelaajan paikka</param> + /// <param name="leveys">Pelaajan leveys</param> + /// <param name="korkeus">Pelaajan korkeus</param> private void LisaaPelaaja(Vector paikka, ref PlatformCharacter pelaaja) { pelaaja = new PlatformCharacter(52, 128); @@ -69,13 +92,23 @@ public class platformerPeli : PhysicsGame pelaaja.AnimIdle.Start(); Add(pelaaja); } - + + + /// <summary> + /// Lisää aseet pelaajoille + /// </summary> private void LisaaAseet() { LisaaAse(pelaaja); LisaaAse(pelaaja2); } - + + + /// <summary> + /// Luodaan itse ase ja sen ominaisuus + /// </summary> + /// <param name="pelaaja.Weapon">Pelaajan ase</param> + /// <param name="Image">tehdään aseesta läpinäkymätön jotta ei menisi spriten päälle</param> private void LisaaAse(PlatformCharacter pelaaja) { if (pelaaja != null) @@ -89,12 +122,21 @@ public class platformerPeli : PhysicsGame }; } } + + + /// <summary> + /// Lisätään musiikkia ja pistetään loopille + /// </summary> private void LisaaMusiikki() { MediaPlayer.Play("Twin_Crystal.wav"); MediaPlayer.IsRepeating = true; } + + /// <summary> + /// näppäimet + /// </summary> private void LisaaNappaimet() { Keyboard.Listen(Key.W, ButtonState.Pressed, () => Hyppaa(pelaaja, hyppyNopeus), "Pelaaja 1: Hyppää"); @@ -110,26 +152,39 @@ public class platformerPeli : PhysicsGame PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); } - + + + /// <summary> + /// hahmo liikkuu + /// </summary> private void Liikuta(PlatformCharacter pelaaja, double nopeus) { pelaaja.Walk(nopeus); } - + + + /// <summary> + /// suorittaa hypyn tässä + /// </summary> private void Hyppaa(PlatformCharacter pelaaja, double hyppyNopeus) { - if (pelaaja != null && (PelaajaOnMaassa(pelaaja) || jumpcount < 2)) + if (pelaaja != null && (PelaajaOnMaassa(pelaaja) || jumpcount < 2)) //kattoo onko maassa tai hyppiny liian vähän { if (jumpcount == 1) { - pelaaja.Velocity = new Vector(pelaaja.Velocity.X, hyppyNopeus); + pelaaja.Velocity = new Vector(pelaaja.Velocity.X, hyppyNopeus); //jottei hypyn vauhti muuttuisi gravityn takia } pelaaja.Jump(hyppyNopeus); - jumpcount++; - pelaaja.LoopJumpAnim = true; + jumpcount++; //lasketaan hyppyjä + pelaaja.LoopJumpAnim = true; //pyöritään animaatio ilmassa } } + + /// <summary> + /// Ollaanko varmasti maassa + /// </summary> + /// <returns> ollaanko iha varmasti maassa </returns> private bool PelaajaOnMaassa(PlatformCharacter pelaaja) { foreach (var obj in GetAllObjects()) @@ -141,28 +196,36 @@ public class platformerPeli : PhysicsGame pelaaja.Bottom >= physicsObj.Top - 5) { jumpcount = 0; - return true; + return true; //jos ollaan maassa } } } return false; } + + /// <summary> + /// ammutaan aseella + /// </summary> private void AmmuAseella(PlatformCharacter pelaaja) { - if (pelaaja?.Weapon != null) + if (pelaaja.Weapon != null) { PhysicsObject ammus = pelaaja.Weapon.Shoot(); if (ammus != null) { ammus.Size *= 3; - ammus.Image = LoadImage("ThrowingKnife.png"); + ammus.Image = LoadImage("ThrowingKnife.png"); //ammos on puukko ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); } } } + + /// <summary> + /// katsotaan kumpi voittaa ja kumpi tuhoutuu + /// </summary> private void AmmusOsui(PhysicsObject ammus, PhysicsObject target) { if (target == pelaaja2) @@ -177,6 +240,10 @@ public class platformerPeli : PhysicsGame } } + + /// <summary> + /// PeliLopun jälkeen valinta ikkuna + /// </summary> private void ShowEndMenu(string message) { ClearControls(); @@ -195,15 +262,25 @@ public class platformerPeli : PhysicsGame exitButton.Clicked += ExitGame; Add(exitButton); } - + + + /// <summary> + /// alottaa alusta + /// </summary> private void RestartGame() { ClearAll(); Begin(); } + + /// <summary> + /// Lopettaa pelin + /// </summary> private void ExitGame() { Exit(); } + + } -- GitLab