问题标签 [minecraft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1172 浏览

game-engine - 最佳体素引擎/语言?

我正在研究制作一个类似于 Minecraft 的基于体素的游戏,只是这将使用具有更高纹理分辨率的稍微更高的多边形体素,以创建更平滑、更逼真的地形以及独特的功能,如基于体素的自定义角色、玩家和敌人。

我的问题是开发这种类型的独立游戏的最佳引擎和语言是什么,对于这种类型的体素来说,图形优化程度最高?

0 投票
1 回答
1248 浏览

java - Minecraft 2d Remake:构建和破坏块问题

我很擅长用 java 制作我的 2d 重制版 minecraft。我知道它可以做得很好,youtube 上的 orange451 启发了我尝试做这个。我从文本文件加载地图上的所有块,当游戏加载时,它将文本文件中的所有块添加到 ArrayList。我创建了一个算法来计算游戏中光标所在块的索引,并添加了一个 MouseListener,这样当我点击它时,它将用空气块替换块(基本上破坏块)。为了替换 ArrayList 中的块,我使用了 ArrayList set(index, obj) 方法。从理论上讲,它应该可以正常工作,并且在某种程度上确实可以。唯一的问题是它还在几个街区外的地图中创建了一个黑色空间。这非常令人沮丧,特别是因为我已经走了这么远。附加信息:我需要一种方法来替换 ArrayList 中的对象,或者更好的方法来做到这一点,因为我的碰撞检测方法也使用 ArrayList 来检测块的位置。请帮我!我不能发布图像,但它将块设置为空气纹理,但在它附近创建了一个黑色方块(arraylist mabey 中的一个间隙?)。由于要贴的代码太多,这里是整个项目的源代码: Blockworld 2D 源代码

0 投票
1 回答
600 浏览

java - 二维数组的渲染距离——Minecraft 2D

现在我正在从 2D 数组加载我的地​​图,char当我加载超过 100 个块(10x10 区域)时,游戏真的很慢。我已经让它只在角色的一定距离内渲染块。我也相信我知道它为什么运行这么慢,但我不知道如何解决它。继承人的代码:

该行:

是什么让它运行得非常慢。即使它没有将它们绘制到屏幕上,它仍然设置为Block next等于. 问题是我不能只删除这行代码,因为它决定了离角色多远来绘制块。我需要让它只设置 next 等于被绘制到屏幕上的 blocks[x][y] 的尽可能多的元素。new Block(blocks[x][y], x, y)blocks[x][y]

我试过把:

围绕它和相同的 for y - playerY,但它不起作用,尽管理论上它应该。

如果您知道如何做到这一点并让游戏像我从 ArrayList 加载块时一样快,请回答这个问题,这使我能够加载超过 5000 个块并以良好的 FPS 速率运行。如果您需要游戏的源代码来帮助我解决此问题,请评论您需要它,我会发布它。

0 投票
2 回答
134 浏览

java - 阻止 Java 创建新进程

我正在设置一个小服务,允许人们在没有被大量使用的备用盒子上运行临时的 Minecraft 服务器。

将启动 Minecraft 服务器的 .jar 将不可编辑,因为他们无法上传新的 .jar 并在其位置运行。但是,.jar 将是 Minecraft 服务器的 Bukkit Mod/Wrapper,它允许加载 .jar 形式的插件。是什么阻止了某人创建自己的插件并使用它来生成更多服务器?

如何防止有人使用服务器插件创建另一个服务器进程?我已经计划这样做,以便每台服务器都将在其自己的用户帐户下运行,该用户帐户无法访问。

0 投票
1 回答
947 浏览

connect - 我的世界连接错误

这可能是在错误的网站上,所以如果必须的话,请继续移动它......但过去一周我一直遇到同样的问题,这真的开始让我恼火。当我尝试加入我朋友的 MC 服务器时,我收到一条错误消息,提示“已断开连接,登录时间过长”。我用谷歌搜索了这个错误,发现这可能是因为我的世界成员身份验证服务器已关闭,但我通过让我的朋友登录我的帐户消除了这种可能性。使用同一台服务器对他来说效果很好。

我还认为我的 Minecraft 客户端可能没有与服务器保持同步,所以我尝试使用服务器使用的更新(12w07a)更新我的客户端,但这并没有改变任何东西。

然后,我尝试将我的路由器端口转发到 25565,但这并没有做任何事情。我的朋友说有时 ISP(我的是 verizon fios)会阻止某些端口被转发。如果是这样的话,有什么办法可以绕过它吗?

所以我不确定到底是什么导致了这个问题。有人有什么想法吗?

0 投票
1 回答
227 浏览

java - 创建需要从 3 个变量( xyz )中间向外循环的检查

好的,现在问题来了。上面的当前代码获取 x、y、z 和 r(范围)。它的工作是通过“立方体”进行引用,直到满足我设置的某个条件。问题在于它从立方体的外侧开始,基本上从一个角到另一个角。

我正在寻找一种方法(我的数学/java 不喜欢我 atm)从一个 pos 开始并从该 pos(包括 pos 本身)向外循环,直到它到达立方体的最外层边界。

所以如果我们给所有的东西都是假值,让我们使用 x = 5, y = 5, z = 5, r = 2 代码应该检查 5,5,5 - 4,5,5 6,5,5 5,6,5 5,4,5 等基本上从中心向外迭代每一件事。

该命令称为 FindNearest,但从技术上讲,它的作用类似于 FindFurthest atm。

我希望我提供了足够的细节,并且希望有人可以向我扔一些片段或工作代码,因为这在最后一个小时左右令人沮丧。我不想在 for 循环或类似的随机东西中间进行 10 个 if 检查,我正在寻找一种干净的方式来执行此操作。

0 投票
0 回答
236 浏览

ruby - Ruby 套接字问题

我正在用 Ruby 编写一个名为 RMS 的 Minecraft Classic 服务器,它目前可以很好地向 minecraft.net 发送心跳。但问题是,当客户端(以 TCPSocket 的形式)连接时,只有服务器发送了服务器 ID 包或客户端退出。但服务器ID必须在服务器收到玩家信息后发送;每个玩家的内容都不一样。

可能是设计使然,但这是一件奇怪的事情......


您可以在此处找到当前的服务器软件。谢谢!

编辑:确切的问题位于行99-101program/server.rb

0 投票
1 回答
1478 浏览

php - 使用 Minecraft 类的全身预览

我在 PHP 中为 Minecraft 开发了一个类,最近添加的功能之一是皮肤预览,但我在编写全身预览的代码时遇到了一些麻烦(头部预览工作正常),我的代码用于头部预览如下...

https://github.com/nblackburn/minecraft/blob/master/class.minecraft.php

任何贡献都将极大地帮助这个全身预览工作。

0 投票
1 回答
2363 浏览

python - 如何使用 Python 将数据包发送到远程 Minecraft Classic 服务器?

你好 StackOverflow 的好心人。

我正在尝试制作一种可以连接到 Minecraft Classic 服务器、发布消息并可能构建的“机器人”。

无论如何,我在理解如何在 python 中发送数据包以及如何正确编码它们时遇到了一些麻烦。

这是我需要发送的数据包,我想发送“玩家标识”: http: //www.minecraftwiki.net/wiki/Classic_server_protocol#Client_.E2.86.92_Server_packets 我知道我需要使用套接字,并且我需要使用 struct.pack,但我该如何发送呢?

发送登录数据包的示例代码将非常棒。

谢谢。

0 投票
1 回答
1383 浏览

python - 尝试在 Python 中与 Minecraft 服务器交互时连接重置

我在尝试将数据包发送到 Minecraft 1.1 SMP 服务器时遇到了一点问题。

我有以下文件(ServerConnect.py):

但是,当我尝试运行它时,我得到以下信息:

对于不了解 MineCraft 数据包规格的任何人,可以在此处找到它们:

http://wiki.vg/协议

我正在尝试发送“握手”。

有谁知道出了什么问题,为什么以及如何解决?

任何帮助将不胜感激!