From 97c8d5641ea5b9cf719e4ac7159be94ba0755ba3 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Sep 2026 11:11:22 +0200 Subject: [PATCH] Items werden automatisch erzeugt --- SMIMS-Game/HealthItem.class | Bin 953 -> 934 bytes SMIMS-Game/HealthItem.java | 1 - SMIMS-Game/JumpBoostItem.class | Bin 967 -> 967 bytes SMIMS-Game/JumpBoostItem.java | 2 +- SMIMS-Game/MyWorld.class | Bin 3809 -> 4269 bytes SMIMS-Game/MyWorld.ctxt | 12 ++-- SMIMS-Game/MyWorld.java | 33 ++++++--- SMIMS-Game/Player.class | Bin 4833 -> 4831 bytes SMIMS-Game/Player.java | 2 +- SMIMS-Game/project.greenfoot | 120 ++++++++++++++++++--------------- 10 files changed, 98 insertions(+), 72 deletions(-) diff --git a/SMIMS-Game/HealthItem.class b/SMIMS-Game/HealthItem.class index 417a134633166f874e65b20a969c269881721bd2..d0605f3f8887018a20196cbca9e543e4beaef54a 100644 GIT binary patch delta 411 zcmYLFy-vbV6#gy+TH4ExfS@SiFG5ipf-G#PgCq`aCT@gY#iY=rxoDV-Zy@R93%HvY z41TXEvv z4Fgh~BM~r?(jE2s!af?GJKeGHVl+!}EFjI0v4ta~XkSU;wR`e-+;ap2yA1SMjz#3i z^jgRZ*K=&5SE`fGjIo4e6$OqJtWJJf*)@jf+&Yl0b8KMKZ?d+rjU5$bj$Ksz2WFLn zWRs(YJ#w{2URU0@LyGHYIA90|o9HO|@9e7uC}4;nO4tBkQDsyk<{Q`xH6a`l24f(G zCLx~_{O?eyshU%8^A*V_7}RFy=L41Ur^=Br5J#8}q#;Q!g*?)}r8MfrDN4!=TOoX) bcvd5iYI=VP>pwF=E}+w-kV64^-&e}N^#em9 delta 368 zcmYL@O-lk%6o#Mc*o=87QKd<}gD>TB+l$i5E@_~?)899p{Y5bCD*#QwD vqY^bH8Ye^2%^USvaZ1UUvEk!`;&DZ0Sc#n})&IQ_nF49yGUUj*cSiXKDXlaQ diff --git a/SMIMS-Game/HealthItem.java b/SMIMS-Game/HealthItem.java index 315b0dc..71e633c 100644 --- a/SMIMS-Game/HealthItem.java +++ b/SMIMS-Game/HealthItem.java @@ -8,7 +8,6 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class HealthItem extends PowerUps { - int duration = 60*60; public void act() { moveDown(); diff --git a/SMIMS-Game/JumpBoostItem.class b/SMIMS-Game/JumpBoostItem.class index a241d39eb690548e192ed489dbf0752e5b0b9afb..4d1bee833798662af16f6aa1c70d84439f8a19dd 100644 GIT binary patch delta 15 VcmX@kew=;7VJ0R2;qIRvi& diff --git a/SMIMS-Game/JumpBoostItem.java b/SMIMS-Game/JumpBoostItem.java index 5188430..b0f9bfc 100644 --- a/SMIMS-Game/JumpBoostItem.java +++ b/SMIMS-Game/JumpBoostItem.java @@ -8,7 +8,7 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class JumpBoostItem extends PowerUps { - int duration = 60*60; + int duration = 60*5; public void act() { moveDown(); diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index a4bd82265b6408b5db6dd4c1933a0ee105aa63d7..5119473bdac4f84aad35c9ba4a6b81dabfa26aef 100644 GIT binary patch delta 2132 zcmZ`)X;4#F7(F)&4;}#m3W}I0D%D0&3u@h}h^k)w+N_ zSE|*xwzk?*6|B^yi`M$9GyT~aXF8pB+MoT?A38cc_a!V2Q-=56efQk^&iT&w-7mk{ zu4Jo^p5M9yU=AL&tA87Ysffoi3zj2OK&`JUYph)u^7`u&IK9$>RoYWSW?~suD=4?X z1FtsBSRkr2w{c*i53`IAJ1;7z)xyS%uphG&tQANpuJcuUJw-KTq0pK@(66Env*h%H_+A?y_lxO)K#n$1v8$t;fk1Uboq~s2u99z7 zsC1R)Rfc8LB90+bqd(L2XFTW=GI?*)PASu7e?-gppcWGm!YkN}JmxDOhcJl*lko|rpdGK`Hm2eMrr~Ey$FG=yKQR;kU^bqhK$tN{ zB%@GdVs2QB!0RFx^TZs?*VS&6v5LZ&+ITS?r*Vc6WQoy8M}+$GMGDSxWTc>faSrEU zqKx~vz>%3kzQje2;wa-FE^(w#NE3yfXMj(z0H5MA5-4C2KEue%P$^+JKIdd2X|6=g zp@hf$tdUQfwnue^JMg~aI##qH%h82gS0^Tc)=}&8ZaD1jgV#hLalgx&*NH&C?J>B{W%YC- z*avQBmW_}Z53)3Xw^%SvmcwGk|2Fen#GJmvyuFJ;6w{~@qVI8b2};5!W$Kr*C%KsZ zWvtBQ>;)@%GFPDmWz0r7-SpxvD)1A0c#LZN1wWo4AY=y`ih4b}!=skQvOAo(%&8#h zA9_v=xJqHEPzFDf4Q>Sgb8L3IJnY;>QfD~BiQ0F z@->bbxXcwY)aajqk1Sr(c$Icx9aFg8=@{$izy_8Sj<$1l z2aVjVo8(|{1<1e`EM>t}8E6mVD^`9JkLNX9mmZ=u=ArZ}4yLI#+Yl~Z((MslHFF2B zSbEefJ!+;$&8gyiL`JyNrHjwgBhPg60{sA7IV2U=fd?Y&#jGpUmpIfes3zkUoOV5Kp;K(27`2*+fjb-h8T5+AyjM`{?ok zDoGXNZW`d$oJrZmy*=+R&-D>@yQA!P$Jn@zvthNd8J+AQPoacjbn4{!eaOi(CV{iA zD7SVmDLuJ`TnA%Zr272@s?(%8L#ha=&XVdJsV delta 1727 zcmZ{kZBSHI7{~vIySsO}T-;?5T%;uw30xtJRZ1=7CCW;Rg488nK=uO5%Py@ec+&5F{bOzp*z5SEFlZ#7MyoatMAi5bV4J~quX(;L(O?jqt~GrQ+J_j#Uk&hI=g z=gP8am-55RSKk0A$Kh^|kxG5Ows0{84gnhy8fP!7vEu&sV z1NP`8Qdw2AfNe{#%O7Z-^H$J=QVF8>qKr0yl!}nn&~~RoD@tVqxU{Cz-=_KW5h*pI zJ|5yRzNYqIw-!>+36}vAR8vA@>ep@n303z(~nZ-pNFRUE(*0@h|Nyv^?m zw;0MpDqc2}iBxXV{LL+41zm`!FvBC`DEF%l1zWYou)keXa0D*df@1=ywfc0z;^ZE< z91O~F6|bUSkD5v>11es}8)LtlmI%Gk(vtqEfDkqdt|<5%U&y#>xQ^=6mLE;m1akFc zIaiV~q5mR#%oc97Lw8#5&EQQa18K2Y2Csn(jwkf()^!_C(vk(4V+NAw;lLtFHtJH4 zgQdtrCI)F$xdORiF7jX{9)TN` z{Mw8HY)2s)aX$hmLKv$VwFl6TVs7ohS**cjti>ow@HHO9cX$Zbu?|0DJ#JzHenTn# z!bV|6nOKB!k%5YcSdL0jh$>Nz$6~YxjJt}8Sz4=D4;`m@gG`afIJ`-IkFenkC5b?P z;4Qoj6EVKUJCw`>xr$**7GezHT}m=R4&gmYRvy2JnCFm4fHim@Ip?4dAsgqZOyV&k z@!$~QA8spgF3}%N@chjxzlcj8f==i{q25q^DRXTNs$9nfzxES&eFD^I25jIfk%?p|7Rpd5&9I z6Wg#GUc87pbn`7Zik%ps<}ADZ602nj8q?E^pWw$0wBb*52nj*qM2N8ui?uw~DAeqD zyk}FNEz)BN7d&?+63ci3KA@WeR_DLiC1W{%xvs3Ntb3Tat+x`#YB94)_(mC7*=wpF z$6hyu6mj7^il)%zbx+_WW{J~5b32774sUj^N)ZK=?Zx$ykyeSTZii)Qg!Kfz8ww6$ zF{`P76}JJ0QO3&}=;=JMfR+z&fh@-R81FWN*9`GD9R;HnYhJ4QSz898hhXwBR!rdt zQ}W6J3NnpDzJz3brOh7e)p*1Au&9r*)qC0OeeBia>{O!*2j*aGM5@6@F&NK07@nJ- zNUis-EXgsJ9=99750) - { - addObject(new Groundflower(), Greenfoot.getRandomNumber(400), 6); //Nach Links bewegende Plattform + } + + public void spawnItems(){ + itemTimer++; + if (itemTimer >= 575){ + itemTimer = 0; + switch (Greenfoot.getRandomNumber(3)){ + case 0: + Groundflower groundF = new Groundflower(); + addObject(groundF, Greenfoot.getRandomNumber(getWidth()-100)+50,0); + break; + case 1: + HealthItem healthItem = new HealthItem(); + addObject(healthItem, Greenfoot.getRandomNumber(getWidth()-100)+50,0); + break; + case 2: + JumpBoostItem jumpBoostItem = new JumpBoostItem(); + addObject(jumpBoostItem, Greenfoot.getRandomNumber(getWidth()-100)+50,0); + break; + } } } - public void spawnEnemies(){ enemyTimer++; - if (enemyTimer == 420){ - Enemy enemy = new Enemy(Greenfoot.getRandomNumber(getWidth()), Greenfoot.getRandomNumber(getHeight()/2)); - addObject(enemy, Greenfoot.getRandomNumber(300)+50,0); + if (enemyTimer >= 420){ + Enemy enemy = new Enemy(Greenfoot.getRandomNumber(getWidth() - 50) + 25, Greenfoot.getRandomNumber(getHeight()/2) + 15); + addObject(enemy, Greenfoot.getRandomNumber(getWidth()-100)+50,0); enemyTimer = 0; } diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 6ff9dce4e582fac1524e5c59e8d9897a43c398cf..db09b8089ca97b965c4039dca70d33a0f9d6ed17 100644 GIT binary patch delta 212 zcmWlSy=uY$6otR2iH#(SgAj0&Y=VnZr}_XQ9h6jq3LPDs1P4W&Iur!S?&e}E2tgrE zK80hgSby5;3pjb5&UZNH+`F|m_N-v&AE?BDrRNw=@s_0qbQM-K9yLo_(Dy!#y7K0k zX0}(ONRtvB9EQ9wrp$y2Q(R_L@u?9|=S$AH=;EH)VGxy7jvt{1*=E@b>EwCkz!B~K uoDJWiDsxVfDkK^4D-JgmnSFG8z+9!R=zYo2r&Kf+6e5OWjH!EF)wNu$q5O8Z zmgAWsDXOGVWa#ihk5>j{8S=)6cV@VJ$zT?f97#4<+(|3OR>&*eFgqcWIC*~9V_ff9 t@hz$|;UKQYBW-?#ZV1xi$RD>4glKZY!Nb3VuQ4&z(tgs)pJ#jTxd3OVF?0X` diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index bebf048..c448f98 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -81,7 +81,7 @@ public class Player extends Actor java.util.List platforms = getIntersectingObjects(Plattform.class); boolean landed = false; for (Plattform platform : platforms) { - int groundTop = platform.getY()+5 - platform.getImage().getHeight() / 2; + int groundTop = platform.getY() - platform.getImage().getHeight() / 2; int characterBottom = getY() + getImage().getHeight() / 2; int oldCharacterBottom = oldY + getImage().getHeight() / 2; // Prüfen, ob der Spieler von oben auf diese Plattform fällt diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 454ce3e..5041f01 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -2,6 +2,7 @@ class.BreakingPlattform.image=Breaking1.png class.Button.image=button-red.png class.Enemy.image=bee.png +class.EnemyProjectile.image=yellow-draught.png class.GameOverWorld.image=GameOverBackground.png class.Ground.image=weave.jpg class.Groundflower.image=flower2.png @@ -18,6 +19,7 @@ class.Spike.image=singleSpike.png class.SpikedPlattform.image=Spikes2.png class.StartWorld.image=StartBackground.png class.TargetingProjectile.image=blue-draught.png +class.TemporaryGround.image=TemporaryGround.png class.UnactiveSpike.image=inactiveSpike.png dependency1.from=PlayerTestWorld dependency1.to=Ground @@ -32,125 +34,131 @@ dependency12.from=MyWorld dependency12.to=Groundflower dependency12.type=UsesDependency dependency13.from=MyWorld -dependency13.to=Enemy +dependency13.to=HealthItem dependency13.type=UsesDependency dependency14.from=MyWorld -dependency14.to=Projectile +dependency14.to=JumpBoostItem dependency14.type=UsesDependency dependency15.from=MyWorld -dependency15.to=TargetingProjectile +dependency15.to=Enemy dependency15.type=UsesDependency -dependency16.from=GameOverWorld -dependency16.to=Button +dependency16.from=MyWorld +dependency16.to=Projectile dependency16.type=UsesDependency -dependency17.from=StartWorld -dependency17.to=Button +dependency17.from=MyWorld +dependency17.to=TargetingProjectile dependency17.type=UsesDependency -dependency18.from=UnactiveSpike -dependency18.to=SpikedPlattform +dependency18.from=GameOverWorld +dependency18.to=Button dependency18.type=UsesDependency -dependency19.from=UnactiveSpike -dependency19.to=MyWorld +dependency19.from=StartWorld +dependency19.to=Button dependency19.type=UsesDependency dependency2.from=PlayerTestWorld dependency2.to=Player dependency2.type=UsesDependency dependency20.from=UnactiveSpike -dependency20.to=Spike +dependency20.to=SpikedPlattform dependency20.type=UsesDependency -dependency21.from=Button +dependency21.from=UnactiveSpike dependency21.to=MyWorld dependency21.type=UsesDependency -dependency22.from=PowerUps -dependency22.to=Player +dependency22.from=UnactiveSpike +dependency22.to=Spike dependency22.type=UsesDependency -dependency23.from=HealthItem -dependency23.to=Player +dependency23.from=Button +dependency23.to=MyWorld dependency23.type=UsesDependency -dependency24.from=JumpBoostItem +dependency24.from=PowerUps dependency24.to=Player dependency24.type=UsesDependency -dependency25.from=Groundflower +dependency25.from=HealthItem dependency25.to=Player dependency25.type=UsesDependency -dependency26.from=Enemy +dependency26.from=JumpBoostItem dependency26.to=Player dependency26.type=UsesDependency -dependency27.from=Enemy -dependency27.to=EnemyProjectile +dependency27.from=Groundflower +dependency27.to=Player dependency27.type=UsesDependency -dependency28.from=Spike -dependency28.to=MyWorld +dependency28.from=Enemy +dependency28.to=Player dependency28.type=UsesDependency -dependency29.from=Player -dependency29.to=GameOverWorld +dependency29.from=Enemy +dependency29.to=EnemyProjectile dependency29.type=UsesDependency dependency3.from=PlayerTestWorld dependency3.to=JumpBoostItem dependency3.type=UsesDependency -dependency30.from=Player -dependency30.to=Plattform +dependency30.from=Spike +dependency30.to=MyWorld dependency30.type=UsesDependency dependency31.from=Player -dependency31.to=PlayerProjectile +dependency31.to=GameOverWorld dependency31.type=UsesDependency dependency32.from=Player -dependency32.to=TemporaryGround +dependency32.to=Plattform dependency32.type=UsesDependency dependency33.from=Player -dependency33.to=Projectile +dependency33.to=PlayerProjectile dependency33.type=UsesDependency dependency34.from=Player -dependency34.to=Enemy +dependency34.to=TemporaryGround dependency34.type=UsesDependency dependency35.from=Player -dependency35.to=Spike +dependency35.to=Projectile dependency35.type=UsesDependency dependency36.from=Player -dependency36.to=Heart +dependency36.to=Enemy dependency36.type=UsesDependency -dependency37.from=Healthbar -dependency37.to=Player +dependency37.from=Player +dependency37.to=Spike dependency37.type=UsesDependency -dependency38.from=Plattform -dependency38.to=MyWorld +dependency38.from=Player +dependency38.to=Heart dependency38.type=UsesDependency -dependency39.from=Plattform +dependency39.from=Healthbar dependency39.to=Player dependency39.type=UsesDependency dependency4.from=MyWorld dependency4.to=Player dependency4.type=UsesDependency -dependency40.from=MovingPlattform +dependency40.from=Plattform dependency40.to=MyWorld dependency40.type=UsesDependency -dependency41.from=MovingPlattform +dependency41.from=Plattform dependency41.to=Player dependency41.type=UsesDependency -dependency42.from=TemporaryGround -dependency42.to=Player +dependency42.from=MovingPlattform +dependency42.to=MyWorld dependency42.type=UsesDependency -dependency43.from=SpikedPlattform -dependency43.to=Spike +dependency43.from=MovingPlattform +dependency43.to=Player dependency43.type=UsesDependency -dependency44.from=SpikedPlattform -dependency44.to=GameOverWorld +dependency44.from=TemporaryGround +dependency44.to=Player dependency44.type=UsesDependency dependency45.from=SpikedPlattform -dependency45.to=MyWorld +dependency45.to=Spike dependency45.type=UsesDependency dependency46.from=SpikedPlattform -dependency46.to=UnactiveSpike +dependency46.to=GameOverWorld dependency46.type=UsesDependency -dependency47.from=TargetingProjectile -dependency47.to=Player +dependency47.from=SpikedPlattform +dependency47.to=MyWorld dependency47.type=UsesDependency -dependency48.from=PlayerProjectile -dependency48.to=Enemy +dependency48.from=SpikedPlattform +dependency48.to=UnactiveSpike dependency48.type=UsesDependency +dependency49.from=TargetingProjectile +dependency49.to=Player +dependency49.type=UsesDependency dependency5.from=MyWorld dependency5.to=Score dependency5.type=UsesDependency +dependency50.from=PlayerProjectile +dependency50.to=Enemy +dependency50.type=UsesDependency dependency6.from=MyWorld dependency6.to=Plattform dependency6.type=UsesDependency @@ -165,10 +173,10 @@ dependency9.to=MovingPlattform dependency9.type=UsesDependency editor.fx.0.height=737 editor.fx.0.width=814 -editor.fx.0.x=386 -editor.fx.0.y=48 +editor.fx.0.x=668 +editor.fx.0.y=120 height=830 -package.numDependencies=48 +package.numDependencies=50 package.numTargets=26 project.charset=UTF-8 publish.hasSource=false