From a39e8160388049c98c150ab37c4fc09682deb774 Mon Sep 17 00:00:00 2001 From: Jonas Date: Wed, 16 Sep 2026 17:49:43 +0200 Subject: [PATCH 1/5] Gegner werden jetzt in MyWorld gespawned --- SMIMS-Game/MyWorld.class | Bin 3307 -> 3615 bytes SMIMS-Game/MyWorld.ctxt | 10 +- SMIMS-Game/MyWorld.java | 12 ++ SMIMS-Game/PlayerProjectile.class | Bin 1025 -> 1013 bytes SMIMS-Game/PlayerProjectile.java | 1 - SMIMS-Game/project.greenfoot | 233 ++++++++++++++++-------------- 6 files changed, 146 insertions(+), 110 deletions(-) diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index 8c6ebfeeef562dad737eda7e0c553022debbc320..ca8d74b399b755f001cff251b8fd8a64d5887da0 100644 GIT binary patch delta 1667 zcmZ`(ZBSHI7=F&)y?d9-HFj4aR$wEQz!jsQEJM>WOA`xa`PfWlWtU}<1zZ*pj5a?o zurKRoACw7YYGogc2^CZ0pPHs$P0jS9`qPZlkNVZ0X8O?SId=hRsF}UzynEjBp65C5 z^S3JP*3~%_DDPy>C)juje&qUV#~MJ8K^fe+Ps-T zJfvZpfrqi(ykuKjx=SEybI0CTd$hVOluR~vB;q7MfTqrk(w958SYhs=x03dewfBY6D$-^x7UQY~fzT9rkq($v(3oHqo7$a3IK9j9?d z!&w>omf5X-Yd}vQH(qsrPp8tP=Y7$Bxf6P(`TFyXgMM!4@n@O<6>rO z3Ff1SVK;Cr#xe#~U@2C^k9GW4g;F$NIht@I+EK=A--LeLj3JccIqp1xTW}V)Vhk(r zDQ?3TxE)_(C4Rsi_!*V>4Xf}cRtr1sw1_oBPXR)mV&=qUJcXypHV?n>&d-o*1-`*C zS_;8G#G47m0v)uKS;klOv|%_4$sa}WY683 z_BD>;TKYmkbplQ4gIo@tG~>;+ysj(L?o`7pfAc7$KN@tEParlYe9GM#bcH9-Hp@Lm z1r;g*DwD_YZWhBjO1&P1xR?6fN3AwckB#))PiqqsT7_zCMj(X;DC>jRi7nWJt?ZWo z4xpB*)Kk(R&R`oRu^pdt$MA{VWel!fV>PAOSPztm3<@Fz<@8-_{B z4K4RFc4%0{Ur~Y2=i`hW69+NVD=~^|8!!pY@tL8k+3fR0l+gA!- iOws2)Jqk`*5hEDo>?GVNey`(g{?lo_gLm;hy#D~gen#H_ delta 1394 zcmZ{jTWphc7{-5JPhTk=Yl|D5V|7fBQI2kkq8JoBA)sR`gEBdkwHrIMg|2LXNb!IQ zctAc;nWro!#@hwlRDy{&#%Mx}B-|K{S6=9qCdR~M=<~JP+_IRq|L^VpdH?V8eDCxA zKbZepmG7GypML>7!283#L5Fq45w36X6T@#1YU)ko^Bvh-dPDY5CZEg>WPG%;-DHQK zI6JK|$Nhyp2IX6_{au;P$!s6HN%(QI&%jl`aY?Haw2>YIUsEpIoodf_^`?AuQ)7}bm>WyvI#V@yyVw*sO-)GebI?zYK5Lb0 zwdatZeg-b~y2=dejJvh+bpyjF_h9*WgYzbD+Np0@f4Q$2gVwj6sOw#Wh;`KyvF4c} zw_C+x)(Z2MU*e!|&Y7->fxUs%Q)Az*hjnJ+92l zn93cO+G>8Kf`YU*@;xUMIYs^%&+sfR<-EjmirgaY<9S6MQN}o_$Q0>1UQpx})ofl= z?krV2ReEQ!T~!6Ao)yth-3ZnnvziK*Xda|GdYR?%QC0?xv!AlfJ3=HHX!wNYXk54} zsVLMYAoS!A6*F^7*sdYw3ELfakFvK^DBw}0NiNje*~NAC@G}Yil==VYI^D$nqJ_1kUXD9hE8OpgFp)q<1bC89X>6R0{o1;sE#xnKXI_+Oj zoYc~|_sHg64SHImp3$UcHKPYLe|<$sl`2(ErRtv%i;9kmvxSJJ-X4do6Wr6N%Zk)# zQD-Nq0}Xqf_9z6cXj!=Bzbn@-4FlpiEDcAb;ixnmlZNBdG;HPN|JAUmq`^90R=@9n z-J`DqYe&f2W;%*yh9nowyie0yp^0CtS)X~IoxD;!@hY$B=@s2M{m$~X{`nML;2mAe Gs(%4T9}M;Y diff --git a/SMIMS-Game/MyWorld.ctxt b/SMIMS-Game/MyWorld.ctxt index 2a6810e..fe75749 100644 --- a/SMIMS-Game/MyWorld.ctxt +++ b/SMIMS-Game/MyWorld.ctxt @@ -10,9 +10,11 @@ comment2.text=\r\n\ Prepare\ the\ world\ for\ the\ start\ of\ the\ program.\r\n\ comment3.params= comment3.target=void\ act() comment4.params= -comment4.target=void\ projectile() +comment4.target=void\ spawnEnemies() comment5.params= -comment5.target=void\ targetingProjectile() +comment5.target=void\ projectile() comment6.params= -comment6.target=void\ showScore() -numComments=7 +comment6.target=void\ targetingProjectile() +comment7.params= +comment7.target=void\ showScore() +numComments=8 diff --git a/SMIMS-Game/MyWorld.java b/SMIMS-Game/MyWorld.java index 0add624..8876e2f 100644 --- a/SMIMS-Game/MyWorld.java +++ b/SMIMS-Game/MyWorld.java @@ -13,6 +13,7 @@ public class MyWorld extends World //kann später noch beliebig angepasst werden int targetTimer = 1000; int time = 0; + int enemyTimer; int score = 0; /** * Constructor for objects of class MyWorld. @@ -73,6 +74,7 @@ public class MyWorld extends World score1.setImage("Score2.png"); showScore(); projectile(); + spawnEnemies(); targetingProjectile(); if(PlattformCountdown==0) //Damit in regelmäßigen Abständen auf jeden Fall eine Plattform auftaucht { @@ -103,6 +105,16 @@ public class MyWorld extends World } + + 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); + enemyTimer = 0; + } + + } public void projectile(){ if(timer == 0){ Projectile projectile = new Projectile(); diff --git a/SMIMS-Game/PlayerProjectile.class b/SMIMS-Game/PlayerProjectile.class index ce9bebba200c6cea40799cee57dae6ed99b3fe71..ecbbe700eb240e935324f4c1692105a2407cb24f 100644 GIT binary patch delta 117 zcmZqV_{zRPfH^pbfti7kfq_9>OGs`TgTgTe0j+HeA`s3t28oS8DP{&EAjt=$85krP zI2oiE#2924jDb8Jh*ky@22&u<9EgF2iA~ODjucd25NA*XDpz4JU{D1bpg#E~vjza! Ccn-h- delta 129 zcmey$-pH{*fH^*nfti7kfq_9@OGs`TgTgTe39W4mA`s3tCFanZ73@kuW zl7W*!ib0G)nn8|1mcbY(!UHje!GysS$TJ6GpuuvJlbIt06&b`Clz>`P84MWIfQD#H IKFh2D00?6d5C8xG diff --git a/SMIMS-Game/PlayerProjectile.java b/SMIMS-Game/PlayerProjectile.java index 65269d1..710f0d2 100644 --- a/SMIMS-Game/PlayerProjectile.java +++ b/SMIMS-Game/PlayerProjectile.java @@ -24,7 +24,6 @@ public class PlayerProjectile extends Actor public void checkForEnemyCollision(){ if (getOneIntersectingObject(Enemy.class) != null){ getWorld().removeObject(getOneIntersectingObject(Enemy.class)); - getWorld().removeObject(this); } } diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index b8a97cd..c189097 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -1,6 +1,8 @@ #Greenfoot project file class.BreakingPlattform.image=Unbenannt2.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.HealthItem.image=herz.png @@ -9,145 +11,152 @@ class.MovingPlattform.image=Unbenannt.png class.MyWorld.image=GameBackground.png class.Plattform.image=Platform1.png class.Player.image=Player.png +class.PlayerProjectile.image=beeper.png class.Projectile.image=Projectile1.png class.Spike.image=Spike.png class.SpikedPlattform.image=SpikedPlattform.png class.StartWorld.image=StartBackground.png class.TargetingProjectile.image=blue-draught.png -class.UnactiveSpike.image=SpikeUnactive.png -dependency1.from=GameOverWorld -dependency1.to=Button +class.UnactiveSpike.image=Spike_Copy.png +dependency1.from=PlayerTestWorld +dependency1.to=Ground dependency1.type=UsesDependency dependency10.from=MyWorld -dependency10.to=MovingPlattform +dependency10.to=SpikedPlattform dependency10.type=UsesDependency dependency11.from=MyWorld -dependency11.to=BreakingPlattform +dependency11.to=Enemy dependency11.type=UsesDependency dependency12.from=MyWorld -dependency12.to=SpikedPlattform +dependency12.to=Projectile dependency12.type=UsesDependency dependency13.from=MyWorld -dependency13.to=Projectile +dependency13.to=TargetingProjectile dependency13.type=UsesDependency -dependency14.from=MyWorld -dependency14.to=TargetingProjectile +dependency14.from=GameOverWorld +dependency14.to=Button dependency14.type=UsesDependency -dependency15.from=Spike -dependency15.to=GameOverWorld +dependency15.from=StartWorld +dependency15.to=Button dependency15.type=UsesDependency -dependency16.from=Spike -dependency16.to=MyWorld +dependency16.from=UnactiveSpike +dependency16.to=SpikedPlattform dependency16.type=UsesDependency -dependency17.from=Spike -dependency17.to=Player +dependency17.from=UnactiveSpike +dependency17.to=MyWorld dependency17.type=UsesDependency -dependency18.from=Player -dependency18.to=GameOverWorld +dependency18.from=UnactiveSpike +dependency18.to=Spike dependency18.type=UsesDependency -dependency19.from=Player -dependency19.to=Plattform +dependency19.from=Button +dependency19.to=MyWorld dependency19.type=UsesDependency dependency2.from=PlayerTestWorld -dependency2.to=Ground +dependency2.to=Player dependency2.type=UsesDependency -dependency20.from=Player -dependency20.to=PlayerProjectile +dependency20.from=PowerUps +dependency20.to=Player dependency20.type=UsesDependency -dependency21.from=Player -dependency21.to=Projectile +dependency21.from=HealthItem +dependency21.to=Player dependency21.type=UsesDependency -dependency22.from=Player -dependency22.to=Enemy +dependency22.from=JumpBoostItem +dependency22.to=Player dependency22.type=UsesDependency -dependency23.from=UnactiveSpike -dependency23.to=SpikedPlattform +dependency23.from=Groundflower +dependency23.to=Player dependency23.type=UsesDependency -dependency24.from=UnactiveSpike -dependency24.to=MyWorld +dependency24.from=Enemy +dependency24.to=Player dependency24.type=UsesDependency -dependency25.from=UnactiveSpike -dependency25.to=Spike +dependency25.from=Enemy +dependency25.to=EnemyProjectile dependency25.type=UsesDependency -dependency26.from=Healthbar -dependency26.to=Player +dependency26.from=Spike +dependency26.to=MyWorld dependency26.type=UsesDependency -dependency27.from=Plattform -dependency27.to=MyWorld +dependency27.from=Player +dependency27.to=GameOverWorld dependency27.type=UsesDependency -dependency28.from=Plattform -dependency28.to=Player +dependency28.from=Player +dependency28.to=Plattform dependency28.type=UsesDependency -dependency29.from=MovingPlattform -dependency29.to=MyWorld +dependency29.from=Player +dependency29.to=PlayerProjectile dependency29.type=UsesDependency dependency3.from=PlayerTestWorld -dependency3.to=Player +dependency3.to=JumpBoostItem dependency3.type=UsesDependency -dependency30.from=MovingPlattform -dependency30.to=Player +dependency30.from=Player +dependency30.to=TemporaryGround dependency30.type=UsesDependency -dependency31.from=SpikedPlattform -dependency31.to=Spike +dependency31.from=Player +dependency31.to=Projectile dependency31.type=UsesDependency -dependency32.from=SpikedPlattform -dependency32.to=GameOverWorld +dependency32.from=Player +dependency32.to=Enemy dependency32.type=UsesDependency -dependency33.from=SpikedPlattform -dependency33.to=MyWorld +dependency33.from=Player +dependency33.to=Spike dependency33.type=UsesDependency -dependency34.from=SpikedPlattform -dependency34.to=UnactiveSpike +dependency34.from=Healthbar +dependency34.to=Player dependency34.type=UsesDependency -dependency35.from=TargetingProjectile -dependency35.to=Player +dependency35.from=Plattform +dependency35.to=MyWorld dependency35.type=UsesDependency -dependency36.from=Button -dependency36.to=MyWorld +dependency36.from=Plattform +dependency36.to=Player dependency36.type=UsesDependency -dependency37.from=PowerUps -dependency37.to=Player +dependency37.from=MovingPlattform +dependency37.to=MyWorld dependency37.type=UsesDependency -dependency38.from=HealthItem +dependency38.from=MovingPlattform dependency38.to=Player dependency38.type=UsesDependency -dependency39.from=JumpBoostItem -dependency39.to=Player +dependency39.from=SpikedPlattform +dependency39.to=Spike dependency39.type=UsesDependency -dependency4.from=PlayerTestWorld -dependency4.to=JumpBoostItem +dependency4.from=MyWorld +dependency4.to=Player dependency4.type=UsesDependency -dependency40.from=Enemy -dependency40.to=Player +dependency40.from=SpikedPlattform +dependency40.to=GameOverWorld dependency40.type=UsesDependency -dependency41.from=Enemy -dependency41.to=EnemyProjectile +dependency41.from=SpikedPlattform +dependency41.to=MyWorld dependency41.type=UsesDependency -dependency42.from=PlayerProjectile -dependency42.to=Enemy +dependency42.from=SpikedPlattform +dependency42.to=UnactiveSpike dependency42.type=UsesDependency -dependency5.from=StartWorld -dependency5.to=Button +dependency43.from=TargetingProjectile +dependency43.to=Player +dependency43.type=UsesDependency +dependency44.from=PlayerProjectile +dependency44.to=Enemy +dependency44.type=UsesDependency +dependency5.from=MyWorld +dependency5.to=Score dependency5.type=UsesDependency dependency6.from=MyWorld -dependency6.to=Player +dependency6.to=Plattform dependency6.type=UsesDependency dependency7.from=MyWorld -dependency7.to=Score +dependency7.to=Healthbar dependency7.type=UsesDependency dependency8.from=MyWorld -dependency8.to=Plattform +dependency8.to=MovingPlattform dependency8.type=UsesDependency dependency9.from=MyWorld -dependency9.to=Healthbar +dependency9.to=BreakingPlattform dependency9.type=UsesDependency editor.fx.0.height=737 editor.fx.0.width=814 -editor.fx.0.x=360 -editor.fx.0.y=26 -height=822 -package.numDependencies=42 -package.numTargets=23 +editor.fx.0.x=330 +editor.fx.0.y=72 +height=830 +package.numDependencies=44 +package.numTargets=25 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -163,168 +172,182 @@ readme.x=10 readme.y=10 simulation.speed=50 target1.height=70 -target1.name=Spike +target1.name=MovingPlattform target1.showInterface=false target1.type=ClassTarget target1.width=120 target1.x=0 target1.y=0 target10.height=70 -target10.name=GameOverWorld +target10.name=PowerUps target10.showInterface=false target10.type=ClassTarget target10.width=120 target10.x=0 target10.y=0 target11.height=70 -target11.name=PlayerTestWorld +target11.name=Enemy target11.showInterface=false target11.type=ClassTarget target11.width=120 target11.x=0 target11.y=0 target12.height=70 -target12.name=StartWorld +target12.name=MyWorld target12.showInterface=false target12.type=ClassTarget target12.width=120 target12.x=0 target12.y=0 target13.height=70 -target13.name=Plattform +target13.name=Spike target13.showInterface=false target13.type=ClassTarget target13.width=120 target13.x=0 target13.y=0 target14.height=70 -target14.name=TargetingProjectile +target14.name=Groundflower target14.showInterface=false target14.type=ClassTarget target14.width=120 target14.x=0 target14.y=0 target15.height=70 -target15.name=Projectile +target15.name=Player target15.showInterface=false target15.type=ClassTarget target15.width=120 target15.x=0 target15.y=0 target16.height=70 -target16.name=Score +target16.name=Healthbar target16.showInterface=false target16.type=ClassTarget target16.width=120 target16.x=0 target16.y=0 target17.height=70 -target17.name=Button +target17.name=BreakingPlattform target17.showInterface=false target17.type=ClassTarget target17.width=120 target17.x=0 target17.y=0 target18.height=70 -target18.name=EnemyProjectile +target18.name=GameOverWorld target18.showInterface=false target18.type=ClassTarget target18.width=120 target18.x=0 target18.y=0 target19.height=70 -target19.name=PowerUps +target19.name=StartWorld target19.showInterface=false target19.type=ClassTarget target19.width=120 target19.x=0 target19.y=0 target2.height=70 -target2.name=Player +target2.name=Ground target2.showInterface=false target2.type=ClassTarget target2.width=120 target2.x=0 target2.y=0 target20.height=70 -target20.name=Enemy +target20.name=Plattform target20.showInterface=false target20.type=ClassTarget target20.width=120 target20.x=0 target20.y=0 target21.height=70 -target21.name=PlayerProjectile +target21.name=Projectile target21.showInterface=false target21.type=ClassTarget target21.width=120 target21.x=0 target21.y=0 target22.height=70 -target22.name=SpikedPlattform +target22.name=Score target22.showInterface=false target22.type=ClassTarget target22.width=120 target22.x=0 target22.y=0 target23.height=70 -target23.name=MyWorld +target23.name=EnemyProjectile target23.showInterface=false target23.type=ClassTarget target23.width=120 target23.x=0 target23.y=0 +target24.height=70 +target24.name=PlayerProjectile +target24.showInterface=false +target24.type=ClassTarget +target24.width=120 +target24.x=0 +target24.y=0 +target25.height=70 +target25.name=SpikedPlattform +target25.showInterface=false +target25.type=ClassTarget +target25.width=120 +target25.x=0 +target25.y=0 target3.height=70 -target3.name=MovingPlattform +target3.name=HealthItem target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 target4.height=70 -target4.name=Ground +target4.name=UnactiveSpike target4.showInterface=false target4.type=ClassTarget target4.width=120 target4.x=0 target4.y=0 target5.height=70 -target5.name=UnactiveSpike +target5.name=JumpBoostItem target5.showInterface=false target5.type=ClassTarget target5.width=120 target5.x=0 target5.y=0 target6.height=70 -target6.name=HealthItem +target6.name=PlayerTestWorld target6.showInterface=false target6.type=ClassTarget target6.width=120 target6.x=0 target6.y=0 target7.height=70 -target7.name=Healthbar +target7.name=TargetingProjectile target7.showInterface=false target7.type=ClassTarget target7.width=120 target7.x=0 target7.y=0 target8.height=70 -target8.name=JumpBoostItem +target8.name=TemporaryGround target8.showInterface=false target8.type=ClassTarget target8.width=120 target8.x=0 target8.y=0 target9.height=70 -target9.name=BreakingPlattform +target9.name=Button target9.showInterface=false target9.type=ClassTarget target9.width=120 target9.x=0 target9.y=0 version=3.1.0 -width=715 +width=1550 world.lastInstantiated=MyWorld -xPosition=532 -yPosition=117 +xPosition=0 +yPosition=0 From c719e5b053c2666a509c7e17d342e7f0a7790f94 Mon Sep 17 00:00:00 2001 From: Caspar Date: Thu, 17 Sep 2026 09:24:04 +0200 Subject: [PATCH 2/5] Fix Health --- SMIMS-Game/Groundflower.class | Bin 1113 -> 1169 bytes SMIMS-Game/Groundflower.java | 12 ++- SMIMS-Game/MyWorld.class | Bin 3307 -> 3418 bytes SMIMS-Game/MyWorld.java | 6 ++ SMIMS-Game/Plattform.class | Bin 1239 -> 1239 bytes SMIMS-Game/Plattform.java | 2 +- SMIMS-Game/Player.class | Bin 4489 -> 4489 bytes SMIMS-Game/Player.java | 2 +- SMIMS-Game/TemporaryGround.class | Bin 1076 -> 1677 bytes SMIMS-Game/TemporaryGround.ctxt | 4 +- SMIMS-Game/TemporaryGround.java | 12 +++ SMIMS-Game/images/Spike_Copy.png | Bin 751 -> 750 bytes SMIMS-Game/project.greenfoot | 131 +++++++++++++++++-------------- 13 files changed, 102 insertions(+), 67 deletions(-) diff --git a/SMIMS-Game/Groundflower.class b/SMIMS-Game/Groundflower.class index 0d343b5b3b0b0c3f9f3b8c8e7529a01aa01c1f7d..eb6a43e9087ab3fbe48d032408ae7dc3ecad3040 100644 GIT binary patch delta 638 zcmaJ;&rcIk5dPj4x~2PCmMs)%r7Tq1vIQxq$PdLIpz{rJxcTG$%&bT0;*V&q6!$bhAMu|68Dd+Xae#Gs}}J)i+t7 zd2;KdW#l|qffGDdaE{!EymbuKcZ{QPn@0C}^H5)`@CTq<$Pl>9M@!tEBd?bt;UAeT-aINba%W?f)k4P0XBVunv62{MS8K*-fA^h+uL5pCda5|j7soBIn(CxxaJHsMbEm|eWr-jCYDUu(M_GpsdD&lC=`NwTAn8A9dZv z>t*-NV|Q)S3-+veH5YuhhIZ#=b{k7_iXPJ35~NX4zAe9k;05B6=LFBnZthY}NUucZ zgB&ajNgpxESs}@Z&w+o4QXCM$og<>B(rrX{i%vEdG7$Sj-r_5{hm+1n64{ZE)Bkhl z$xx70jJOA*_r*i*j99=this.getWorld().getHeight()-5) + { + this.getWorld().removeObject(this); + return; + } this.touchedByPlayer(); // Add your action code here. } @@ -29,9 +35,9 @@ public class Groundflower extends PowerUps public void bewegeNachUnten() { this.setLocation(this.getX(), this.getY()+2); - if(this.getY()>=this.getWorld().getHeight()) + if(this.getY()>=this.getWorld().getHeight()-5) { - this.getWorld().removeObject(this); + this.getWorld().removeObject(this); } } } diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index 8c6ebfeeef562dad737eda7e0c553022debbc320..700c3de724fbb6d6b5e48fd2377c008803e1888b 100644 GIT binary patch delta 1465 zcmZ`(U2Icj7=FI~o$mC^wbga4Y_&`mYSl2hm|(yS95M$3Ha0p7A}ejz{j@#ZS+_Z1 z>qNkRMUSXVRI0`+Zx*ygNsPwC7!$oQ(ZqP+h4IE)^}^`%IqigzVbb%R_j{l3ec$Ih z&-?aQ-w!v-UoC(934rZ*cS-(Sv`W}2P&bgwBW z1nKmyqLVY6d4U@TVp=MhH%hKTC(-2QXPZ&*2xbKuGO_Vwr<#q&@`L&}=AiAEg5#LG z_?I~@Jg*7}QD?(B8H;#b!g(X;4SmY`t>uD1i(a(0*d)9y;HT-=&)Pg9s=sgBDCYGa zZTEZ#qEx;6Jat?>w%_VI6 z2s;GcL~W?LEn$~_tfsB7H&j9&pMlT^7+l0UUhS@E85>>V%q1MO^I{=q_(KeaqQor; zTJ9kN?pP7^YtL4(qeV0ji$|?xB&&&>HfFkldMl`Nxs1YEe7Fb$Peq;KGDg>gufStb zXQGVs^nB;B_2PnrN&LN6-h?H>{pWz6;LkvH0Sbj$m{~#r9!kF+QEjA%rX@Wpi zjg=+{2)7}9A2r)d1r6;@I74P`*u8(_poC`rTAKWRehB`9$BaaqLvA<^!#%zU?hpFn|Vfq)Do=I2O z8AMnnXtY%1x}|F?r6*Z>>Pl&6c*txtj7$H+;qAZ5;W#6v$zL98QqK$!j=7 z*yjJof&X#F_4Sw%JUR_<=$uGrx)wo7kP z)*E<5f#Z#;B#jC04Z16mm>889AB<7sg9(Yx`s4#ICPlxqTU$sqnK|d5^PThk-}x`| z>+(Np%a{Z1m=H&|Tmw6ISt-=B?VQckuno$6e`%Xlnm zp&OP!xN|U`&GxvNp)KyIbT;XZrA-{bK?6@)h~W?!QW?id_qcMIwlQ~1prXSaRdoNJ zGjSAg3qG6>@HVtPd_aRZd)0s=5Ngdh@qv3cClNQ$OPc6#-++_6izcOz0p4U$sfm8n z8c0(`x4MV?Sqlb+P#b0dPg=-eME9we3B5 z)%TN_mXo^e{ZJqxr}T)tsaJ_^c}rg}#$~{GTujIv#)E4nNo_%JY{0WP&Dn!$)No}S z5Vzrl$=P@9qTv;R*&;l_F@u#d?{{;}Py{`tP4fhP%wY;=NU;LHqY^n%HsMD+M@vIH zuH$*UK;kL9f){D|a0w%LiI$F8rs*s#12?f5=VnqeRshs_!?C3`>~v33+_WJbF~$9*ajQhv4Oqw7`*9fu@iEK3K=ex-!7n(5-w?-bB=9#YdKr3)`K_a426{ffb;MOx z1)be0X4Qk&C@2J@dJcyS)bm+g8;L|9)~aqT6%%vkWhDSjOocIxhi;&snHX%h*M`I+ zjJf=#d{s`}FT(T#0~`lYLD3PUu^KKb^duU20abEUq^jV!2d|T!r1RpG5V~nl#lkWu0JsS4mjsMlaUzpM$ zf3O-(467J@8{CvfcCnMflnZu*$y%>uKdfOVENw~+=ef&+H}Mu{KPfNqy@2=mWzxEg J5AYFc{sHGs8qxp& diff --git a/SMIMS-Game/MyWorld.java b/SMIMS-Game/MyWorld.java index 0add624..a113886 100644 --- a/SMIMS-Game/MyWorld.java +++ b/SMIMS-Game/MyWorld.java @@ -58,6 +58,8 @@ public class MyWorld extends World plattform2.setLocation(308,382); Healthbar healthbar = new Healthbar(); addObject(healthbar,50,50); + + addObject(new TemporaryGround(60*50), 200, 575); } public void act() @@ -101,6 +103,10 @@ public class MyWorld extends World addObject(new SpikedPlattform(100), Greenfoot.getRandomNumber(400), 6); //Nach Links bewegende Plattform } + if(Greenfoot.getRandomNumber(100000)>=99750) + { + addObject(new Groundflower(), Greenfoot.getRandomNumber(400), 6); //Nach Links bewegende Plattform + } } public void projectile(){ diff --git a/SMIMS-Game/Plattform.class b/SMIMS-Game/Plattform.class index fe23c799e1019713b87479675cae0b0cd5727673..870c5951c24e324e2ecee0918df652ca9ab36d38 100644 GIT binary patch delta 13 Ucmcc4d7X1ZF$<&md3#Bbs`=XcxnxK7An@S5oAiA`*U?}*yB$H&@u$!~H(Zf%v z-}E1NPKif9c>L^-@_1*ngb@9Zoynbf?sK2}%*@~a{P8D%H5hS>ArwVeU>p$*v1e_= z^BT5utReEyv`lYRLnxc8#xQ|c6mfw`2o2MF^0;F=hI6vz*j=lxA^D@>SfuN-6h1GopzvrQL}Awi-d0$`vUhCfEd2y-XqX#RP;u8CX}qHLLdR;V zuv-G};9U(9uJkI$MpJ5-&FU|WAB)QIDR&shG9C#$#+rsOSzq`E$M0fUVB-uvP^_B*TiEVf6BxX3 z!J4fzll)aG`3#>&p$qINp3CRHT-?Y5%*@-;Y_>e5=c&Lme8IEAM(TFW@J!p%FrKYc za#gBi)oLi)b#{1KH!b<3dwe9FJ>#fNB&9;yRl_mW{{ReoEtB3S^^vZZG>FcH6C5&X zv^KHp8MRkCMkk1$eJ&f0bX&UFkbCw<*9k<$I_L99$3G49NAI5tlE-)Lu2Yknrc#y} zNnTKG#SJ<;#%mqomp6(tsN3p~yn!4eVD)&;?=Jtn;6AlKlm87`K6Hv`K75Kqe*P3Q zzY-tA9>13u0p8#+8DdCa3Nz$R;!A(ck4F{z{6{8orpd11z|W2Dkq}Klf=0bDP{vt zRRp)`Yk@u#hxn5Lzowp?|B@~$(t*dLq<0u{m!$VddjEe(zZ$e{HE3I8q*3ZA2OhAv z(ol0EgXTo=bse!-~mZYLq*oSOtxrajNcibJrUs%@jOFcYzjkzU`t6X2_@6#SC r^&Xy_H==LKV=}L?6=hnoImn)-zu(|n-`ABP`*|RW1ixeAF?|0o*}z0+ delta 582 zcmZWmJ5R!36g?j;g%oO99->r0z>1WIiaMzAH5ey16XQq%Ar7{ri7`(60teDfCtaM4 zz~JEI{XbFUUB>d#avVjJT!R^z6^7(R_oi<9|ifGzaknfCU;Q2H&k(;1kiepM9jG=JDkY|{HNVrB%>WHBM6-{{a z`vzKI!1%srRm)tJ1S4E}Mzuvxwn%lGRCoTRo{Bd8)l-5)%EK2fnfmwu>NKG2(YrL> Uo+shoMf$sog!SMq8{SZxzgQnfTL1t6 diff --git a/SMIMS-Game/TemporaryGround.ctxt b/SMIMS-Game/TemporaryGround.ctxt index 6babc9e..04dbe05 100644 --- a/SMIMS-Game/TemporaryGround.ctxt +++ b/SMIMS-Game/TemporaryGround.ctxt @@ -12,4 +12,6 @@ comment4.params= comment4.target=void\ noMoreWarning() comment5.params=pDuration comment5.target=void\ RefreshLifeToDuration(int) -numComments=6 +comment6.params= +comment6.target=void\ Buffer() +numComments=7 diff --git a/SMIMS-Game/TemporaryGround.java b/SMIMS-Game/TemporaryGround.java index 9d83b38..8709cc6 100644 --- a/SMIMS-Game/TemporaryGround.java +++ b/SMIMS-Game/TemporaryGround.java @@ -23,6 +23,7 @@ public class TemporaryGround extends Plattform public void act() { // Add your action code here. + this.Buffer(); Lebensdauer--; if(Lebensdauer==0) { @@ -56,4 +57,15 @@ public class TemporaryGround extends Plattform { Lebensdauer=pDuration; } + + public void Buffer() + { + { + Player player= this.getWorld().getObjects(Player.class).get(0); + if(this.intersects(player)) + { + player.setLocation(player.getX(), this.getY()-this.getImage().getHeight()); + } + } + } } diff --git a/SMIMS-Game/images/Spike_Copy.png b/SMIMS-Game/images/Spike_Copy.png index 33399b9c420442d831734fd81dc8ba4af84a69a1..eeb010528f6f904f0b91ff927b94fa1d270ed236 100644 GIT binary patch delta 271 zcmV+q0r39s1?~l~=>dQ6Nkl7zYHS0LWFD}b~g5DY^>ae#KOuh zFo|HuLkkP{;1aA;+E}@WfLKY$3>k8*@_0u4s>9`chfDZ}vMe)W%vNiig%Fyms$SL| z0HE~&0P4EF6hhn^V@`<(A%p?I^Dqn#ZQFkBcYh5OMRAy>>9v0l;#Mhj3F)4VT^T!M4%WV6{kDWz_R=)ilw8=mJG%#0*SGAZSGp68!k*L`65pswo+ zB5JI)XCVZ{7=2dy=j8O;3l15ou> VsxFtIHUIzs07(Z$PDHLkV1m57fhzz2 delta 272 zcmV+r0q_3q1@8s0=>dQ7Nklsoyi0dULis@5IY Date: Thu, 17 Sep 2026 09:29:14 +0200 Subject: [PATCH 3/5] +Flower Png --- SMIMS-Game/images/flower2.png | Bin 0 -> 1454 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SMIMS-Game/images/flower2.png diff --git a/SMIMS-Game/images/flower2.png b/SMIMS-Game/images/flower2.png new file mode 100644 index 0000000000000000000000000000000000000000..5adb1855d458285c559b889cecff05c20545d4e7 GIT binary patch literal 1454 zcmV;f1yTBmP)rEJF$IGO(9FaJp(F2AElGnG!Vzl@ zs%dVDerQv@Pa>%uzlbBs!Lf*g0rajTu#sJ`u&}6m8fG?BuQL6anVAz}5WKYm3)VNB z00005bW%=J|NsC00QIRnpZl15kd*lHvOWLO_}5cjEGhobN?8`O3cjzt&Uvabu{6!p zaE2J2*SLBU^tvGi|EyuCiWAqs!# z4i^3}IrmoF7}5HD9~5MK?kC$LAotg3Hw5dwx%&1*`X%YiziL}Vva_o zs5}JwRpF1P3KfE(O>ctIuy{M4&o7Q62cf*LN)v&ZeG~*iJ`^qKw-*=ld74GpF*C%^ zN?w%v6Lhz%*pxOiO?vy+S#fR`v`C7XepBMrfX5Rgk~bI+2A_gub$&C9k_~m*xraQr zcqkAqUxlttr$Nvy(ykT-0{-f}|0dJlGIt0y@;15)f*vl&8gGMhKjSE8nQ9>plgrkMv5O zw?Swy9zTYfDOSTh!%(@usb~%z0!C-ckEpQ>x-?CqCM4$27)9qpROCP4NDy?!v_VnT zToo#V-y15A1B*OO8#cNRmJNi)=nJ!=<~2=1M%N-QQ6>923bPHDE>s_DtMfp7;ZK_K zCbxb830&hO?9vLuqVgK9jH0;_f*Nc76la3)ePEWcgff0tU(FXuX-z~t;eofrYepEq zlV)sQ!H4Mh!hS?Xpz&(qwXST>KQTW*`A=a0=hW}DCKKfu7lm!&_t6G2c=S;cNSs>@ z2JACYA(Ql)+jBAo!n8PC8Q}F`-QpB!(!w~^QlyHAq@^Tt;bXg;4LxI=se4ia2Xma? z+h0E?Z7ICeKghD|%Cb`~A1=zfFi=!govF{cwtKW*?t}Bx1|wIP9bCt_@=<&_yD=+w z_wVa9_aWx*$aS18vxh&f*Za%4uXFPLY!lS!x6Sw4ocnaJRkzcXxa-It<8 literal 0 HcmV?d00001 From c0c5151c418c166da4d4174300478953eac8df4c Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Sep 2026 09:39:47 +0200 Subject: [PATCH 4/5] =?UTF-8?q?PowerUp=20Items=20bewegen=20sich=20jetzt=20?= =?UTF-8?q?nach=20unten=20und=20l=C3=B6sen=20auch=20nur=20noch=20das=20ric?= =?UTF-8?q?htige=20PowerUp=20aus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMIMS-Game/Enemy.ctxt | 12 +- SMIMS-Game/Groundflower.class | Bin 1113 -> 966 bytes SMIMS-Game/Groundflower.ctxt | 4 +- SMIMS-Game/Groundflower.java | 19 +-- SMIMS-Game/HealthItem.class | Bin 728 -> 953 bytes SMIMS-Game/HealthItem.java | 6 +- SMIMS-Game/JumpBoostItem.class | Bin 742 -> 967 bytes SMIMS-Game/JumpBoostItem.java | 6 +- SMIMS-Game/Player.class | Bin 4535 -> 4548 bytes SMIMS-Game/Player.ctxt | 2 +- SMIMS-Game/Player.java | 7 +- SMIMS-Game/PlayerProjectile.class | Bin 1013 -> 1083 bytes SMIMS-Game/PlayerProjectile.java | 4 +- SMIMS-Game/PowerUps.class | Bin 984 -> 1294 bytes SMIMS-Game/PowerUps.ctxt | 4 +- SMIMS-Game/PowerUps.java | 19 ++- SMIMS-Game/project.greenfoot | 226 ++++++++++++++++++------------ 17 files changed, 190 insertions(+), 119 deletions(-) diff --git a/SMIMS-Game/Enemy.ctxt b/SMIMS-Game/Enemy.ctxt index 214f50f..b6b41cc 100644 --- a/SMIMS-Game/Enemy.ctxt +++ b/SMIMS-Game/Enemy.ctxt @@ -1,7 +1,11 @@ #BlueJ class context comment0.target=Enemy -comment1.params= -comment1.target=void\ act() +comment1.params=targetX\ targetY +comment1.target=Enemy(int,\ int) comment2.params= -comment2.target=void\ shootAtPlayer() -numComments=3 +comment2.target=void\ act() +comment3.params=targetX\ targetY +comment3.target=void\ moveToTargetLocation(int,\ int) +comment4.params= +comment4.target=void\ shootAtPlayer() +numComments=5 diff --git a/SMIMS-Game/Groundflower.class b/SMIMS-Game/Groundflower.class index 0d343b5b3b0b0c3f9f3b8c8e7529a01aa01c1f7d..0874a3fac39546e578af7e5cf98aac3ba4561dc6 100644 GIT binary patch delta 486 zcmYLFOG^S#6#nj5jymH5Ewyq|v!}i7WpAXYO+`=;6a=QX7EMkJQ&O8Y{Q;R(f1zC< zLJ`rbMgO3m(WYf|u10Y=4>;fBocrN=lRfX>PcHy+Sgv>uU9L0ZlCK)&N?99m!-WP0&!^@e41F*vvN{1rC^xm!gKdMo!ir5^(_(kccqRQVc@k1#0frg2d!ZX0ERO=3*N zI5G@AlNanY)@^5{EuVMC$`?*I^XI$yBc0o~Qo^oE8N~sHW;iKN*q@SiGf6jkAW?Rs z2@0mDQ)w#lG-jwWWE*(u4+tq{(R2-7ia@%G&>a+NBNQDEG;=^`hRFp8l4eMJ7yR^J z5qkgnQK5fLpxHW!MX1dEIqi{-*s3EPOxBQcJfcs+E0P<7WGM%SYZw(~Qr*l)V1gom a7}}xLO~MWO?-2nyZ5|7>Ji}t0xAX(iBuiib delta 660 zcmZ8dT~8B16g{&oY`Z(qrj;s`T7(wc1w{lztzRGtO$s3@pfAQ{I~L-mTbBjm6A%7^ zW`BYIKohfxni!va@YN@O2@fWQJ4*#)Cimvdojd2;bHA&CpT7c_L$$3vPb4AGC#ziFS^cd zv%c!=%kDIWIYv-m=yk=O|C1FSNs3X9izqQf8^U|a5Gj?bvTSgS{VhL}g-aZlF+rp| z!mBx!>1{hrhOSbzT3(m$lN?tu)&4RvHG^v^W;w3Q|A~exMDwNNcoQ3rYu6d#B(x;9 z8(W@+8QkQk;8y$hsDH>-##PI)ZDDz2vK5+Sh}DkmRv3C7d#3ej*=#*AH*Mj+R;KkR zXa;mszU{wPatC*4eHs+XaYUixE+I~@GT)=cg7ExtKj8}9E&u=k diff --git a/SMIMS-Game/Groundflower.ctxt b/SMIMS-Game/Groundflower.ctxt index 973ef36..4fd28d2 100644 --- a/SMIMS-Game/Groundflower.ctxt +++ b/SMIMS-Game/Groundflower.ctxt @@ -6,6 +6,4 @@ comment1.target=void\ act() comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ StarPowerUp\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n comment2.params= comment2.target=void\ collect() -comment3.params= -comment3.target=void\ bewegeNachUnten() -numComments=4 +numComments=3 diff --git a/SMIMS-Game/Groundflower.java b/SMIMS-Game/Groundflower.java index 90de034..266dfad 100644 --- a/SMIMS-Game/Groundflower.java +++ b/SMIMS-Game/Groundflower.java @@ -15,23 +15,16 @@ public class Groundflower extends PowerUps */ public void act() { - bewegeNachUnten(); - this.touchedByPlayer(); - // Add your action code here. + moveDown(); + touchedByPlayer(); + if (deleteAfterActCycle){ + getWorld().removeObject(this); + } } @ Override void collect() { Player player = getIntersectingObjects(Player.class).get(0); - player.reveivePowerUp(duration, "GroundPower"); - } - - public void bewegeNachUnten() - { - this.setLocation(this.getX(), this.getY()+2); - if(this.getY()>=this.getWorld().getHeight()) - { - this.getWorld().removeObject(this); - } + player.receivePowerUp(duration, "GroundPower"); } } diff --git a/SMIMS-Game/HealthItem.class b/SMIMS-Game/HealthItem.class index 7910582e5252f868cde79e2ee7c85cbacc47d1c7..417a134633166f874e65b20a969c269881721bd2 100644 GIT binary patch delta 550 zcmZ9I-AWr#6ouE0CKD&e7!ysVvHqm~CGjUlTdk%l(O&ezqM#_KH{;}}=;+8WD)Gh_ z5K72ZAEO`vy%4Ya1U`cgA>C($B3_(zHfQg>zBTg{ywmi*FZT}s%2=%FyVv0p=R$sW zE>CrY(Jl~2h|uOa=hmUDELGQRvnt&d?sW)sB1uS8q%A#J-uI+iw!G!4WlI8Wt9?V@ z1JZ=>f%LW<*RJq*Hn(!%N_o2PI9|bjEa~`&ZVf#Gy=&-W+`9pSaHYz%x_2ZkkI<2Q zfd?JKi11k7{z#xWdH|0ncISqM%5scQJipDsh`G+)Z9T`jr6fsGNy3(p= z=q%d0?wQu{PxEZU+_Po<7j4s2{h7M2Kl4A*5nydWGa~rHl>qrVjTycPUlC%R;(CWC zRnN#b(8?#4zeVCVB3!2Ubp7F86O?BXLDndHwsGhfYdca%yzw`{{#QIS>n~A?uetxE zE%s5Vy7KW%1N}{R7!KeOnUxVnYVolK3JMnRVNo7d$QUEiFnmbzbzMQY7voPW;Twl1 J%=>!_{{Xg|U)TTu delta 351 zcmZ9Hy-vbl6o#L#P^zVtQV>!6S5QB6Fvi6VCu1DkbZ{Zsgn>jt)P%`+38q(Kf;Bi8 zXRg4jF`l+Yjmvq@N#66E_l&F$(;k1mz5y+E9_@=p;pY1GvJ+e#4o)WQd~TU}6OkAimB#$(B0nH7cG5AMRT>V?O~`TeS#Ilw@P zI{F2ri>~*K^(3>wnp9g9Cdra#J$9vD>NI3hY><;0bM{1Ij;SN2{sUYA6#f9r1ke*Z zn?HmzGRd`?_Pq!{GooVfj(5`3Lo9zjV)2*jiWz+QtR(-I6LuwC{|@I#{+Bjd3pz3~ww zsvFoEx#@M&%Yl(0hBOTv-d7TC+eeI zRG&_5gwQS!N088_)rIpxR_3c~Zn-MGF!wqHo*+p`RHQ4lEFEa+l^nfLbzDiHZL^;i zc#2L!=uqk{<+&9e&*hg7Jti&^*G@&E+ zz=NU6E9N&X^bvx00S$aWU=TyKt5PI~yoG|mFkaMdCNiUh@Y2P}*}PKc+C~=R0uy*i zhU*R?1gf|GX zPIA4&lctw0G|vr-<$mp`7L5s delta 332 zcmX@k{*0CD)W2Q(7#J8F8FVLd#jEj`xy2bI*cl{w7^E1aC$}&f%E~e_aC(*I7C7bS7ng7`2r$U=Feor6GBWTL zrIt;;#8^Bzlqs4~Y4S!U*?MK5ja&>&K$4Szg@Kzv1<2xIU<8w@3~E4{kwKk-4M-{h z*~UN`B*&_?je&O~kio=&Fn|we06&retPBtX7#K9*281&(gDsQR5)#?$Y# diff --git a/SMIMS-Game/JumpBoostItem.java b/SMIMS-Game/JumpBoostItem.java index 2368462..5188430 100644 --- a/SMIMS-Game/JumpBoostItem.java +++ b/SMIMS-Game/JumpBoostItem.java @@ -11,11 +11,15 @@ public class JumpBoostItem extends PowerUps int duration = 60*60; public void act() { + moveDown(); touchedByPlayer(); + if (deleteAfterActCycle){ + getWorld().removeObject(this); + } } @Override void collect(){ Player player = getIntersectingObjects(Player.class).get(0); - player.reveivePowerUp(duration, "JumpBoost"); + player.receivePowerUp(duration, "JumpBoost"); } } diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 2d06a0a33a578ca1a227f42877c779270639d73c..62aa04eaba52f75b7e4ac3c3fa1ecc623023b2b5 100644 GIT binary patch delta 596 zcmXYt%WD&16vfXs?>5P#8L6d>t;LGkF#|#+qN0mzA}*{8UDSd$wu2Z0Sx1pfyo zSRchj7Y-D`)+7^SeY8%5Qd|f=s4M>fAFVqV6}&U)2j_Br+{<^lr!mwTT0AHXrm+;p zbL1F0ubIWst2fNaVxbc?)MdC~H0&eNzVRl5I91AKXZ*%;7_U%akjz`9%ydD)8-|Xv zrED%`S%sp46$asqnVDAbjv{)e~9kW-}VZ}vCTX3;xZ>q-L%ealtG!Sl&;S0VJZIA?T z`iOlp`dynNF9A$Qoa2&$;i76Mx{Nz7T)cdM5k4t6FbwT=fcpg>2Mq0PfZd{xQA1k| zP?C~Dx3ECJS4jTjN&Tcj(kaqK2W4Hap}&sn`dE!h4Z9|Mh}Y5O;1Y3!B+rjy)E|fl z)Qvbu>2%i#u~*bQx~+-#3=h$_gM1Tf99H1PU3_q`yH{L>Hx_T;V+?CC?tqK?OSGKF zC#p$AY$MiFuHY%|p@CVn@CfUe!#6y}7Umg`CqZaB1+$Lh_<^4g{eX7j^WCp@q~v~M k6I>8!A430dR7Q=dsu~*L_VjGyu#EIyXcYez?dI_3KLGWYPyhe` delta 600 zcmXYu%WD%+6vn?h&pap1)Cy^66)S3o4!%mjE?jgI5wtGc6kQnYP?3&F^H2(f`~yBP zqt+G|qC&8^=$K?;tk$VU?ZSn{2kzYa1lKlrCe6Kk=bqm^hjZb(&4K#B(r(Fb zGMg@3oH&ubY-DAuGDJ=qW+t6YWoI@k0VMG{geEc!fk`7jcJ_jCE}sh`i?<=X!z_br ztxNlvYw_|P=2nJegRx7MlJB4Be+(WBz-env8DzuOsxm05iw;cducB`|g;{)}YG|_u zpYet0D@g#S?XwO?zNsb3CAw)19p@5)?qJE<+ocz44(jtb$R~s{bX|Sc#+`zP{krY6@4|F*T$<9s^~uBLA-`8f-p(G zPe+leVS!3v&B5r17!y_3!K((|Ff5?AgM0&P99+0@2k*<+8WWe{j>qfx5XD-Q+vVVn zP0#Z9NbvyK09?ftT&H~lb12~K8 o5NSlKUi72Z~Ot*_O=(n4Ghb$nW8AcelE7fvZLMq0hVB!&j0`b diff --git a/SMIMS-Game/Player.ctxt b/SMIMS-Game/Player.ctxt index 330efd4..176720c 100644 --- a/SMIMS-Game/Player.ctxt +++ b/SMIMS-Game/Player.ctxt @@ -18,5 +18,5 @@ comment7.target=void\ checkHealth() comment8.params= comment8.target=void\ handlePowerUps() comment9.params=duration\ type -comment9.target=void\ reveivePowerUp(int,\ java.lang.String) +comment9.target=void\ receivePowerUp(int,\ java.lang.String) numComments=10 diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index 0a66f42..19fd2fc 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -118,7 +118,7 @@ public class Player extends Actor health--; getWorld().removeObjects(getIntersectingObjects(Projectile.class)); getWorld().removeObjects(getIntersectingObjects(Enemy.class)); - getWorld().removeObjects(getIntersectingObjects(Spike.class)); + getWorld().removeObjects(getWorld().getObjects(Spike.class)); } } @@ -137,7 +137,7 @@ public class Player extends Actor } } - public void reveivePowerUp(int duration, String type){ + public void receivePowerUp(int duration, String type){ switch(type){ case "dummy": break; @@ -145,10 +145,12 @@ public class Player extends Actor currentJumpStrength = defaultJumpStrength; currentJumpStrength += jumpBoostStrength; jumpBoostDuration = duration; + break; case "Heal": if (health < MAX_HEALTH){ health++; } + break; case "GroundPower": World theWorld= this.getWorld(); if(!theWorld.getObjects(TemporaryGround.class).isEmpty()) @@ -159,6 +161,7 @@ public class Player extends Actor { theWorld.addObject((new TemporaryGround(duration)), 200, 550); } + break; } } } diff --git a/SMIMS-Game/PlayerProjectile.class b/SMIMS-Game/PlayerProjectile.class index ecbbe700eb240e935324f4c1692105a2407cb24f..236a71e47cdeb7dd3ff6f235e8c8604991effa71 100644 GIT binary patch delta 666 zcmYk4&rTCj6vn^XUOIGoMd;8!&;kxsX$R$RK|m!b3V|0ODoeP431DI-Cb;P{OuCW< z341mqIwX+b&IM1x3$QhQw;jnW=A3)ZJ?HzKd+*#^*WLE*->Vw{4J-%tgh&UA?t-(U z545ivyT1O~*!JHYZy#s@@ySLvdK4a`S3n+q`NpKIZqznSKC9paM6=oR{$KpTl+7yCG2Z$uel!KolYyd@APXtlIYtXea0S@jC4`s! z1?z%Q0`n$E52V?V!7Hv*r;h#YUD5F@z}={4&l5=Dzl=YhFJ9W!~^%Z`S4`Ukl-qa6_B$>=O? zT9Y8j;z1s##Mda(4#!aC7>cqbD)Y%`%^iJ@NOc0Lr*MojtPn5c&KbIr=Zq#h8`mb9KdO&bPyhe` literal 1013 zcmZ9KT~8B16o%hvw=FFLEiG(mMFj#NbEb#j+jSg=N?5E+qI< zyfE>e8*ggjg_mCVqm1Wl7b#rq%+Aa?&-jw38GjKhD+vXy{#;2!Z*X$_+% zC9(|G&Au}CH(hVTQ3uCO*S0O+avcUvN#s!wn6~^gQpedg*-EJUp2KD&bQA@~dMbG1 zdUjW!P^q@h42PSI3`!`ca7khgm(LXxB}q@Q$IdQ$Ce_LaBCNSl-AUo9Kq9ot(hCyT za9v=Qq&tpkIf3$guGs0FViqgyJ>$rz+lJGtH*LfB8>8NaU}h~z+`uw*h*RN2M zDpBL@G;KduR<9p$@J)$Zr@?PItS)hzH^L@Z-JnmPrrV{CXWN#eULGFoD(|(i%U6+a zyQX397@o!JXj2RNmd|GwudYE}3~tE8c3_zMFN{x7MrPYR^h~uGUhmAsv{kMe3*gJG83PEND*Den5PupBV1a$j3k$_h^*E0IcCYtppzYPyRsB99OR8QUj!F z15D7D`+{+rrs_3rH?3-BZY@yjwlhD9wv?K^A%xOs#wck z8DRc5a-l@HIHxm7fgo}kWuniG@Qdg9I`QaLNBqwbe~qwphjif{h?E*cOK&k3$-wz9O zPUr^$?K5uG4QB-sMt-FO8FZwPmFR>N$SnEqRPbb@CeT+_o(k36>re&EoZoUhB_Lj8 znb9rLqro%l{-(O=zpLutK8ak!82WW*O_gtKEqV5q3iQ8ziTxO0LPdp7{lF^|-^g3L zwMD^V7DE_LV?^QrM*pfkPLhGrln++lC?^!?H}*h8@{0MDG!9baF83jc2}}wMkh@f+ zni_N6YNZK6rBjCW#@@6Go?WdJ<~_SsE9RS#dgyuu%dLgQP8`OOG>%FfgCWozCA5AE zBx~+_+CxiATCXW_Tzipre9t4DPCqGe3I(2F9RmA}QcM!jHj63hcASwoi*xjx3v||0X!%Y|o-#@$jWC2;61R0i2NCWnx3WeZ$$7s_;XRgHRg3lY zRTVt8SM{XiG=jHc2d>`7!DP7R(($adGiOEmVe3|QEr+)AcER3=PquGF!$TXaW-ECz zyX@BkN8NTce%B7fDcuXUIK#n5v}hl{phud|6zCk<`Mks3G*1Y=v*tGlGw~Ja&)l`) zu8u|79Y`{-#Jy~u#68^SPQYrRyo^zX%m%u+dd)9Le?TWc`?v-*W+K8IAUDuU%zdmd z$9vO0v{pCkvEfZ@lB!}DZnOmW0?6P zBpLl53G{%rND`6q17<{$*v5%A{KS}boU%^m&Npyz*Q9O=1I8)o5LqT7j)7)+ETosl zFX92gITtMwoAqhqCruWAh3jhSRRh=c2UlMMH$NfsPfbUt=_u70WHa|@n*7_i3BoUt IpbZcI0PNT5O#lD@ delta 575 zcmYL{%}*0S7{-57Y`1KO7PnZX#SaR8Eea@~eg?dmc;I48ykWbECapEKmGs1aU{d$) z&4Wi1Q-cTNnJX9m7ZSoVZGmj&oq2bj=l9OMyI=i7&)+}(`w!UUdDoxc@JTc3;af7K z4C$@LPSkw;>9Zl%YP2iwqw0&!R&BczH9f`*slnR0a+Yx}#?xjqlV`%?lBK}qxNgeD zNlVeuyh@{1iz+QApR!!#TKC6H<_6OqWy=h+-Gg;ML!Mif+uVtNn(|_3nd6>LQf)W4 zTOS%94d!KSrp&N@W?oV@F!%7z&AuRzRi)f1U{^1aX9P7fMu z1KT6JM_~9)F6?ndqoi@&aYy=x3PglJz{nJH!zGsINCgO=|P7&bv2axKj-a yjqGtV!GG+lx$rl4gZn)e&M%Oa7$)@vi+W1^B87o{SY%v3#ABX_Zg?tff@dc`AVswR diff --git a/SMIMS-Game/PowerUps.ctxt b/SMIMS-Game/PowerUps.ctxt index 2145f73..58a37d5 100644 --- a/SMIMS-Game/PowerUps.ctxt +++ b/SMIMS-Game/PowerUps.ctxt @@ -7,4 +7,6 @@ comment2.params= comment2.target=void\ touchedByPlayer() comment3.params= comment3.target=void\ collect() -numComments=4 +comment4.params= +comment4.target=void\ moveDown() +numComments=5 diff --git a/SMIMS-Game/PowerUps.java b/SMIMS-Game/PowerUps.java index ac9a537..9e3c868 100644 --- a/SMIMS-Game/PowerUps.java +++ b/SMIMS-Game/PowerUps.java @@ -9,20 +9,35 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) public class PowerUps extends Actor { int duration; + boolean deleteAfterActCycle = false; + public void act() { + moveDown(); touchedByPlayer(); + if (deleteAfterActCycle){ + getWorld().removeObject(this); + } } public void touchedByPlayer(){ if (getIntersectingObjects(Player.class).size() > 0){ collect(); - getWorld().removeObject(this); + deleteAfterActCycle = true; } } void collect(){ Player player = getIntersectingObjects(Player.class).get(0); - player.reveivePowerUp(duration, "dummy"); + player.receivePowerUp(duration, "dummy"); + } + + public void moveDown() + { + this.setLocation(this.getX(), this.getY()+2); + if(this.getY()>=this.getWorld().getHeight()) + { + deleteAfterActCycle = true; + } } } diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 4d01a29..f6cddf8 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -1,27 +1,30 @@ #Greenfoot project file class.BreakingPlattform.image=Breaking1.png class.Button.image=button-red.png +class.Enemy.image=bee.png class.GameOverWorld.image=GameOverBackground.png class.Ground.image=weave.jpg +class.HealthItem.image=herz.png class.JumpBoostItem.image=mushroom.png class.MovingPlattform.image=Platform1.png class.MyWorld.image=GameBackground.png class.Plattform.image=Platform1.png class.Player.image=Player.png +class.PlayerProjectile.image=beeper.png class.Projectile.image=Projectile1.png class.Spike.image=singleSpike.png class.SpikedPlattform.image=Spikes2.png class.StartWorld.image=StartBackground.png class.TargetingProjectile.image=blue-draught.png class.UnactiveSpike.image=inactiveSpike.png -dependency1.from=GameOverWorld -dependency1.to=Button +dependency1.from=PlayerTestWorld +dependency1.to=Ground dependency1.type=UsesDependency dependency10.from=MyWorld -dependency10.to=BreakingPlattform +dependency10.to=SpikedPlattform dependency10.type=UsesDependency dependency11.from=MyWorld -dependency11.to=SpikedPlattform +dependency11.to=Enemy dependency11.type=UsesDependency dependency12.from=MyWorld dependency12.to=Projectile @@ -29,115 +32,130 @@ dependency12.type=UsesDependency dependency13.from=MyWorld dependency13.to=TargetingProjectile dependency13.type=UsesDependency -dependency14.from=Spike -dependency14.to=GameOverWorld +dependency14.from=GameOverWorld +dependency14.to=Button dependency14.type=UsesDependency -dependency15.from=Spike -dependency15.to=MyWorld +dependency15.from=StartWorld +dependency15.to=Button dependency15.type=UsesDependency -dependency16.from=Spike -dependency16.to=Player +dependency16.from=UnactiveSpike +dependency16.to=SpikedPlattform dependency16.type=UsesDependency -dependency17.from=Player -dependency17.to=GameOverWorld +dependency17.from=UnactiveSpike +dependency17.to=MyWorld dependency17.type=UsesDependency -dependency18.from=Player -dependency18.to=Plattform +dependency18.from=UnactiveSpike +dependency18.to=Spike dependency18.type=UsesDependency -dependency19.from=Player -dependency19.to=PlayerProjectile +dependency19.from=Button +dependency19.to=MyWorld dependency19.type=UsesDependency dependency2.from=PlayerTestWorld -dependency2.to=Ground +dependency2.to=Player dependency2.type=UsesDependency -dependency20.from=Player -dependency20.to=Projectile +dependency20.from=PowerUps +dependency20.to=Player dependency20.type=UsesDependency -dependency21.from=Player -dependency21.to=Enemy +dependency21.from=HealthItem +dependency21.to=Player dependency21.type=UsesDependency -dependency22.from=UnactiveSpike -dependency22.to=SpikedPlattform +dependency22.from=JumpBoostItem +dependency22.to=Player dependency22.type=UsesDependency -dependency23.from=UnactiveSpike -dependency23.to=MyWorld +dependency23.from=Groundflower +dependency23.to=Player dependency23.type=UsesDependency -dependency24.from=UnactiveSpike -dependency24.to=Spike +dependency24.from=Enemy +dependency24.to=Player dependency24.type=UsesDependency -dependency25.from=Plattform -dependency25.to=MyWorld +dependency25.from=Enemy +dependency25.to=EnemyProjectile dependency25.type=UsesDependency -dependency26.from=Plattform -dependency26.to=Player +dependency26.from=Spike +dependency26.to=MyWorld dependency26.type=UsesDependency -dependency27.from=MovingPlattform -dependency27.to=MyWorld +dependency27.from=Player +dependency27.to=GameOverWorld dependency27.type=UsesDependency -dependency28.from=MovingPlattform -dependency28.to=Player +dependency28.from=Player +dependency28.to=Plattform dependency28.type=UsesDependency -dependency29.from=SpikedPlattform -dependency29.to=Spike +dependency29.from=Player +dependency29.to=PlayerProjectile dependency29.type=UsesDependency dependency3.from=PlayerTestWorld -dependency3.to=Player +dependency3.to=JumpBoostItem dependency3.type=UsesDependency -dependency30.from=SpikedPlattform -dependency30.to=GameOverWorld +dependency30.from=Player +dependency30.to=TemporaryGround dependency30.type=UsesDependency -dependency31.from=SpikedPlattform -dependency31.to=MyWorld +dependency31.from=Player +dependency31.to=Projectile dependency31.type=UsesDependency -dependency32.from=SpikedPlattform -dependency32.to=UnactiveSpike +dependency32.from=Player +dependency32.to=Enemy dependency32.type=UsesDependency -dependency33.from=TargetingProjectile -dependency33.to=Player +dependency33.from=Player +dependency33.to=Spike dependency33.type=UsesDependency -dependency34.from=Button -dependency34.to=MyWorld +dependency34.from=Healthbar +dependency34.to=Player dependency34.type=UsesDependency -dependency35.from=PowerUps -dependency35.to=Player +dependency35.from=Plattform +dependency35.to=MyWorld dependency35.type=UsesDependency -dependency36.from=JumpBoostItem +dependency36.from=Plattform dependency36.to=Player dependency36.type=UsesDependency -dependency37.from=Enemy -dependency37.to=Player +dependency37.from=MovingPlattform +dependency37.to=MyWorld dependency37.type=UsesDependency -dependency38.from=Enemy -dependency38.to=EnemyProjectile +dependency38.from=MovingPlattform +dependency38.to=Player dependency38.type=UsesDependency -dependency39.from=PlayerProjectile -dependency39.to=Enemy +dependency39.from=SpikedPlattform +dependency39.to=Spike dependency39.type=UsesDependency -dependency4.from=PlayerTestWorld -dependency4.to=JumpBoostItem +dependency4.from=MyWorld +dependency4.to=Player dependency4.type=UsesDependency -dependency5.from=StartWorld -dependency5.to=Button +dependency40.from=SpikedPlattform +dependency40.to=GameOverWorld +dependency40.type=UsesDependency +dependency41.from=SpikedPlattform +dependency41.to=MyWorld +dependency41.type=UsesDependency +dependency42.from=SpikedPlattform +dependency42.to=UnactiveSpike +dependency42.type=UsesDependency +dependency43.from=TargetingProjectile +dependency43.to=Player +dependency43.type=UsesDependency +dependency44.from=PlayerProjectile +dependency44.to=Enemy +dependency44.type=UsesDependency +dependency5.from=MyWorld +dependency5.to=Score dependency5.type=UsesDependency dependency6.from=MyWorld -dependency6.to=Player +dependency6.to=Plattform dependency6.type=UsesDependency dependency7.from=MyWorld -dependency7.to=Score +dependency7.to=Healthbar dependency7.type=UsesDependency dependency8.from=MyWorld -dependency8.to=Plattform +dependency8.to=MovingPlattform dependency8.type=UsesDependency dependency9.from=MyWorld -dependency9.to=MovingPlattform +dependency9.to=BreakingPlattform dependency9.type=UsesDependency editor.fx.0.height=737 editor.fx.0.width=814 -editor.fx.0.x=754 -editor.fx.0.y=45 +editor.fx.0.x=444 +editor.fx.0.y=78 height=830 -package.numDependencies=39 -package.numTargets=21 +package.numDependencies=44 +package.numTargets=25 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -153,147 +171,175 @@ readme.x=10 readme.y=10 simulation.speed=50 target1.height=70 -target1.name=Spike +target1.name=MovingPlattform target1.showInterface=false target1.type=ClassTarget target1.width=120 target1.x=0 target1.y=0 target10.height=70 -target10.name=StartWorld +target10.name=PowerUps target10.showInterface=false target10.type=ClassTarget target10.width=120 target10.x=0 target10.y=0 target11.height=70 -target11.name=Plattform +target11.name=Enemy target11.showInterface=false target11.type=ClassTarget target11.width=120 target11.x=0 target11.y=0 target12.height=70 -target12.name=TargetingProjectile +target12.name=MyWorld target12.showInterface=false target12.type=ClassTarget target12.width=120 target12.x=0 target12.y=0 target13.height=70 -target13.name=Projectile +target13.name=Spike target13.showInterface=false target13.type=ClassTarget target13.width=120 target13.x=0 target13.y=0 target14.height=70 -target14.name=Score +target14.name=Groundflower target14.showInterface=false target14.type=ClassTarget target14.width=120 target14.x=0 target14.y=0 target15.height=70 -target15.name=Button +target15.name=Player target15.showInterface=false target15.type=ClassTarget target15.width=120 target15.x=0 target15.y=0 target16.height=70 -target16.name=EnemyProjectile +target16.name=Healthbar target16.showInterface=false target16.type=ClassTarget target16.width=120 target16.x=0 target16.y=0 target17.height=70 -target17.name=PowerUps +target17.name=BreakingPlattform target17.showInterface=false target17.type=ClassTarget target17.width=120 target17.x=0 target17.y=0 target18.height=70 -target18.name=Enemy +target18.name=GameOverWorld target18.showInterface=false target18.type=ClassTarget target18.width=120 target18.x=0 target18.y=0 target19.height=70 -target19.name=PlayerProjectile +target19.name=StartWorld target19.showInterface=false target19.type=ClassTarget target19.width=120 target19.x=0 target19.y=0 target2.height=70 -target2.name=Player +target2.name=Ground target2.showInterface=false target2.type=ClassTarget target2.width=120 target2.x=0 target2.y=0 target20.height=70 -target20.name=SpikedPlattform +target20.name=Plattform target20.showInterface=false target20.type=ClassTarget target20.width=120 target20.x=0 target20.y=0 target21.height=70 -target21.name=MyWorld +target21.name=Projectile target21.showInterface=false target21.type=ClassTarget target21.width=120 target21.x=0 target21.y=0 +target22.height=70 +target22.name=Score +target22.showInterface=false +target22.type=ClassTarget +target22.width=120 +target22.x=0 +target22.y=0 +target23.height=70 +target23.name=EnemyProjectile +target23.showInterface=false +target23.type=ClassTarget +target23.width=120 +target23.x=0 +target23.y=0 +target24.height=70 +target24.name=PlayerProjectile +target24.showInterface=false +target24.type=ClassTarget +target24.width=120 +target24.x=0 +target24.y=0 +target25.height=70 +target25.name=SpikedPlattform +target25.showInterface=false +target25.type=ClassTarget +target25.width=120 +target25.x=0 +target25.y=0 target3.height=70 -target3.name=MovingPlattform +target3.name=HealthItem target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 target4.height=70 -target4.name=Ground +target4.name=UnactiveSpike target4.showInterface=false target4.type=ClassTarget target4.width=120 target4.x=0 target4.y=0 target5.height=70 -target5.name=UnactiveSpike +target5.name=JumpBoostItem target5.showInterface=false target5.type=ClassTarget target5.width=120 target5.x=0 target5.y=0 target6.height=70 -target6.name=JumpBoostItem +target6.name=PlayerTestWorld target6.showInterface=false target6.type=ClassTarget target6.width=120 target6.x=0 target6.y=0 target7.height=70 -target7.name=BreakingPlattform +target7.name=TargetingProjectile target7.showInterface=false target7.type=ClassTarget target7.width=120 target7.x=0 target7.y=0 target8.height=70 -target8.name=GameOverWorld +target8.name=TemporaryGround target8.showInterface=false target8.type=ClassTarget target8.width=120 target8.x=0 target8.y=0 target9.height=70 -target9.name=PlayerTestWorld +target9.name=Button target9.showInterface=false target9.type=ClassTarget target9.width=120 From 5cf095c37089b87b9da3e7cee6dd128f3ce95ef1 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Sep 2026 09:52:17 +0200 Subject: [PATCH 5/5] Fix: game crasht nicht mehr bei damage --- SMIMS-Game/Groundflower.class | Bin 1169 -> 966 bytes SMIMS-Game/MyWorld.class | Bin 3418 -> 3892 bytes SMIMS-Game/Player.class | Bin 4548 -> 4655 bytes SMIMS-Game/Player.java | 1 - SMIMS-Game/project.greenfoot | 248 ++++++++++++++++++++++------------ 5 files changed, 159 insertions(+), 90 deletions(-) diff --git a/SMIMS-Game/Groundflower.class b/SMIMS-Game/Groundflower.class index eb6a43e9087ab3fbe48d032408ae7dc3ecad3040..0874a3fac39546e578af7e5cf98aac3ba4561dc6 100644 GIT binary patch delta 487 zcmYLFOG^S#6#nj5PR>kaYHFILJ#Fl1?>AFHn-)TgpdyIzRts}r7z^9<8)R1PT1LAd zgjz(a7XFd`LaXT9F^bDQ=fL?M=bT#LLslB!uWtYhY}S;M{kBW%itkw0Wd&{M(h!25 zq0_M{<^?ZqRSTulDz^jFi)iRZlp$Q?CGK$J%;C0SI@?vV#2MJ3;Kw!eAW>@!rh1W* z(WjvwX_7m)IWM1CmNRu=*`=bJX4%L9gTJXRm_r(dG2$LGL(O7LhOQxparc4E^iMLV zyS7y+7Yo)kw-sbCtziavh7OyX?iagvAEmtN14AqP6ldK}DRnzXODd2k2G9Z(^Hgcn z6>$NJlo^(qc&d*GDSC0ej&}M%{Tbmqs8q)2C!eV2gV2nU3+PTQ2#d3zlkO6u_pcup z`Zokx_DC#7Y30x9fON!ENj;RQW6<}4Q3>zJ?B&Q(4o%cCCCntxtb@P=MG(D6Amy1v UoAlo$g0$Ky)@XQ!b&t341F`x_6aWAK delta 690 zcmaJ;O-~b16g_WR7&`N4$5KJ5w0uZAovJNg;D1!JPzYm)LdOHjICUjH#3MQx z9-rT*{5{=~y|NWx&>}D>Qho0NjL3u{9Uwc<_y{g@it8r?gC{f-f#k|SB}~#gLxia| zCTYhOMo^^HmXQ8OK)Ea6NjS`kbX0muHt0R6I&CG*09ND+ZYem0xmL73Lru;HxGhPQ zkTg!0fh-JK_9!Moj^S{;o$itt|Eqp{STzU$wR> zUi;EMq*`m=r7Eb@{w9&fI&>zI&f@_Bwm*z3;7Y zmwf7vcdva5paj=@)j=`JR;GtyaTSHgRxsbVDaLr`p+tiX3k0mWOD5N-aNv0j3$e(! zBW60wutdR94a-n&6s6?YmupyoN<&YXo>--!3SNQKwuWd&Rb4cu%e|{L)JUz`8jEhz z>*A3nQ@ut*P^z`I)=)>w!WO+bqPNNQ>olyFhSBj*tX_{tTIwtBZ%n0qqlQh;1U!{Z zp?G|2G}c@i-O&;cN7Fl6RD`faL7j#$bVIciC$@YbeihaOYWhHQzgL&FOao2v6Zoz;=% zwR%j!P63;|V5hv^ZVg>17jW=ywUKbVK`Ij(UX;pID$DdpeFGWk#7mNffP(!za5x4k z_DQY|89!Mv(+(orLpER0a0IU!w=J{mM>QP7abv3W&!x5o$*q7=ZjxLmU^g}SLqb5n z5~|~hw5oWhuCXH2S{>Tbq!X@*U+y$<7aFr|YcjqP5F*`~+8?Pqb- z*lG7$2LyaZm)&RFuzPHF!rEl~W`DxVh)@Q`nzI5P4==}VBTbpJ>;x@7C>*_Ta)k$@ zD5X>9##0!FNyvghtHvEbE>7Zg&MC-DoZs(PL6uU9#PMOcWy{0<}^C$s8WRcZ zX^xXHg|Gscj3W3^n&4+S@~{R|QHN*Hf@z3jI!S*PhmnsHT>36%-~wi%7qf63&*27U z<0j_dR}|n6mf~&9#os6rR?HJ=m@hI>ES^M($YW8?M5!poLQ#!HW?c3s?|v^X4w0z9 z8+en!$`S<(`CANCK;+W{ytRmt>wGce+e5-A&Ue|C41A{;`kM8b};;YSN>&e@CRwPhADZr(%`A@ z!Ptk_CT$Hpc#O74(AJN}fZ$O!CAs=5PfAxSVOTf*DfDELe#JSj9kBF^8(DSQSeuiY)qox!vLbOuT2F0#aFkFAM9KlYaUr?^EPWmo=Yi=@?(;I`qojAQ-*JE3A1 z#$Y!KsEdWL2gSUsEdLC8%%kN3J|+tJ|4KFjiPr}44;KpgpScI|Ff&j>3=o)d3KIsf zkCYr3iNY9k`Vzz4XCKpkKl{!BcAkSQ>q9JRS+7U#yH6*G8hm294~%e6Pr0eo@~`y> z?`fv@gY^FLNbhD0+=i}YRt;k~N({${;W#mL6T=C!-{rHQhe9ARtjDMSi-G@NiNUz3 z+&;WE+`~K!49K<0J}{OQK8ao6;r435XIzzn&+!Fk2aoLK`z8AMrBb?r JYxoA<{{U6bwMPH| delta 1642 zcmZ`(ZA@EL7=BJ$db`UlZ7+k-0TtQiSlJvOGB?>^8*_{S16BrfA8w^BpM^px;1npE zn{Iy2UB8B#h#F%|{6U;_x@fXLX3?0KnD|5g7=QRvV=`l6BKq7?2ZWin=bWDRyzl$G z=Xu_9-Sxv-`K$TQz5uWX@6F1$h4!;ho#m)dkb+79Q$fw978w@oQLqzpX`A^;1!EZ3J~I8e+UWE1sMQno`Frbq1I@nn zP*D3dr7iPy0U>N=T#+$_Hzi!v-LGlK&EJW)wIa!FdPl&e-7>Gyrp=NzCaGm9OyY&Y z5lBtWw&biP=ZwT`h9FB$juYC~(vI2~JzS7DW+gmTq|s{Qo*nDB+K9E7q*b8@P=GTy z%h|xwi5Og3VS)?@=f@2elZd%*qTK69y%EPQ2W~qIm2+^-CS3GXBgo~LPlDGW9qW;e z4g5TSLMAF@_+8k9D!3_*LbPEsiQ9sHJcuZ^VjM-dh+%JCO=3KJ?s7Ag}pbS&UZ)?g71JcVT=?FHW2W$rx7m6>U~@ElhX6MOJHR~BZw4=o#pJJcDTd=wp{?6f`c1JFa9dgg1iN9v|b+k?)o42^d8^>0MxO4+YExbdwz2pYGT}b~31QZ@?uUQ(?*a8%HJN^SdF}<#Ofl44)*96SQ9> ztp?7eButvZ`kNSFt&uu+p+jsYGupKE{@7x34N@u*w$%_DD@w%=Q|qJD@#zGnOop-{ zli^=xcm_?P(}6Hefv%{Qd#1J~QV%ip@ZHq*l2b-qFb=IUEz7frVT>5YnP-9+V#F{> z3}=bq+%gO;l==T*;5)6CuYH(S&^`jNzwJBc@Wf(!tAq>EBC{hhct;!AFO%F^{(2ap banFEP@G55uL%zY^YitY9Q(zi1q}2H@g!wt^ diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 62aa04eaba52f75b7e4ac3c3fa1ecc623023b2b5..38bfcc69a07c207d8840183e2b0c40a5177444dd 100644 GIT binary patch delta 1241 zcmYk6d2Ccw6vlt|&6|BX(@t8Tol*(3h7ODkPBTcL5pH>+|gE4-1mLOh|77?F`a+TyXT(oJIi-Z-q^gy zY6Ii{jEn+HIkh)%wr7r)Cl&5iqtna=F|k7&;3x%KS&-p3<$!m1D4AgG~0)0xw#)dkcCf^_3b&6D1gU1AZB(!4C zfnScFtGJYt(!ZCCJn4sW^07hiAIZtja=Q4KPlOF4g|u$=^J#wKY98b>IcY3p3!n1^ zE*iL#FR4W5E8#f0OvS#Im@{z<*S{>rvPx=1#V1O7q@SvAa+%Z59Kp<{j&Jx@azcBd zVwhIG<9o^FWbmV%rrFERs9Y?V8ceQF3fXytP1d$>y}H6W9Bv$p+cd|ckJ_Yd_T(M8 zi0-p_+%?R8jYDWQ!+VA0Vp43JfLN0<`Z$BE`0GT9^&-smv@yVy+{m>e&qi)yTJKFo zdVA2~f6*bGoR3GB&xF+)nRkwpJS;`vW>NYUDX_69L9{4=3{fVu#f1mk6-l)_DPt0+lbQ4-mb@`z;lfgha~WFsGt2a!iq`ocCXr6+8ju^LJfi=ML? z+d9kBzvUB=Net;uHlw9F|=WSG09{d>e(Y-1}!+{+`}#~!xJ4`c^p>||W_ zYm$d#h#}?T;ry_1^pz4=!cY9{XrlDO+|KEj{K7e>U-?Z|$XS;vf`8NKWmJX3;b4tc TJ@YgRytJIc*`MD9q4CFmQA;1j delta 1122 zcmYk5d2Ccw7{z~g-kYVfylE#`+fG|qS_qYq;51WBFovZHNUgjIoPZJrP>AegwyHGYbNKNOfebwq?Bn6l0wOe1AHMHREjD^wRK7^o@{sCNYF zgGbcJn$R;{8ohubns|cG!VG$SkQOMBmsJhw1rCbD+Y~`|4 zE+(;>D_q53GVgPZa@pTc!qGw9pIw)kjv$Kh9}U>YL)8-N?a&hO|B@A-p!YLcFjdrY zgP%nc<~eV)#NAD9iPl-W+bRtW%dA_l`VgAzVQZplu0{nE|rsqw}kvQqj-l(-lc~33PfrPL}Ux2!lLpEzsf3R)fS0UjzF1{=DHGQ zEK85QsW>*}i!A*ci5m%X2eDXWf3B@Dbz2>ae3@$>aO*Z4i+m-meW!SF*Fcuf`}jt& ziHdS}M7KsCLoN<75Y2LQ2c_liy$sBc_Hwd>p%T~lEF1FKCJ2d{5BY$P+$_3EZ hrGmh})O*>jEXxX1yDA^N%fnt~-H}f~i8O-y`+r+7`FQ{U diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index 85f78cb..d99b9e5 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -122,7 +122,6 @@ public class Player extends Actor getWorld().removeObjects(getIntersectingObjects(Spike.class)); getWorld().removeObject(getWorld().getObjects(Heart.class).get(0)); - getWorld().removeObject(getWorld().getObjects(Heart.class).get(0)); } } diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 4d01a29..63df7cd 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -1,143 +1,178 @@ #Greenfoot project file class.BreakingPlattform.image=Breaking1.png class.Button.image=button-red.png +class.Enemy.image=bee.png class.GameOverWorld.image=GameOverBackground.png class.Ground.image=weave.jpg +class.Groundflower.image=flower2.png +class.HealthItem.image=Health.png +class.Heart.image=Health.png class.JumpBoostItem.image=mushroom.png class.MovingPlattform.image=Platform1.png class.MyWorld.image=GameBackground.png class.Plattform.image=Platform1.png class.Player.image=Player.png +class.PlayerProjectile.image=beeper.png class.Projectile.image=Projectile1.png class.Spike.image=singleSpike.png class.SpikedPlattform.image=Spikes2.png class.StartWorld.image=StartBackground.png class.TargetingProjectile.image=blue-draught.png class.UnactiveSpike.image=inactiveSpike.png -dependency1.from=GameOverWorld -dependency1.to=Button +dependency1.from=PlayerTestWorld +dependency1.to=Ground dependency1.type=UsesDependency dependency10.from=MyWorld -dependency10.to=BreakingPlattform +dependency10.to=MovingPlattform dependency10.type=UsesDependency dependency11.from=MyWorld -dependency11.to=SpikedPlattform +dependency11.to=BreakingPlattform dependency11.type=UsesDependency dependency12.from=MyWorld -dependency12.to=Projectile +dependency12.to=SpikedPlattform dependency12.type=UsesDependency dependency13.from=MyWorld -dependency13.to=TargetingProjectile +dependency13.to=Groundflower dependency13.type=UsesDependency -dependency14.from=Spike -dependency14.to=GameOverWorld +dependency14.from=MyWorld +dependency14.to=Enemy dependency14.type=UsesDependency -dependency15.from=Spike -dependency15.to=MyWorld +dependency15.from=MyWorld +dependency15.to=Projectile dependency15.type=UsesDependency -dependency16.from=Spike -dependency16.to=Player +dependency16.from=MyWorld +dependency16.to=TargetingProjectile dependency16.type=UsesDependency -dependency17.from=Player -dependency17.to=GameOverWorld +dependency17.from=GameOverWorld +dependency17.to=Button dependency17.type=UsesDependency -dependency18.from=Player -dependency18.to=Plattform +dependency18.from=StartWorld +dependency18.to=Button dependency18.type=UsesDependency -dependency19.from=Player -dependency19.to=PlayerProjectile +dependency19.from=UnactiveSpike +dependency19.to=SpikedPlattform dependency19.type=UsesDependency dependency2.from=PlayerTestWorld -dependency2.to=Ground +dependency2.to=Player dependency2.type=UsesDependency -dependency20.from=Player -dependency20.to=Projectile +dependency20.from=UnactiveSpike +dependency20.to=MyWorld dependency20.type=UsesDependency -dependency21.from=Player -dependency21.to=Enemy +dependency21.from=UnactiveSpike +dependency21.to=Spike dependency21.type=UsesDependency -dependency22.from=UnactiveSpike -dependency22.to=SpikedPlattform +dependency22.from=Button +dependency22.to=MyWorld dependency22.type=UsesDependency -dependency23.from=UnactiveSpike -dependency23.to=MyWorld +dependency23.from=PowerUps +dependency23.to=Player dependency23.type=UsesDependency -dependency24.from=UnactiveSpike -dependency24.to=Spike +dependency24.from=HealthItem +dependency24.to=Player dependency24.type=UsesDependency -dependency25.from=Plattform -dependency25.to=MyWorld +dependency25.from=JumpBoostItem +dependency25.to=Player dependency25.type=UsesDependency -dependency26.from=Plattform +dependency26.from=Groundflower dependency26.to=Player dependency26.type=UsesDependency -dependency27.from=MovingPlattform -dependency27.to=MyWorld +dependency27.from=Enemy +dependency27.to=Player dependency27.type=UsesDependency -dependency28.from=MovingPlattform -dependency28.to=Player +dependency28.from=Enemy +dependency28.to=EnemyProjectile dependency28.type=UsesDependency -dependency29.from=SpikedPlattform -dependency29.to=Spike +dependency29.from=Spike +dependency29.to=MyWorld dependency29.type=UsesDependency dependency3.from=PlayerTestWorld -dependency3.to=Player +dependency3.to=JumpBoostItem dependency3.type=UsesDependency -dependency30.from=SpikedPlattform +dependency30.from=Player dependency30.to=GameOverWorld dependency30.type=UsesDependency -dependency31.from=SpikedPlattform -dependency31.to=MyWorld +dependency31.from=Player +dependency31.to=Plattform dependency31.type=UsesDependency -dependency32.from=SpikedPlattform -dependency32.to=UnactiveSpike +dependency32.from=Player +dependency32.to=PlayerProjectile dependency32.type=UsesDependency -dependency33.from=TargetingProjectile -dependency33.to=Player +dependency33.from=Player +dependency33.to=TemporaryGround dependency33.type=UsesDependency -dependency34.from=Button -dependency34.to=MyWorld +dependency34.from=Player +dependency34.to=Projectile dependency34.type=UsesDependency -dependency35.from=PowerUps -dependency35.to=Player +dependency35.from=Player +dependency35.to=Enemy dependency35.type=UsesDependency -dependency36.from=JumpBoostItem -dependency36.to=Player +dependency36.from=Player +dependency36.to=Spike dependency36.type=UsesDependency -dependency37.from=Enemy -dependency37.to=Player +dependency37.from=Player +dependency37.to=Heart dependency37.type=UsesDependency -dependency38.from=Enemy -dependency38.to=EnemyProjectile +dependency38.from=Healthbar +dependency38.to=Player dependency38.type=UsesDependency -dependency39.from=PlayerProjectile -dependency39.to=Enemy +dependency39.from=Plattform +dependency39.to=MyWorld dependency39.type=UsesDependency -dependency4.from=PlayerTestWorld -dependency4.to=JumpBoostItem +dependency4.from=MyWorld +dependency4.to=Player dependency4.type=UsesDependency -dependency5.from=StartWorld -dependency5.to=Button +dependency40.from=Plattform +dependency40.to=Player +dependency40.type=UsesDependency +dependency41.from=MovingPlattform +dependency41.to=MyWorld +dependency41.type=UsesDependency +dependency42.from=MovingPlattform +dependency42.to=Player +dependency42.type=UsesDependency +dependency43.from=TemporaryGround +dependency43.to=Player +dependency43.type=UsesDependency +dependency44.from=SpikedPlattform +dependency44.to=Spike +dependency44.type=UsesDependency +dependency45.from=SpikedPlattform +dependency45.to=GameOverWorld +dependency45.type=UsesDependency +dependency46.from=SpikedPlattform +dependency46.to=MyWorld +dependency46.type=UsesDependency +dependency47.from=SpikedPlattform +dependency47.to=UnactiveSpike +dependency47.type=UsesDependency +dependency48.from=TargetingProjectile +dependency48.to=Player +dependency48.type=UsesDependency +dependency49.from=PlayerProjectile +dependency49.to=Enemy +dependency49.type=UsesDependency +dependency5.from=MyWorld +dependency5.to=Score dependency5.type=UsesDependency dependency6.from=MyWorld -dependency6.to=Player +dependency6.to=Plattform dependency6.type=UsesDependency dependency7.from=MyWorld -dependency7.to=Score +dependency7.to=Healthbar dependency7.type=UsesDependency dependency8.from=MyWorld -dependency8.to=Plattform +dependency8.to=Heart dependency8.type=UsesDependency dependency9.from=MyWorld -dependency9.to=MovingPlattform +dependency9.to=TemporaryGround dependency9.type=UsesDependency editor.fx.0.height=737 editor.fx.0.width=814 -editor.fx.0.x=754 -editor.fx.0.y=45 +editor.fx.0.x=444 +editor.fx.0.y=78 height=830 -package.numDependencies=39 -package.numTargets=21 +package.numDependencies=49 +package.numTargets=26 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -153,112 +188,147 @@ readme.x=10 readme.y=10 simulation.speed=50 target1.height=70 -target1.name=Spike +target1.name=Heart target1.showInterface=false target1.type=ClassTarget target1.width=120 target1.x=0 target1.y=0 target10.height=70 -target10.name=StartWorld +target10.name=Button target10.showInterface=false target10.type=ClassTarget target10.width=120 target10.x=0 target10.y=0 target11.height=70 -target11.name=Plattform +target11.name=PowerUps target11.showInterface=false target11.type=ClassTarget target11.width=120 target11.x=0 target11.y=0 target12.height=70 -target12.name=TargetingProjectile +target12.name=Enemy target12.showInterface=false target12.type=ClassTarget target12.width=120 target12.x=0 target12.y=0 target13.height=70 -target13.name=Projectile +target13.name=MyWorld target13.showInterface=false target13.type=ClassTarget target13.width=120 target13.x=0 target13.y=0 target14.height=70 -target14.name=Score +target14.name=Spike target14.showInterface=false target14.type=ClassTarget target14.width=120 target14.x=0 target14.y=0 target15.height=70 -target15.name=Button +target15.name=Groundflower target15.showInterface=false target15.type=ClassTarget target15.width=120 target15.x=0 target15.y=0 target16.height=70 -target16.name=EnemyProjectile +target16.name=Player target16.showInterface=false target16.type=ClassTarget target16.width=120 target16.x=0 target16.y=0 target17.height=70 -target17.name=PowerUps +target17.name=Healthbar target17.showInterface=false target17.type=ClassTarget target17.width=120 target17.x=0 target17.y=0 target18.height=70 -target18.name=Enemy +target18.name=BreakingPlattform target18.showInterface=false target18.type=ClassTarget target18.width=120 target18.x=0 target18.y=0 target19.height=70 -target19.name=PlayerProjectile +target19.name=GameOverWorld target19.showInterface=false target19.type=ClassTarget target19.width=120 target19.x=0 target19.y=0 target2.height=70 -target2.name=Player +target2.name=MovingPlattform target2.showInterface=false target2.type=ClassTarget target2.width=120 target2.x=0 target2.y=0 target20.height=70 -target20.name=SpikedPlattform +target20.name=StartWorld target20.showInterface=false target20.type=ClassTarget target20.width=120 target20.x=0 target20.y=0 target21.height=70 -target21.name=MyWorld +target21.name=Plattform target21.showInterface=false target21.type=ClassTarget target21.width=120 target21.x=0 target21.y=0 +target22.height=70 +target22.name=Projectile +target22.showInterface=false +target22.type=ClassTarget +target22.width=120 +target22.x=0 +target22.y=0 +target23.height=70 +target23.name=Score +target23.showInterface=false +target23.type=ClassTarget +target23.width=120 +target23.x=0 +target23.y=0 +target24.height=70 +target24.name=EnemyProjectile +target24.showInterface=false +target24.type=ClassTarget +target24.width=120 +target24.x=0 +target24.y=0 +target25.height=70 +target25.name=PlayerProjectile +target25.showInterface=false +target25.type=ClassTarget +target25.width=120 +target25.x=0 +target25.y=0 +target26.height=70 +target26.name=SpikedPlattform +target26.showInterface=false +target26.type=ClassTarget +target26.width=120 +target26.x=0 +target26.y=0 target3.height=70 -target3.name=MovingPlattform +target3.name=Ground target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 target4.height=70 -target4.name=Ground +target4.name=HealthItem target4.showInterface=false target4.type=ClassTarget target4.width=120 @@ -279,21 +349,21 @@ target6.width=120 target6.x=0 target6.y=0 target7.height=70 -target7.name=BreakingPlattform +target7.name=PlayerTestWorld target7.showInterface=false target7.type=ClassTarget target7.width=120 target7.x=0 target7.y=0 target8.height=70 -target8.name=GameOverWorld +target8.name=TargetingProjectile target8.showInterface=false target8.type=ClassTarget target8.width=120 target8.x=0 target8.y=0 target9.height=70 -target9.name=PlayerTestWorld +target9.name=TemporaryGround target9.showInterface=false target9.type=ClassTarget target9.width=120