1
0
mirror of https://github.com/Memorix101/UnityXNA/ synced 2024-12-30 15:25:35 +01:00

63 lines
1.8 KiB
C#
Raw Permalink Normal View History

#region File Description
//-----------------------------------------------------------------------------
// Tile.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#endregion
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Platformer
{
/// <summary>
/// Controls the collision detection and response behavior of a tile.
/// </summary>
enum TileCollision
{
/// <summary>
/// A passable tile is one which does not hinder player motion at all.
/// </summary>
Passable = 0,
/// <summary>
/// An impassable tile is one which does not allow the player to move through
/// it at all. It is completely solid.
/// </summary>
Impassable = 1,
/// <summary>
/// A platform tile is one which behaves like a passable tile except when the
/// player is above it. A player can jump up through a platform as well as move
/// past it to the left and right, but can not fall down through the top of it.
/// </summary>
Platform = 2,
}
/// <summary>
/// Stores the appearance and collision behavior of a tile.
/// </summary>
struct Tile
{
public Texture2D Texture;
public TileCollision Collision;
public const int Width = 40;
public const int Height = 32;
public static readonly Vector2 Size = new Vector2(Width, Height);
/// <summary>
/// Constructs a new tile.
/// </summary>
public Tile(Texture2D texture, TileCollision collision)
{
Texture = texture;
Collision = collision;
}
}
}