From a39e8160388049c98c150ab37c4fc09682deb774 Mon Sep 17 00:00:00 2001 From: Jonas Date: Wed, 16 Sep 2026 17:49:43 +0200 Subject: [PATCH] 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