コード例 #1
0
ファイル: Chunk.cs プロジェクト: jpmac26/LazyShell
        public void Transfer(byte[][] tilemaps, Map areaMap, CollisionMap collisionMap, Point start, Point stop)
        {
            this.Start = start;
            int offset = 0, o = 0, p = 0;

            Size = new Size(stop.X - start.X, stop.Y - start.Y);
            this.Tilemaps_bytes[0] = new byte[(Size.Width * Size.Height) / 128];
            this.Tilemaps_bytes[1] = new byte[(Size.Width * Size.Height) / 128];
            this.Tilemaps_bytes[2] = new byte[(Size.Width * Size.Height) / 256];
            for (int y = start.Y / 16, b = 0; y < stop.Y / 16; y++, b++)
            {
                for (int x = start.X / 16, a = 0; x < stop.X / 16; x++, a++, o++)
                {
                    offset = (x * 2) + (y * 128);
                    this.Tilemaps_bytes[0][o * 2]     = tilemaps[0][offset];
                    this.Tilemaps_bytes[0][o * 2 + 1] = tilemaps[0][offset + 1];
                    this.Tilemaps_bytes[1][o * 2]     = tilemaps[1][offset];
                    this.Tilemaps_bytes[1][o * 2 + 1] = tilemaps[1][offset + 1];
                    this.Tilemaps_bytes[2][o]         = tilemaps[2][y * 64 + x];
                }
            }
            for (int y = start.Y; y < stop.Y; y++)
            {
                for (int x = start.X; x < stop.X; x++)
                {
                    p = collision.PixelTiles[y * 1024 + x] * 2;
                    CollisionMap_bytes[p]     = collisionMap.Tilemap_bytes[p];
                    CollisionMap_bytes[p + 1] = collisionMap.Tilemap_bytes[p + 1];
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Called when the collision map has been changed by the user.
 /// </summary>
 private void CollisionMapChanged()
 {
     collisionMap       = new CollisionMap(map);
     collisionMap.Image = null;
     tilemapForm.Picture.Invalidate();
 }