コード例 #1
0
 public override void draw(Spine.SkeletonRenderer sb)
 {
     sb.DrawSpriteToSpineVertexArray(Game1.whitePixel, new Rectangle(0, 0, 1, 1), position, Color.Lerp(parentWorld.KeyModule.KeyColorSet[(int)color], new Color(0.0f, 0.0f, 1.0f, 0.25f), 0.5f), 0.0f, dimensions);
     //sb.Draw(Game1.whitePixel, position, null, Color.Lerp(parentWorld.KeyModule.KeyColorSet[(int)color], new Color(0.0f, 0.0f, 1.0f, 0.25f), 0.5f), 0.0f, Vector2.Zero, dimensions, SpriteEffects.None, 0.45f);
 }
コード例 #2
0
        public void renderSPINEBATCHTEST(Spine.SkeletonRenderer sb, float depth, List <MutantAcidSpitter> spitters)
        {
            int focusTileX = (int)(parent.CameraFocus.CenterPoint.X / GlobalGameConstants.TileSize.X);
            int focusTileY = (int)(parent.CameraFocus.CenterPoint.Y / GlobalGameConstants.TileSize.Y);

            for (int j = Math.Max(0, focusTileY - 8); j < Math.Min(size.y, focusTileY + 9); j++)
            {
                for (int i = Math.Max(0, focusTileX - 14); i < Math.Min(size.x, focusTileX + 15); i++)
                {
                    if (map[i, j] != TileType.NoWall)
                    {
                        continue;
                    }

                    if (floorMap[i, j] == FloorType.Elevator)
                    {
                        sb.DrawSpriteToSpineVertexArray(tileSkin[4], new Rectangle((int)(3 * GlobalGameConstants.TileSize.X + 3), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                    }
                    else
                    {
                        switch (floorMap[i, j])
                        {
                        case FloorType.A:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[0], new Rectangle((int)(3 * GlobalGameConstants.TileSize.X + 3), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.B:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[0], new Rectangle((int)(4 * GlobalGameConstants.TileSize.X + 4), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.C:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[1], new Rectangle((int)(3 * GlobalGameConstants.TileSize.X + 3), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.D:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[1], new Rectangle((int)(4 * GlobalGameConstants.TileSize.X + 4), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.E:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[2], new Rectangle((int)(3 * GlobalGameConstants.TileSize.X + 3), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.F:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[2], new Rectangle((int)(4 * GlobalGameConstants.TileSize.X + 4), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.G:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[3], new Rectangle((int)(3 * GlobalGameConstants.TileSize.X + 3), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;

                        case FloorType.H:
                            sb.DrawSpriteToSpineVertexArray(tileSkin[3], new Rectangle((int)(4 * GlobalGameConstants.TileSize.X + 4), (int)(2 * GlobalGameConstants.TileSize.Y + 3), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                            break;
                        }
                    }
                }
            }

            for (int i = 0; i < spitters.Count; i++)
            {
                spitters[i].drawAcidSplotches(sb);
            }

            for (int j = Math.Max(0, focusTileY - 8); j < Math.Min(size.y, focusTileY + 9); j++)
            {
                for (int i = Math.Max(0, focusTileX - 14); i < Math.Min(size.x, focusTileX + 15); i++)
                {
                    int tileX;
                    int tileY;

                    switch (map[i, j])
                    {
                    case TileType.NoWall:
                        break;

                    case TileType.TestWall:
                        sb.DrawSpriteToSpineVertexArray(tileSkin[0], new Rectangle((int)(1 * GlobalGameConstants.TileSize.X + 1), (int)(6 * GlobalGameConstants.TileSize.Y + 6), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                        break;

                    case TileType.WallA:
                    case TileType.WallB:
                    case TileType.WallC:
                    case TileType.WallD:
                    case TileType.WallE:
                    case TileType.WallF:
                    case TileType.WallG:
                    case TileType.WallH:
                    case TileType.WallI:
                    case TileType.WallJ:
                    case TileType.WallK:
                    case TileType.WallL:
                    case TileType.WallM:
                    case TileType.WallN:
                    case TileType.WallO:
                    case TileType.WallP:
                        tileX = ((int)(map[i, j]) - 2) % 5;
                        tileY = ((int)(map[i, j]) - 2) / 5;
                        sb.DrawSpriteToSpineVertexArray(tileSkin[(int)mapMod[i, j]], new Rectangle((int)(tileX * GlobalGameConstants.TileSize.X + tileX), (int)(tileY * GlobalGameConstants.TileSize.Y + tileY), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                        break;

                    case TileType.WallUnidentified:
                    default:
                        sb.DrawSpriteToSpineVertexArray(tileSkin[0], new Rectangle((int)(1 * GlobalGameConstants.TileSize.X + 1), (int)(6 * GlobalGameConstants.TileSize.Y + 6), (int)(GlobalGameConstants.TileSize.X), (int)(GlobalGameConstants.TileSize.Y)), new Vector2((int)(i * tileSize.X), (int)(j * tileSize.Y)));
                        break;
                    }
                }
            }
        }