From 95f2be311d27baf6587da221ae117cf58b901fa4 Mon Sep 17 00:00:00 2001 From: Daanish Date: Sat, 28 Mar 2026 16:12:16 +0000 Subject: [PATCH] Refactor FPS display logic in Game class; optimize torch position retrieval --- assets/images/chest.aseprite | Bin 525 -> 531 bytes assets/images/chest.png | Bin 367 -> 380 bytes game/placeables/base.rb | 70 ++++++++++++++++++++++++----------- game/scene.rb | 21 +++-------- 4 files changed, 53 insertions(+), 38 deletions(-) diff --git a/assets/images/chest.aseprite b/assets/images/chest.aseprite index 471db92417826af197d04a913472ebd6a35d73ab..8ca436ad66cb3fedde8261b7aecd8af4a8c17431 100644 GIT binary patch delta 61 zcmeBWnasi{Jdv@Uaq`5*b&^jQ7#LU;7#J8B7#aREfoKpGVGy3|!MI!Ca6OmduF5M1 NW?ebPFfT^85dgPJ5VQaQ delta 55 zcmbQt(#yigJCU)Tv3FwQI>~zs3=FIa3=9kmObq{-Kr{%8FbGZdVBF0Wx_vA1=D=K19uOv{<3Y_dk2YK2Cn%Nyfvii=gnh}I&gdT=NN`$ z&%EVlZI3@&@tEO*Ss&MH(XF1cJ55siVm?1Rb4V*Zz5UYXyU%V#@wjn@nEtU&tQRqq z`E$?vi|N%{Z{Cza*R0fjm<#c&?ec zAvM~|o?(~6riYhVn@SGN3tMBa((pd@07D(a!ZoRz))Z$)FfcGMc)I$ztaD0e0s!tV Brg{JX delta 327 zcmeyv^qy&gVZElOi(`mIZ*qdfn+CyS8?Fod_wRIM&)<`hl8}&);3)QHRcRuK_2X01 zWDVyEm3_tr1_lOGOy4(l8#-qC&S2QsmKeCY^P$s>rpVX)f~g5n3uN1vBNnJ>D|35w za~i)`-C+pQ5wqtrm%22shOt8B%q)hZr)`ApOYYnApg!fpwrg$OCp)?yr5;vdTitj= zWWw7+&E|22b1Ydnr-$d?6J8qW<07z5oXz0SgowihD^m|HOZYs~+C}n3_M)aljdKxV z;t!Gq#2*|!eT>aOskO1O(J`c9zN1@*^ttJRj}D$X#ugCsA@#)1I@%8r&JvcZYnF-{*cwO$YGr%i?!?{N=I&K-moz|Tn f^rrHpFfbUag>Dp`Ui6lMfq}u()z4*}Q$iB}i= 1000 - @fps = @draw_count - @draw_count = 0 - @last_draw_time = now - end - - @font.draw_text("FPS: #{@fps}", 5, 5, Float::INFINITY, 1, 1, Gosu::Color::YELLOW) + @font.draw_text("FPS: #{Gosu.fps}", 5, 5, Float::INFINITY, 1, 1, Gosu::Color::YELLOW) world_x, world_y = $bus.get(:player_position)&.map(&:round) || [0, 0] @font.draw_text("Player: [#{world_x}, #{world_y}]", 5, 30, Float::INFINITY, 1, 1, Gosu::Color::YELLOW) end @@ -79,8 +66,10 @@ class Game < Scene px = SCREEN_SIZE[0] / 2.0 py = SCREEN_SIZE[1] / 2.0 - # Collect all light sources (player + torches) - torches = $bus.get_all(:torch_position) + # Collect torch positions relative to camera + torches = $bus.get(:nearby_torches, + [cam_x - SCREEN_SIZE[0] / 2, cam_y - SCREEN_SIZE[1] / 2, SCREEN_SIZE[0] * 2, SCREEN_SIZE[1] * 2] + ) || [] torch_lights = torches.map { |t| [t[0] - cam_x, t[1] - cam_y] } tiles_x = (SCREEN_SIZE[0] / cell) + 2