WPF学习笔记-推箱子(1)

 

学习了一段时间WPF顺便做些小东西同时也熟悉下学到的知识。下来就做一个简单的小游戏---推箱子。

 

首先分析下推箱子的基本信息:

1:地图信息

包括每张地图的基本信息,初始位置,箱子数量,箱子位置,目标位置,障碍物位置。

2:行为逻辑

包括基本的移动判断,是否可以响应移动;碰撞判断,判断是否胜利,箱子是否可以移动。

首先就来分析地图信息这一块的基本要素

 /// <summary>
    /// 地图信息类
    /// </summary>
    internal class MapInfo
    {
        /// <summary>
        /// 地图点信息
        /// </summary>
        public List<Map_Node> MapNodes = new List<Map_Node>();

        
        /// <summary>
        /// 障碍物信息
        /// </summary>
        public List<Locate> BoxLocates = new List<Locate>();

        /// <summary>
        /// 目标点信息
        /// </summary>
        public List<Locate> Targets = new List<Locate>();

        private Locate _herolocate = new Locate();

        /// <summary>
        /// 猪脚位置
        /// </summary>
        public Locate HeroLocate
        {
            get { return _herolocate; }
            set { _herolocate = value; }
        }
 
        /// <summary> 
        /// 地图宽度
        /// </summary> 
        public int MapSize_X
        { 
            getset;
        }
 
        /// <summary> 
        /// 地图宽度
        /// </summary> 
        public int MapSize_Y
        { 
            getset;   
        }

    }
    /// <summary>
    /// 地图点类型
    /// </summary>
    internal class Map_Node
    {
        #region Field

        private Node_Type _type;
        private int _x;
        private int _y;

        #endregion Field

        #region Property

        /// <summary>
        /// 地图点类型
        /// </summary>
        public Node_Type Type
        {
            get { return _type; }
            set { _type = value; }
        }

        /// <summary>
        ///  地图点X坐标
        /// </summary>
        public int X
        {
            get { return _x; }
            set { _x = value; }
        }

        /// <summary>
        /// 地图点Y坐标
        /// </summary>
        public int Y
        {
            get { return _y; }
            set { _y = value; }
        }

        #endregion Property
    }

    /// <summary>
    /// 坐标类
    /// </summary>
    internal class Locate
    {
        private int x;

        public int X
        {
            get { return x; }
            set { x = value; }
        }

        private int y;

        public int Y
        {
            get { return y; }
            set { y = value; }
        }
    }

    /// <summary>
    /// 地图点类型枚举
    /// </summary>
    public enum Node_Type
    {
        Blank = 0, //空白,可通行
        Obstacle = 1,//障碍物
        Hero = 2,//猪脚
        Box = 3//箱子
    };
 
View Code

如上,一张地图包括这些基本信息:

地图大小
障碍物信息 
目标点信息
主角位置
 
 
posted @ 2013-06-04 14:44  紫菜苔  阅读(165)  评论(0)    收藏  举报