【问题标题】:java all values int[] 0java所有值int [] 0
【发布时间】:2013-07-17 18:22:45
【问题描述】:

对于一个用 java 编写的小游戏,我有一个主关卡和一个背景关卡。玩家只能在邮件关卡中行走,背景关卡仅供装饰。我编写了一个方法来检查所有可见的背景图块,并将这些图块的坐标放在 int[][][] 中。数组是三维的,因为背景也是三维的。因为背景并不总是可见的,所以我认为我可以通过首先检查单个背景图块是否可见来节省相当多的处理时间。换句话说,检查包含所有可见背景图块的数组是否有任何值写入任何插槽。当一个图块可见时,数组中的坐标变为 1,否则,它保持在其默认值(我认为是 0)。你们知道有效检查数组是否包含值的好方法,这样程序就不必每秒浏览每个插槽 60 次?

【问题讨论】:

  • 代码值 1,024 字...
  • 我会使用图形处理器来执行此操作,而不是尝试在 Java 中执行此操作。绘制多个具有透明部分的图像。这比在 Java 中尝试要快 100 倍。
  • 为什么不计算插入过程中可见的图块数量,并在数组中追加信息?所以你只需要检查一个 space 而不是每个插槽..

标签: java arrays int


【解决方案1】:

如果你不想每次都遍历整个数组,那么你可以保留一个标志或类似的东西来告诉你是否有任何可见的。

即使您应该有足够的计算能力来每秒通过阵列 60 次 :)

【讨论】:

    【解决方案2】:

    我不认为在 Java 中存在用于检查数组是否完全为空的内置机制。但是,除非您的阵列真的很大,否则您不应低估您的计算机。每秒检查 60 次阵列并不需要太多的处理能力。

    或者,您可以维护count 属性或类似的东西;每当您将数组元素更改为 1 时将其递增,并在将元素设置回 null 时将其递减。只要count 为0,就可以认为数组是空的。

    另外,需要注意的是,在 Java 中,数组槽被初始化为 null,而不是 0。

    【讨论】:

    • int[],所以槽确实初始化为0。
    • 但是int[][][] 是对int[][] 的引用数组对int[] 的引用数组ints 的数组。
    猜你喜欢
    • 2014-06-28
    • 2017-11-16
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多