【发布时间】:2014-04-07 23:33:08
【问题描述】:
当我看到他们的 VarInt 读取代码以读取数据包长度时,我正在查看 Minecraft 的内部数据包处理。作为一个没有任何Java课程的Java开发人员,当我看到out |= ( in & 0x7F ) << ( bytes++ * 7 );的声明时,我感到很困惑。有人可以向我解释一下吗?提前致谢!
如果您想要完整的代码,只需检查 BungeeCord 的 Github https://github.com/SpigotMC/BungeeCord/blob/master/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java#L70 上的 readVarInt 函数即可。
【问题讨论】:
-
这意味着有人正在编写神秘代码。
-
你认为这意味着什么?你有调查过吗?
-
是的,阅读起来并不难,如果你一块一块地看的话。
-
(但是对于新手来说可能并不明显,即使在逐段解释之后,它只是简单地获取一系列字节并将每个字节的低 7 位连接在一起(假设
in是从数组或每次迭代中重新加载的)。) -
哦,
*是乘法运算符。
标签: java minecraft bungeecord