我打算用Java编写Mario的副本。我在考虑两个级别的表示形式/数据结构,但不确定该选择哪个: 一个2D整数数组。用四叉树将级别分成几部分。 它的优缺点是什么? 解决方案如下: 绝对是某种类型的二维数组。整数将是一个好主意,但是字符将是一个更好的主意。 考虑制作一个基本上是“地图”的文本文件。它可能是10行乘10列的文本。在这种情况下,非常简单的地图。也许您可以使用“ a”表示草,使用“ b”表示砖头。这样,您甚至可以在将地图付诸行动之前从视觉上了解您的地图。但是您基本上可以对应用程序进行编程,使其依赖于此文本文…

2020年11月24日 0条评论 44点热度 阅读全文

我正在用Java创建我的第一个游戏。这是一个简单的2D自上而下的射击游戏。我想让摄像机跟随我的角色,因此,如何使用“画布”来使摄像机完全跟随角色在中心。当地图移动时,我按箭头键。 解决方案如下: 逻辑的一种可能性是这样的: 创建一个侦听器并将其附加到您的角色上(直接或间接取决于您的设计)。聆听角色移动或位置变化。 直接意味着您的角色类具有addListener方法。间接意味着您的角色类将事件发布到全局事件总线,侦听器向该事件总线注册以接收特定类型的事件。 根据角色位置计算摄像机位置并相应地居中。这将需要一点数学! …

2020年11月19日 0条评论 31点热度 阅读全文

我正在使用Slick Java游戏库,并且已经将Shape的Slick实现用作​​碰撞的命中框,并且工作正常。我使用shape1.intersects(shape2)检查两个形状是否重叠。现在,我要做的是获取相交形状的中心点,以用作生成显示两个对象之间碰撞的粒子的位置。 我找不到关于计算形状相交的算法的任何解释,可能是因为我不知道它是否具有特定名称。 解决方案如下: 查看文档,似乎有两种方法-union和subtract-使用它们可以按如下方式获得交集: A ∩ B = A ∪ B - (A - B) - (B -…

2020年11月9日 0条评论 43点热度 阅读全文

谢谢阅读! 我一直希望在我简单的2D Java游戏中使用Lighting,然后我最终想出/找到了一些我在游戏中实现的代码。一切正常,但没有照亮的区域完全是黑色的,我想让更多的人看到灰色的黑暗。因此,我认为这很简单,我将alpha值从255更改为200,但没有任何改变。我将其更改为1,不仅创建了想要的效果,还创建了一个有趣的其他效果,当我移动灯光时,灯光会停留一会儿,有点像一条小路。但是,无论如何,我如何更改黑色的音高以具有更多的alpha值? Light.java: private BufferedImage im…

2020年11月6日 0条评论 42点热度 阅读全文

我有一个作业问题来计算不同航母的延迟飞行。我正在从CSV文件中读取内容,并为“承运人”创建了一个类,该类包含总飞行次数和延误飞行次数。由于载具数量很多(大约10个),我如何创建从CSV(或2d数组)中读取的载具对象。 代替 carrier UA = new carrier("Us Airways", 100, 50); carrier Delta = new carrier("Delta", 100, 50); 并对所有对象进行硬编码。 现在,CSV数据位于2D数组中,并且非面向对象的代码如下。 public st…

2020年11月5日 0条评论 47点热度 阅读全文

我正在尝试格式化以下数组: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 如何使用嵌套的for循环初始化二维数组和值? 解决方案如下: 我认为您对二维数组有误解。想想它们包含数组的beeing数组。 如果您真的想要这个: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]] 您可以像这样初始化它: int[][] array2d = new int[…

2020年11月2日 0条评论 35点热度 阅读全文

我正在制作Java 2d平台程序,并且正在使用线程,到目前为止,我有4个类: Main.java -处理主JFrame Board.java -大多数游戏逻辑在哪里 -使用每5毫秒刷新一次的线程 -KeyListener Guy.java -制造家伙的地方 -使用ImageIcon取得人物形象 -其他诸如getBounds,getX / Y等有用的功能 Platform.java -启动平台实例的位置 -再次,有用的功能 现在,继续我的工作: 我能够从一个平台转移到另一个平台,并且能够跳跃。这是我的重力代码,检查是…

2020年10月25日 0条评论 57点热度 阅读全文

谢谢阅读! 我一直希望在我简单的2D Java游戏中使用Lighting,然后我最终想出/找到了一些我在游戏中实现的代码。一切正常,但没有照亮的区域完全是黑色的,我想让更多的人看到灰色的黑暗。因此,我认为这很简单,我将alpha值从255更改为200,但没有任何改变。我将其更改为1,不仅创建了想要的效果,还创建了一个有趣的其他效果,当我移动灯光时,灯光会停留一会儿,有点像一条小路。但是,无论如何,我如何更改黑色的音高以具有更多的alpha值? Light.java: private BufferedImage im…

2020年10月16日 0条评论 30点热度 阅读全文

我有一个.csv文件,其中包含177行和18,000个奇数列。鉴于列标签,我应该选择该特定列,并默认选择前两个标签列。 请在这件事上给予我帮助, 谢谢大家 普里亚 解决方案如下: 那么,有什么问题呢?解析CSV文件。您可以自己实现,也可以使用第三方代码。如果您自己实现它,请逐行读取,请将line.split(",")行拆分为元素,并将其放入应该是列表列表的数据结构中: Map<String, List<String>> table = new LinkedHashMap<String,…

2020年10月11日 0条评论 47点热度 阅读全文

int元素= array [0] [0]; int count = 0; for (int row = 0; row < array.length; row++) { for (int col = 0; col < array[0].length; col++) { int tempElement = array[row][col]; int tempCount = 0; for (int x = 0; x< array.length;x++){ for(int y=0; y<array[x…

2020年10月5日 0条评论 40点热度 阅读全文