@@ -205,6 +205,8 @@ int main()
205205 // Create new window with sprites drawn in
206206 window.clear (sf::Color::White);
207207
208+ // ---- Collision detection ----
209+
208210 // Try movement
209211 Vec2 originalPos = playerCollider.pos ;
210212 // --- X axis ---
@@ -294,21 +296,28 @@ int main()
294296 }
295297 }
296298
299+ // ---- Draw items ----
300+
297301 // Draw tilemap with walls and healthPickups
298302 renderer.draw (window, map);
303+ // Draw shadows first and update enemies
304+ player.drawShadow (window);
305+ for (auto & enem : enemies) {
306+ enem.enemy .sprite .setPosition (toSF (enem.enemy .collider .pos ));
307+ enem.enemy .update (deltaTime, grid, player.getPosition (), player.attacking );
308+ enem.enemy .drawShadow (window);
309+ }
299310 // Draw player
300311 player.sprite .setPosition (toSF (playerCollider.pos ));
301- player.draw (window, camera);
312+ player.drawUI (window, camera);
313+ player.drawPlayer (window);
302314 camera.setCenter (player.getPosition ());
303315 window.setView (camera);
304316 if (player.isDead ()) {
305317 }
306-
307- // Draw and update enemies
318+ // Draw enemies
308319 for (auto & enem : enemies) {
309- enem.enemy .sprite .setPosition (toSF (enem.enemy .collider .pos ));
310- enem.enemy .update (deltaTime, grid, player.getPosition (), player.attacking );
311- enem.enemy .draw (window);
320+ enem.enemy .drawEnemy (window);
312321 }
313322 // Delete dead enemies
314323 enemies.erase (
@@ -318,6 +327,7 @@ int main()
318327 enemies.end ()
319328 );
320329
330+ // Display window
321331 window.display ();
322332 }
323333 return 0 ;
0 commit comments