• Java Swing游戏开发学习25


    内容来自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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    实时刷新地图

    当修改了地图文件文本内容的时候,比如将玩家出生位置旁边的道路改为41(树),增加一个按键逻辑,按R,重新载入地图,可以实时查看地图修改效果。避免关闭再打开才能看到地图修改效果。

    惊喜或意外

    if (code == KeyEvent.VK_R) {
        gp.tileM.loadMap("/maps/worldV2.txt");
    }
    
    • 1
    • 2
    • 3

    开发环境Intellij IDEA, 在KeyHandler添加这段代码后,反复测试地图就是不刷新,在地图数据打上log,发现数字确实没变化。

    研究了大半天,发现IDEA out目录下的地图文件并没有改变,仅仅是代码这边的地图文件改变了而已。尴尬,作者用的是Eclipse, ctrl + s 保存就生效了。最后看了下视频评论,有人提了这个问题,需要按ctrl + F9 或者点击菜单Build -> Build Project,build一下项目才能生效,这样out目录下的地图文件才会改变。

    尬住了。开发环境区别造成的问题。

    代码

    参考第6篇文章最后gitee仓库链接,可以使用git clone命令clone一下或直接下载获得完整项目

  • 相关阅读:
    AI 绘画 | Stable Diffusion 图生图
    EclipseLink
    Spring中的设计模式
    字符串的认识
    更多龙蜥自研特性,生产可用的 Anolis OS 8.6 正式发布
    探索未来的AI革命:GPT-5的即将登场
    Linux_Docker修改Docker Root Dir
    【网络篇】第三篇——源端口号和目的端口号
    leetcodeTop(100) 31链表排序
    [需求管理-2]:什么是需求以及需求的收集与识别
  • 原文地址:https://blog.csdn.net/ximen502/article/details/138204571