gpt4 book ai didi

java - 设置 Java GUI 建筑和房间

转载 作者:行者123 更新时间:2023-11-30 04:00:19 25 4
gpt4 key购买 nike

我正在寻找更有经验的程序员的建议和想法。

我想做的是创建我的校舍一层的布局,所有房间等都就位,然后让“人们”像白天的模拟一样走来走去(想想哈利·波特中的活点 map )。

我真正想知道的是,我将如何设置一切来实际制作地板的 2D 版本,并防止代表人们的点穿过墙壁,并让他们根据自己的时间表实际去上课。

我已经考虑过尝试 A* 算法并使用节点来让人们移动,但我不知道这会有多有效,也不知道如何创建墙壁和门口供人们通过。

有人对解决这个问题有任何想法或建议吗?

编辑::另一个简单的问题。我该如何让人们移动以便去上课等?特别是如果 A* 不是最好的主意。

最佳答案

你可以...

创建代表平面图的位图,这就是屏幕上显示的内容。然后,您将创建平面图的蒙版,它定义了 Actor 可以移动的区域。

mask 基本上代表 Actor 可以移动的核心颜色,例如,在移动时,您将检查 Actor 周围的像素以确定 Actor 可以按照他们想要的方向移动

平面图:
Floor
面膜:
Mask

第一个图像将显示在屏幕上,掩模将用于确定给定的 x/y 位置是否表示可移动像素位置(即黑色)。我还包括了不同的门类型,但这取决于您。

这种方法的问题在于它的可扩展性不太好,因为希望您的蒙版不包含任何抗锯齿功能,您故意希望它的边缘很粗糙。

你可以...

使用 Java 中的 2D 图形 API 生成某种多边形。就我个人而言,我会使用某种 Shape,例如 Path2D。这可以从文件中读取信息或简单地进行硬编码。

这样您就可以使用可用的 API 功能轻松确定某个点是否包含在形状内 (Shape#contains)

这种方法允许您对形状应用变换,可以轻松地动态绘制和翻译该形状。

关于java - 设置 Java GUI 建筑和房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com