From 465c1d047c57d63e11e31ca15cc4af9cd43926bb Mon Sep 17 00:00:00 2001 From: yashshinde2 Date: Sat, 20 Jun 2026 21:03:19 +0530 Subject: [PATCH] fix: snap ghosts to grid on wall collision to prevent corner jitter --- pacman-java/App.class | Bin 1110 -> 1110 bytes pacman-java/PacMan$Block.class | Bin 1645 -> 1741 bytes pacman-java/PacMan.class | Bin 8997 -> 9096 bytes pacman-java/PacMan.java | 4 ++++ 4 files changed, 4 insertions(+) diff --git a/pacman-java/App.class b/pacman-java/App.class index 2dc99e2e0b955f889eb7034291d0cfe2dbe1b66d..048f75bbd5fd9df9121f2ad41fed759229d5a3df 100644 GIT binary patch delta 17 Zcmcb{agBrH)W2Q(7#J8_H*)x~002W$22}t6 delta 17 Zcmcb{agBrH)W2Q(7#J9wH*)x~002Ws22%h4 diff --git a/pacman-java/PacMan$Block.class b/pacman-java/PacMan$Block.class index 122d1f492404cb5e04b8190b8ca4c0c7f309f9e7..68bf4768fa85ce3a3ca9c1e8074364fa510908ab 100644 GIT binary patch literal 1741 zcmZuxSyLNF5dOxJSRn=>ZU|Rw1C|yWj1O!hW5*T{lz>dkVZb@ONLy&_MRK$&gPoT= z=O6gZZ#<_8k)u+nJg4#l@>`P1@y$q_iK?_c-96pYU-vij>)${A3}6OU1m_Si5R?d^ zPN4a@^~xG6`;I&IX!E(9^*w=T$^NqJl^sL!#!tnU;H0wSe6T@u}RkDgaH&vX3OYxJa*r&prylxJO82PEFdd4Z6# zZEe{+y^6=$@yF82l2n^6N(`z{v8%LUiA!30t+a%MskG3Jlk@Y+a#`Yvvee~mXDjb3 z)0o6nZSs7p}ON8{nN+P3dU0^N#l}lWnU~A?vm+3!7im-%kylW64Lj9kmI@PDgyj(%Q*;l~@vprbBkl7xpAa1tTRWPE=quM+@Fv`jGV2C(}c~dU2*Kt@#pum^G!w7cx z9=u@(HW<}}z+bp73{3xt)E`U;b?0j+eAvn<2uc-L+2-!H1DrC*-&{5T9%5ir1m_bp32j7n{xe?<5 Y0VY=+{|ujNc^h9)MwlkdSKt}&FUKrXPyhe` literal 1645 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 WgYOB;lo;paTO&F0eaD z246)Mk(n@C%{Cn_CJnx3A+gjo}`?<@>0fW2w zCJ|^-*WG2>AQ4jQU7-vo_oi0l+|7z(gi#lbnUTlZ%|vB{E}kH=I~ZBBu_a*&kdws; zo$qkc$#)Gd;gp*4e6M{#ELLuBKppXVcv_wD-jlJ1Lu%IBbH`hv*};7hXK@zft^Fte z-K)L1E2&aH;koXlc@ilZ@ z0dWJ@Wrj-iuegn$6R;B#XcpO7?{}R8=y{DsJWjY~q8A zaVcB)Fb7z}Vb*el%f!VxF>M7;vz}+UlAp7I=eSD99S@hYTwM!?MAt9jwf9XwW42sF3?T%`VjyDVKOEQjoOjOE6FBpMsN5BZto*z-Ljx zb-0h~QOoD>2sfaC&)fa8;kbdY6X*WGT{2^sZ_oLJsE}|-vxPEa^(b7Te8;qeZfhaf zs!{0j_%6-fTZR-T;gZptWVDHFz5s(;;9(dT^~3;H}IN0DPWkMg{>l@Lj-hUKD$J~cI3&2Sil`9ViG0t36`;2eCvxW+O3$Z`D4L$)CX^!bZ?zU4k|Fc@3_ ujR(a5ha?ZnQa diff --git a/pacman-java/PacMan.java b/pacman-java/PacMan.java index 4b4eb54..1a4fd9b 100644 --- a/pacman-java/PacMan.java +++ b/pacman-java/PacMan.java @@ -311,6 +311,10 @@ public void move() { if (collision(ghost, wall) || ghost.x <= 0 || ghost.x + ghost.width >= boardWidth) { ghost.x -= ghost.velocityX; ghost.y -= ghost.velocityY; + + ghost.x = Math.round((float) ghost.x / tileSize) * tileSize; + ghost.y = Math.round((float) ghost.y / tileSize) * tileSize; + char newDirection = directions[random.nextInt(4)]; ghost.updateDirection(newDirection); }