0

我想知道“MAP_WIDTH = 64”在下面的代码中做了什么。它取自一系列关于 Java 2d 游戏引擎设计的视频中的一集,我已经链接了有问题的视频。

正在使用的精灵表是 256 x 256 .png,网格/平铺/精灵(?)为 8 x 8。精灵表仅使用 4 种颜色,他们将这 4 种颜色中的每一种设置为代码中的其他颜色。以下代码位于底部链接的视频的第一分钟。(省略了与渲染有关的一些变量)

我无法为我的生活弄清楚发生了什么。64 是从哪里来的?我唯一能看到的是 8 x 8 网格中有 64 个像素,但是为什么还要再乘以 64 呢?它不能是每行/列的像素,因为其中有 256 个,也不能是图块的数量,因为每行/列有 32 个。

我可以看到为什么 int colours[] 比瓦片数组大 4 倍,因为每个像素可以是 4 个值之一,但我很难掌握这一点。

public class Screen{
   public static final int MAP_WIDTH = 64;
   public static final int MAP_WIDTH = MAP_WIDTH - 1;

   public int[] tiles = new int[MAP_WIDTH * MAP_WIDTH]
   public int[] colours = new int[MAP_WIDTH * MAP_WIDTH * 4]


   public Screen(){
       for(int i =0; i<MAP_WIDTH * MAP_WIDTH; i++){
           colours[i*4 +0] = 0xff00ff;
           colours[i*4 +1] = 0x00ffff;
           colours[i*4 +2] = 0xffff00;
           colours[i*4 +3] = 0xffffff;
       }
   }
}

YouTube 链接

4

0 回答 0