内容来自RyiSnow视频讲解
这一节讲的是Useful Functions有用的功能
主要是在页面中显示一些调试信息,比如player的世界坐标,方便游戏逻辑实现。
下图显示了,玩家角色的世界坐标,所在地图的行和列等信息,这样可以很方便的在地图上确定某个点的行和列,方便查找位置,比如用来放置一些物品或NPC等等,比在地图文件中找位置要方便很多。
按t键显示,再次按下调试信息消失。

// DEBUG
if (keyH.showDebugText) {
long drawEnd = System.nanoTime();
long passed = drawEnd - drawStart;
// 设置自定义字体后,这里需要设置一下字体,否则看不到DrawTime
g2.setFont(ui.arial_40);
g2.setFont(g2.getFont().deriveFont(20F));
g2.setColor(Color.white);
int x = 10;
int y = 320;
int lineHeight = 20;
g2.drawString("WorldX: " + player.worldX, x, y);y+=lineHeight;
g2.drawString("WorldY: " + player.worldY, x, y);y+=lineHeight;
g2.drawString("Col: " + player.worldX / tileSize, x, y);y+=lineHeight;
g2.drawString("Row: " + player.worldY / tileSize, x, y);y+=lineHeight;
g2.drawString("Draw Time: " + passed, 10, y);
//System.out.println("Draw Time: " + passed);
}
当修改了地图文件文本内容的时候,比如将玩家出生位置旁边的道路改为41(树),增加一个按键逻辑,按R,重新载入地图,可以实时查看地图修改效果。避免关闭再打开才能看到地图修改效果。
if (code == KeyEvent.VK_R) {
gp.tileM.loadMap("/maps/worldV2.txt");
}
开发环境Intellij IDEA, 在KeyHandler添加这段代码后,反复测试地图就是不刷新,在地图数据打上log,发现数字确实没变化。
研究了大半天,发现IDEA out目录下的地图文件并没有改变,仅仅是代码这边的地图文件改变了而已。尴尬,作者用的是Eclipse, ctrl + s 保存就生效了。最后看了下视频评论,有人提了这个问题,需要按ctrl + F9 或者点击菜单Build -> Build Project,build一下项目才能生效,这样out目录下的地图文件才会改变。
尬住了。开发环境区别造成的问题。
参考第6篇文章最后gitee仓库链接,可以使用git clone命令clone一下或直接下载获得完整项目