From 1796607c9326d24b734a0ebdbc6f7451c0414e35 Mon Sep 17 00:00:00 2001 From: Marlie Date: Thu, 17 Sep 2026 09:54:27 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Lebensanzeige=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 9a0d7e7f7ae98550816c67625ce44aba01818685 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Sep 2026 10:05:50 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Fix:=20Game=20crasht=20nicht=20mehr=20bei?= =?UTF-8?q?=20damage=20auf=200=20Leben=20und=20PowerUps=20werden=20wieder?= =?UTF-8?q?=20gel=C3=B6scht=20wenn=20sie=20den=20unteren=20Fensterrand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMIMS-Game/MyWorld.class | Bin 3892 -> 3809 bytes SMIMS-Game/MyWorld.java | 4 ++-- SMIMS-Game/Player.class | Bin 4655 -> 4671 bytes SMIMS-Game/Player.java | 4 +++- SMIMS-Game/PowerUps.class | Bin 1294 -> 1296 bytes SMIMS-Game/PowerUps.java | 4 ++-- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index 11455a4ec4ddc850485aeec054c1e452e83834e0..a4bd82265b6408b5db6dd4c1933a0ee105aa63d7 100644 GIT binary patch delta 1675 zcmZ`(TT@$A6#jN@CpkH}woo!Ok%ArYScVQ!rlpkvl@<^zEwwaAE0i1{ToRfDkV;Lp zwpuT3b=MnSC>5(#tDume%sA5r9Y-I1c1C}JFOCmt8P`sNg(=SDoVCtcYk&LO-^$wa zzTdp^kIUbD3!nyzbMid18|$^MXk5k)cqQ!Szp{;!v@Yw8yqsu!t16sJ+I&e zT;L}S6{eRIyo^`)O~WsI#&|9FQwGKyCft*zD}hc354|t)pQN4a5;vNQiZ4@zLNTBOui`bb zI^<=l$Zdx~tYx+Qfcf@87mGRblkhEJM<9jDN?G;DF4ndtW>q~_7pqLi)Ftc+xU7pQ zJmkU;F5MnlJD1+!61~r33!k<0CaUlk{WXoKW_Hvt4{BK<_Oepcu^Q}y;CCv+A}L+VL7txex_{zLyhXfE<2$@fo{>&9i%IfKm?MmL$dm9rCh#tK z<|f*{9`E6OSct#_m?BRm3I(`Io|U$lUXg?SL$G?1qe68TCQj@ZB=*s{(O@#DcHZPq`IG5MUho&L&{Q+lr3WIko&!&e0&R`0W_0qYtdYH}- zU6mBw)I)T06kd8a!VbPw2`5C`3Nl({+g8AG)6HUZGcBi^rNcFJZ=8^HR z=kskQ&FLng_eIKIp$6*6)(EL$hRy}VNYj{$&0Iy<5=H~0@{=STnWv0{l+{84|<(eVezzd~yn&nBV5w9e%2o;_#xJKykB zyW}61uY3)l317|0^K7rFMfHW^fkVESjJx5KP|u(zUo0-8PONt@(R7b@A{R(>c zZ<-CdUIhpFRgJ^!!yyU%3j9!ck+zW?=6%|A<{+B1U?(m~2=jzCKQW9Z36D@g9ns*B z>TeJE;_-nt8zygTTR2ZS@B;3?rWk+Ve&4z>nJ)Cn9F(p5`1PJr#J3O**}eum+ePG5{p z1jB=?qbK3CQ{SFb@H}4N2XxyErxm<}GyI(H_X1O3rHc$^&-Iqp@wk3A|1$>0at-)g z#uu2Eupl6k{0_rUy2}ik_!h|}Z}dbWL!(g%OMJ6*7dyyRsmMV!Q$`>!Jxid1;h=Gn zpO5$V@;73&8gA65}<$waQwRglh?P-W0ai%5H~j zV|La!lWQ}NMo!A9I{dk66mb#Jc!7F%`$|+>ERQ79BOf@UT zIkL3WNfV~=I+b(;zu*nB^q9i8I8T-VbC|`OWJ&n0m-_M+nMR_q9~UqK6A@{_+qejs zsN6|gFTzY@it!FvLcdEZnz4TQ5ndvv5A09-$gWR|Q3XwWKsK z1}BYe$N~S+98QP^7H71|Hn5oGr`yKpEn7~vO@nu7mmS7}Yv`3wO217`m&>(*G^fXf z#z~5wrB-TaZW2G~EhMw*V<*z5&VE@8q;DnCxr(e$J~L`DivdkWpR+gJrHtW|wl zA-0x|Wy$him7)&8FQ0HLunzCxeaa=?-OMc!tn^@4(MWE3{IWz&QS$|nYDzCnW8)Hz zks2pFE2+50QbIQ`Y$>Z;LC>WeUHBl4UcCyPfXYqe?a6@iZ!CE^CkgD?|G@rCgXweD zg7x6T{{^GRTQKF_Ipy|K0Np`reG)HbuOOeySzjY~t$h)+_=tQOe2hzWXzoWhtHKmX!ACP4aXQ{Cfo8WGwU&MPfq4n zRV`6U@{#3zE zAg_x-grS>3hM|W+g`sbAynrjC;Y1*3GDAPZREFsc(-@Wj$(0N<7}hY%V%W|wo8bt< ae1=mD3m9%PEMoY;u#AzJVb$cTf>8hhlrc#F delta 168 zcmXAfKMMhI06^clqLc1i8I{x-+-C9#Zu9{tqxrspqLV+VOFw@HGTcBZ${>@)!f5j+ zCc9M(t_*K@y|*)##_FId4`d{uCQfQvDvGaaiJX>@O~S&~Qb~t07r#gT7guh+-F<=t z%ny07)v`*35LI*>@zzRu-M0oYn#5^g&|ce7OUk&k>EI$5(8Z(2oIVSNY#6a;%#jIa Nro8YZnVER%g&!ieEf)X) diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index d99b9e5..64455ac 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -121,7 +121,9 @@ public class Player extends Actor getWorld().removeObjects(getWorld().getObjects(Spike.class)); getWorld().removeObjects(getIntersectingObjects(Spike.class)); - getWorld().removeObject(getWorld().getObjects(Heart.class).get(0)); + if (getWorld().getObjects(Heart.class) != null){ + getWorld().removeObject(getWorld().getObjects(Heart.class).get(0)); + } } } diff --git a/SMIMS-Game/PowerUps.class b/SMIMS-Game/PowerUps.class index f4233a4b10846bb4ab949d63d920c3f3185c9d7f..2322a63d0e601be25db5683b6e1971377b02935d 100644 GIT binary patch delta 98 zcmeCCRR%r= oH3m5b4F+WfEe21Z2oFRbgBOE0kmn1;%nXdmK*0bYlZhb^0LhCABul>Feox;F?a$+c_4BOUJTwqo-YtH PGcYOw1p|OgCWb%&pIHdb diff --git a/SMIMS-Game/PowerUps.java b/SMIMS-Game/PowerUps.java index 9e3c868..031769e 100644 --- a/SMIMS-Game/PowerUps.java +++ b/SMIMS-Game/PowerUps.java @@ -34,8 +34,8 @@ public class PowerUps extends Actor public void moveDown() { - this.setLocation(this.getX(), this.getY()+2); - if(this.getY()>=this.getWorld().getHeight()) + setLocation(this.getX(), this.getY()+2); + if(this.getY() >= getWorld().getHeight()-1) { deleteAfterActCycle = true; } From 6ab5576115f739ff7642a77cb26c6db9ea2ee1fa Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Sep 2026 10:35:22 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Lebensanzeige=20wird=20wieder=20aufgef?= =?UTF-8?q?=C3=BCllt,=20wenn=20healthItems=20aufgesammelt=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMIMS-Game/Player.class | Bin 4671 -> 4833 bytes SMIMS-Game/Player.java | 13 +++- SMIMS-Game/project.greenfoot | 119 +++++++++++++++++------------------ 3 files changed, 69 insertions(+), 63 deletions(-) diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 1f9d2f1a0ce0384a0ba3a393b9660ddfbae3f281..6ff9dce4e582fac1524e5c59e8d9897a43c398cf 100644 GIT binary patch delta 1507 zcmai!du&rx9LGPWz3uJVu4N5dR`v+u1~Ms=Y?(MEz}R3K@DXKkN_0(VCc1W`+eC<3 zO*B5@19p7@MkgVeOwGi(!TU4N{iMF&Yce@$jJumMwXw{gfxCZ#pi-W=5m|1UAL)Pw$ z1?qs6<1WklNG|V1$$Sn6`B^Boi%n@(9zEgN<6=&(iwCnx!KiVb$A7P6E& zZsbxd>gnP#p5$_RSj012K_6GLm4@Lu7Lh@ii}*yWGKDppPi5s2ZaJUHDuV??_?$1K zEGZ>buY*l|Ic#n|oqQ!L8&g=x*L;J09;MvPw*;l0BSO*{j2wQ49qn!&_P;n2r-@4` zlemoQ-~=m8UcM)7>1uWXWbY`l;QDCQ{N3ktd4NT@z>^ap+v-eIf9my2j6e)^G#N(tdqX^7gU!#OQxfff|4Xvf!-ufi=llsF|;?(pJZzn6Ewo;WZXXp z<6j7Eu^pXiB|fX!KY4mWd|FL{$GC~j+>(}Te_FC8_L39C3Z#Jn`I0~p9cd!PX(H00WBtPa ziJ!HKxO7wkl2ldAl=E#BMkvV+t9wkS{>3COucpjiVRR7+1@;VYiwwOj320D~xQTTdLVFL;v)(3S^9zF+;`!U2L|_$jVQw)h5d@*Rk?H5_$7~6VZs0 zdYxE9ADLZL>C`G6K}TRfvhC+>#Tv$?w)Rwz1BtvO?{<+BbZljyK5r8rWU)KTHZ#dX zqw&s_EZ~0b;z6->wajZ+&ssL{u)Ii*Nb^6+4r%;B3H}i4IL3PA;Bn<)gBr&ZY8pMN zTE4NmZA&oZ|FigoUv*ryswS0*_|9*`FNaXFV(uFoT=bqE=|3BaP{^v}U z?<;eS{x>`V)N{PwWjGeNXkggGUY=8U;zl%fwXx#zD~z^;BLB2y>*I#8aa}BysIG5I z#NrDo8eNRA&&hrdFPP6bPU(3`VPD%7jc&FMUiR<`TNMuDs;<@zomm`IWH0TCb}Wv? zIulupD)c2r>xL}eP`Df7v9674FN|$6;!fUF~>u%sAH~0b7xTPY1E`3?bsr-XQNS-CN#Ux6T+kJVEGK8CWD}(1uXm- zY5bJCTJS#4tkY-kr5Sh|szl(m({O3+DY?@nHxHYuJm>nm0`?)UQ|#x;I!C~f zr^S17s6ZcNZolAkCd{Ioc|B`bNsLCiSw$~RJkDx%aw$*K%x*4YfHe%!g4ISd*^*tv zXQGQ!SoIv1C`-7tOi7f@a@zQuFQhB!B;Br^LB32WS_!B$E&xA83j zY3Ms4S%Oa=evgewb22CBz2HpHMNGHOYN zEZJ;Kh_AwJ_UBeq-o^DPVW!ulH)B2yw9r2oQhi~%ZGYaWXIWgY)PNgBz?<-~C4=wJ z;7eaVA)lEhNAn_$7P(NS47UjRR`Nx-Vs58Qw47Oz@{A&~RQb75gdEWdhFWmHEk^}crV~gm0gv0(d|?M{J?k%04!kJ-*_e)uCs}5p(WfMW{()y=9P`zG;=~>;b!fOq3qt zEyaBlrPGtbj|G#w+ecx*zL&A4;2u8kanPqNO0s=s9uacn!d?->MA|0pcVa=T1YGUoj+v1tX(R? f{V%mnMwHj platforms = getIntersectingObjects(Plattform.class); boolean landed = false; for (Plattform platform : platforms) { - int groundTop = platform.getY() - platform.getImage().getHeight() / 2; + int groundTop = platform.getY()+5 - 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 @@ -122,7 +122,11 @@ public class Player extends Actor getWorld().removeObjects(getIntersectingObjects(Spike.class)); if (getWorld().getObjects(Heart.class) != null){ - getWorld().removeObject(getWorld().getObjects(Heart.class).get(0)); + if (health == 2){ + getWorld().getObjects(Heart.class).get(2).setImage("a.png"); + } else if (health == 1){ + getWorld().getObjects(Heart.class).get(1).setImage("a.png"); + } } } } @@ -152,6 +156,11 @@ public class Player extends Actor break; case "Heal": if (health < MAX_HEALTH){ + if (health == 2){ + getWorld().getObjects(Heart.class).get(2).setImage("Health.png"); + } else if (health == 1){ + getWorld().getObjects(Heart.class).get(1).setImage("Health.png"); + } health++; } break; diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 63df7cd..454ce3e 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -23,134 +23,131 @@ dependency1.from=PlayerTestWorld dependency1.to=Ground dependency1.type=UsesDependency dependency10.from=MyWorld -dependency10.to=MovingPlattform +dependency10.to=BreakingPlattform dependency10.type=UsesDependency dependency11.from=MyWorld -dependency11.to=BreakingPlattform +dependency11.to=SpikedPlattform dependency11.type=UsesDependency dependency12.from=MyWorld -dependency12.to=SpikedPlattform +dependency12.to=Groundflower dependency12.type=UsesDependency dependency13.from=MyWorld -dependency13.to=Groundflower +dependency13.to=Enemy dependency13.type=UsesDependency dependency14.from=MyWorld -dependency14.to=Enemy +dependency14.to=Projectile dependency14.type=UsesDependency dependency15.from=MyWorld -dependency15.to=Projectile +dependency15.to=TargetingProjectile dependency15.type=UsesDependency -dependency16.from=MyWorld -dependency16.to=TargetingProjectile +dependency16.from=GameOverWorld +dependency16.to=Button dependency16.type=UsesDependency -dependency17.from=GameOverWorld +dependency17.from=StartWorld dependency17.to=Button dependency17.type=UsesDependency -dependency18.from=StartWorld -dependency18.to=Button +dependency18.from=UnactiveSpike +dependency18.to=SpikedPlattform dependency18.type=UsesDependency dependency19.from=UnactiveSpike -dependency19.to=SpikedPlattform +dependency19.to=MyWorld dependency19.type=UsesDependency dependency2.from=PlayerTestWorld dependency2.to=Player dependency2.type=UsesDependency dependency20.from=UnactiveSpike -dependency20.to=MyWorld +dependency20.to=Spike dependency20.type=UsesDependency -dependency21.from=UnactiveSpike -dependency21.to=Spike +dependency21.from=Button +dependency21.to=MyWorld dependency21.type=UsesDependency -dependency22.from=Button -dependency22.to=MyWorld +dependency22.from=PowerUps +dependency22.to=Player dependency22.type=UsesDependency -dependency23.from=PowerUps +dependency23.from=HealthItem dependency23.to=Player dependency23.type=UsesDependency -dependency24.from=HealthItem +dependency24.from=JumpBoostItem dependency24.to=Player dependency24.type=UsesDependency -dependency25.from=JumpBoostItem +dependency25.from=Groundflower dependency25.to=Player dependency25.type=UsesDependency -dependency26.from=Groundflower +dependency26.from=Enemy dependency26.to=Player dependency26.type=UsesDependency dependency27.from=Enemy -dependency27.to=Player +dependency27.to=EnemyProjectile dependency27.type=UsesDependency -dependency28.from=Enemy -dependency28.to=EnemyProjectile +dependency28.from=Spike +dependency28.to=MyWorld dependency28.type=UsesDependency -dependency29.from=Spike -dependency29.to=MyWorld +dependency29.from=Player +dependency29.to=GameOverWorld dependency29.type=UsesDependency dependency3.from=PlayerTestWorld dependency3.to=JumpBoostItem dependency3.type=UsesDependency dependency30.from=Player -dependency30.to=GameOverWorld +dependency30.to=Plattform dependency30.type=UsesDependency dependency31.from=Player -dependency31.to=Plattform +dependency31.to=PlayerProjectile dependency31.type=UsesDependency dependency32.from=Player -dependency32.to=PlayerProjectile +dependency32.to=TemporaryGround dependency32.type=UsesDependency dependency33.from=Player -dependency33.to=TemporaryGround +dependency33.to=Projectile dependency33.type=UsesDependency dependency34.from=Player -dependency34.to=Projectile +dependency34.to=Enemy dependency34.type=UsesDependency dependency35.from=Player -dependency35.to=Enemy +dependency35.to=Spike dependency35.type=UsesDependency dependency36.from=Player -dependency36.to=Spike +dependency36.to=Heart dependency36.type=UsesDependency -dependency37.from=Player -dependency37.to=Heart +dependency37.from=Healthbar +dependency37.to=Player dependency37.type=UsesDependency -dependency38.from=Healthbar -dependency38.to=Player +dependency38.from=Plattform +dependency38.to=MyWorld dependency38.type=UsesDependency dependency39.from=Plattform -dependency39.to=MyWorld +dependency39.to=Player dependency39.type=UsesDependency dependency4.from=MyWorld dependency4.to=Player dependency4.type=UsesDependency -dependency40.from=Plattform -dependency40.to=Player +dependency40.from=MovingPlattform +dependency40.to=MyWorld dependency40.type=UsesDependency dependency41.from=MovingPlattform -dependency41.to=MyWorld +dependency41.to=Player dependency41.type=UsesDependency -dependency42.from=MovingPlattform +dependency42.from=TemporaryGround dependency42.to=Player dependency42.type=UsesDependency -dependency43.from=TemporaryGround -dependency43.to=Player +dependency43.from=SpikedPlattform +dependency43.to=Spike dependency43.type=UsesDependency dependency44.from=SpikedPlattform -dependency44.to=Spike +dependency44.to=GameOverWorld dependency44.type=UsesDependency dependency45.from=SpikedPlattform -dependency45.to=GameOverWorld +dependency45.to=MyWorld dependency45.type=UsesDependency dependency46.from=SpikedPlattform -dependency46.to=MyWorld +dependency46.to=UnactiveSpike dependency46.type=UsesDependency -dependency47.from=SpikedPlattform -dependency47.to=UnactiveSpike +dependency47.from=TargetingProjectile +dependency47.to=Player dependency47.type=UsesDependency -dependency48.from=TargetingProjectile -dependency48.to=Player +dependency48.from=PlayerProjectile +dependency48.to=Enemy dependency48.type=UsesDependency -dependency49.from=PlayerProjectile -dependency49.to=Enemy -dependency49.type=UsesDependency dependency5.from=MyWorld dependency5.to=Score dependency5.type=UsesDependency @@ -158,20 +155,20 @@ dependency6.from=MyWorld dependency6.to=Plattform dependency6.type=UsesDependency dependency7.from=MyWorld -dependency7.to=Healthbar +dependency7.to=Heart dependency7.type=UsesDependency dependency8.from=MyWorld -dependency8.to=Heart +dependency8.to=TemporaryGround dependency8.type=UsesDependency dependency9.from=MyWorld -dependency9.to=TemporaryGround +dependency9.to=MovingPlattform dependency9.type=UsesDependency editor.fx.0.height=737 editor.fx.0.width=814 -editor.fx.0.x=444 -editor.fx.0.y=78 +editor.fx.0.x=386 +editor.fx.0.y=48 height=830 -package.numDependencies=49 +package.numDependencies=48 package.numTargets=26 project.charset=UTF-8 publish.hasSource=false @@ -371,6 +368,6 @@ target9.x=0 target9.y=0 version=3.1.0 width=1550 -world.lastInstantiated=MyWorld +world.lastInstantiated=StartWorld xPosition=0 yPosition=0