You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java fillRect实现类似电池样式的独立矩形子弹计数器

子弹计数器独立方块显示修复方案

核心问题原因

现有代码的绘制步长和单个矩形宽度不匹配:每个子弹矩形宽度为20px,但循环中x轴偏移仅设置为i*5,相邻矩形会完全重叠在一起,最终呈现为连续长条效果。

修正后代码

// 外框绘制逻辑调整了总宽度,适配最多6发子弹的显示,可根据实际最大弹药数自行修改
g.setColor(Color.black);
g.fillRect(600,20,180,40);
g.setColor(Color.white);
g.fillRect(605,25,170,30);


for(int i=0;i < player.ammo;i++){
    g.setColor(Color.black);
    // 偏移步长调整为25:20px矩形宽度 + 5px间隔,实现独立分隔的方块效果
    g.fillRect(610+(i*25),30,20,20);

}
bs.show();

自定义调整说明

如果需要显示更多子弹,可以自行调整对应参数:

  • 缩小单个子弹矩形的宽度,比如从20px改为10px
  • 对应缩小步长,比如调整为i*15(10px宽度+5px间隔),同时调整外框的总宽度适配最大弹药量即可
    该方案完全基于Graphics原生绘制能力实现,不需要引入额外组件,符合你要求的仅用image.getGraphics()相关方法实现的需求。

内容的提问来源于stack exchange,提问作者Gustavo Marinho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:54:03