win8 开发之旅(19) --足球游戏揭秘5

今天,我们揭秘一下Group,GameConfig,PlayersConfig这几个类。 这几个虽然是添头类,但缺少了他,游戏,嗨,真的运行不了。那,请掀起盖头来吧!

①Group——有足球知识的基础的人,都明白这是干嘛的,这是一个分组情况的类。这是中国球迷最避讳一个词,每次大赛小赛一出来,总是看到国足被分入了死亡之组,哎怎么总被分入死亡之组了,这个类在游戏中的作用如图所示:

相应源代码如下所示:

 /// <summary>
    /// 当前的组别 A组 B组 C组
    /// </summary>
    public class Group
    {
        /// <summary>
        /// A,B,C,D............
        /// </summary>
        public string GroupID { get; set; }
    }

②GameConfig——比赛的信息纯粹用这个类来存储,用这个泛型信息来储存,因此有个Game的泛型数组,对于Game这个实体类,我们以后再说。  再有将所有的信息加载的方法。他的具体信息如图所示。 当你选择巴西的时候,就用linq语句查询出来。

相应源代码如下所示:

 public  class GameConfig
    {
        /// <summary>
        /// 队伍的键值对
        /// </summary>
        Dictionary<string, Team> teamsDictionary = new Dictionary<string, Team>();
        /// <summary>
        /// 加载比赛的列表
        /// </summary>
        /// <param name="gameTable"></param>
        public void LoadGameTable(List<Game> gameTable)
        {
            //键值对的信息
            teamsDictionary = GameHelper.Instance.TeamsDictionary;
            /// 南非vs 墨西哥
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/11/2010"), teamsDictionary["RSA"], teamsDictionary["MEX"], "Soccer City", "JohannesBurg"));
            ///乌拉圭vs 法国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/11/2010"), teamsDictionary["URU"], teamsDictionary["FRA"], "Cape Town Stadium", "Cape Town"));
            //南非vs乌拉圭
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/16/2010"), teamsDictionary["RSA"], teamsDictionary["URU"], "Loftus Versfeld Stadium", "Pretoria "));
            //法国vs墨西哥
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/17/2010"), teamsDictionary["FRA"], teamsDictionary["MEX"], "Peter Mokaba Stadium", "Polokwane "));
            //墨西哥vs乌拉圭
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/22/2010"), teamsDictionary["MEX"], teamsDictionary["URU"], "Royal Bafokeng Stadium", "RustenBurg"));
            //法国vs南非
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/22/2010"), teamsDictionary["FRA"], teamsDictionary["RSA"], "Free State Stadium", "Bloemfontein "));
            //韩国vs希腊
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/12/2010"), teamsDictionary["KOR"], teamsDictionary["GRE"], "Nelson Mandela Bay Stadium", "Port Elizabeth"));
            //阿根廷vs尼日利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/12/2010"), teamsDictionary["ARG"], teamsDictionary["NGA"], "Ellis Park Stadium", "JohannesBurg"));
            //阿根廷vs韩国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/17/2010"), teamsDictionary["ARG"], teamsDictionary["KOR"], "Soccer City", "JohannesBurg"));
            //法国vs尼日利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/17/2010"), teamsDictionary["GRE"], teamsDictionary["NGA"], "Free State Stadium", "Bloemfontein "));
            //尼日利亚vs韩国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/22/2010"), teamsDictionary["NGA"], teamsDictionary["KOR"], "Moses Mabhida Stadium", "Durban"));
            //希腊vs阿根廷
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/22/2010"), teamsDictionary["GRE"], teamsDictionary["ARG"], "Peter Mokaba Stadium", "Polokwane "));
            //英格兰vs美国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/12/2010"), teamsDictionary["ENG"], teamsDictionary["USA"], "Royal Bafokeng Stadium", "RustenBurg"));
            //阿尔及利亚vs斯洛文尼亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/13/2010"), teamsDictionary["ALG"], teamsDictionary["SVN"], "Peter Mokaba Stadium", "Polokwane "));
            //斯洛文尼亚vs美国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/18/2010"), teamsDictionary["SVN"], teamsDictionary["USA"], "Ellis Park Stadium", "JohannesBurg"));
            //英格兰vs阿尔及利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/18/2010"), teamsDictionary["ENG"], teamsDictionary["ALG"], "Cape Town Stadium", "Cape Town"));
            //斯洛文尼亚vs英格兰
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/23/2010"), teamsDictionary["SVN"], teamsDictionary["ENG"], "Nelson Mandela Bay Stadium", "Port Elizabeth"));
            //美国vs阿尔及利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/23/2010"), teamsDictionary["USA"], teamsDictionary["ALG"], "Loftus Versfeld Stadium", "Pretoria "));
            //塞尔维亚vs加纳
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/13/2010"), teamsDictionary["SRB"], teamsDictionary["GHA"], "Loftus Versfeld Stadium", "Pretoria "));
            //德国vs澳大利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/13/2010"), teamsDictionary["GER"], teamsDictionary["AUS"], "Moses Mabhida Stadium", "Durban"));
            //德国vs塞尔维亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/18/2010"), teamsDictionary["GER"], teamsDictionary["SRB"], "Nelson Mandela Bay Stadium", "Port Elizabeth"));
            //加纳vs澳大利亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/19/2010"), teamsDictionary["GHA"], teamsDictionary["AUS"], "Royal Bafokeng Stadium", "RustenBurg"));
            //加纳vs德国
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/23/2010"), teamsDictionary["GHA"], teamsDictionary["GER"], "Soccer City", "JohannesBurg"));
            //澳大利亚vs塞尔维亚
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/23/2010"), teamsDictionary["AUS"], teamsDictionary["SRB"], "Mbombela Stadium", "Nelspruit"));
            //荷兰vs丹麦
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/14/2010"), teamsDictionary["NED"], teamsDictionary["DEN"], "Soccer City", "JohannesBurg"));
            //日本vs喀麦隆
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/14/2010"), teamsDictionary["JPN"], teamsDictionary["CMR"], "Free State Stadium", "Bloemfontein "));
            //荷兰vs日本
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/19/2010"), teamsDictionary["NED"], teamsDictionary["JPN"], "Moses Mabhida Stadium", "Durban"));
            //喀麦隆vs丹麦
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/19/2010"), teamsDictionary["CMR"], teamsDictionary["DEN"], "Loftus Versfeld Stadium", "Pretoria "));
            //丹麦vs日本
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/24/2010"), teamsDictionary["DEN"], teamsDictionary["JPN"], "Royal Bafokeng Stadium", "RustenBurg"));
            //喀麦隆vs荷兰
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/24/2010"), teamsDictionary["CMR"], teamsDictionary["NED"], "Cape Town Stadium", "Cape Town"));
            //喀麦隆vs巴拉圭
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/14/2010"), teamsDictionary["CMR"], teamsDictionary["PAR"], "Cape Town Stadium", "Cape Town"));
            //新西兰vs斯洛伐克
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/15/2010"), teamsDictionary["NZL"], teamsDictionary["SVK"], "Royal Bafokeng Stadium", "RustenBurg"));
            //巴拉圭vs斯洛伐克
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/20/2010"), teamsDictionary["SVK"], teamsDictionary["PAR"], "Free State Stadium", "Bloemfontein "));
            //意大利vs新西兰
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/20/2010"), teamsDictionary["ITA"], teamsDictionary["NZL"], "Mbombela Stadium", "Nelspruit"));
            //斯洛伐克vs意大利
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/24/2010"), teamsDictionary["SVK"], teamsDictionary["ITA"], "Ellis Park Stadium", "JohannesBurg"));
            //巴拉圭vs新西兰
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/24/2010"), teamsDictionary["PAR"], teamsDictionary["NZL"], "Peter Mokaba Stadium", "Polokwane "));
            //巴西vs朝鲜
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/15/2010"), teamsDictionary["BRA"], teamsDictionary["PRK"], "Ellis Park Stadium", "JohannesBurg"));
            //葡萄牙vs科特迪瓦
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/15/2010"), teamsDictionary["POR"], teamsDictionary["CIV"], "Soccer City", "JohannesBurg"));
            //巴西vs科特迪瓦
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/20/2010"), teamsDictionary["BRA"], teamsDictionary["CIV"], "Soccer City", "JohannesBurg"));
            //巴西vs葡萄牙
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/25/2010"), teamsDictionary["BRA"], teamsDictionary["POR"], "Nelson Mandela Bay Stadium", "Port Elizabeth"));
            //葡萄牙vs朝鲜
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/21/2010"), teamsDictionary["POR"], teamsDictionary["PRK"], "Cape Town Stadium", "Cape Town"));
            //葡萄牙vs巴西
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/25/2010"), teamsDictionary["POR"], teamsDictionary["BRA"], "Moses Mabhida Stadium", "Durban"));
            //朝鲜vs巴西
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/25/2010"), teamsDictionary["PRK"], teamsDictionary["BRA"], "Mbombela Stadium", "Nelspruit"));
            //洪都拉斯vs智利
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/16/2010"), teamsDictionary["HON"], teamsDictionary["CHI"], "Mbombela Stadium", "Nelspruit"));
            //西班牙vs瑞士
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/16/2010"), teamsDictionary["ESP"], teamsDictionary["SUI"], "Moses Mabhida Stadium", "Durban"));
            //智利vs瑞士
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/21/2010"), teamsDictionary["CHI"], teamsDictionary["SUI"], "Nelson Mandela Bay Stadium", "Port Elizabeth"));
            //瑞士vs洪都拉斯
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/21/2010"), teamsDictionary["ESP"], teamsDictionary["HON"], "Ellis Park Stadium", "JohannesBurg"));
            //智利vs西班牙
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/25/2010"), teamsDictionary["CHI"], teamsDictionary["ESP"], "Loftus Versfeld Stadium", "Pretoria "));
            //瑞士vs洪都拉斯
            gameTable.Add(new Game("GRP", Convert.ToDateTime("06/25/2010"), teamsDictionary["SUI"], teamsDictionary["HON"], "Free State Stadium", "Bloemfontein "));
        }
    }

③PlayConfig——比赛运动员的信息纯粹用这个类来存储,用这个泛型信息来储存,因此有个Player的泛型数组,对于Player这个实体类,我们以后再说。  再有将所有的信息加载的方法。他的具体信息如图所示。 当你选择巴西的时候,加载相应的运动员的信息的时候,就用linq语句查询出来。

这是一个头简单的方法,一般做法,应该是建立一个文件在从中读取(自动建立),这就是为什么,大多数we玩家,你有可能卸载了相应的文件,只要文件夹不删除话,球员比赛信息都存在的缘故吧!。

好了,今天内容,很简单,望大家多讨论,后面还有这个游戏的核心类的介绍。游戏的源代码地址:http://51aspx.com/Code/ZCWWorldCupV10

时间: 2024-10-26 16:17:16

win8 开发之旅(19) --足球游戏揭秘5的相关文章

win8 开发之旅(19) --足球游戏揭秘6

我们这里揭秘什么了,来揭秘一下.MoveResult,GoalPost ,Shot这几个类. 首先,这几个类都属于Moel层,这几个类都是主要用于存储相应的实体类的信息,具体为什么请听我一一娓娓道来.   ①MoveResult--记录移动信息的类,就是记录运动员的移动的信息.他继承与Discoid这个类,物体的实体类. 而实现的伪代码如下: 相应的源代码如下: /// <summary> /// 移动的结果 /// </summary> public class MoveResu

win8 开发之旅(15) --足球游戏揭秘(1)

  足球游戏是一种喜闻乐见的游戏,当然了足球游戏,可以有难有易.难得可以做成像实况足球,fifa那样大型的3d游戏,简单的也只能模拟踢球的画面,球员用  圆圈,图形代表了.那我的足球游戏,也是这样的.具体情况,如图所示: 这是一个进行选择球队的界面,我的队伍是依据fifa2010世界杯分组的情况,也是一个splashgren window,缓冲界面,当你选择了那支球队以后,就跳到他与另外本组的另外的球队的比赛的情况去了,这也是严格按照世界杯的赛程走的. 譬如,我选择的是巴西队,他的第一场是对北朝

win8 开发之旅(17) --足球游戏揭秘3

我们继续我们的足球的揭秘之旅了,在解密的过程中,我牢牢遵守了由易到难的原则,今天是解密FoulTypes,GameState,PlayerState这三个枚举类型. FoulType--犯规的枚举类型,相应的源代码如下所示: 1 /// <summary> 2 /// 犯规的类型的枚举类型 3 /// </summary> 4 public enum FoulTypes 5 { 6 /// <summary> 7 /// 直接任意球 8 /// </summary

win8 开发之旅(18) --足球游戏揭秘4

这节,我们介绍一下DiscoidPosition,TableBorder,Vector2D  这三个类吧.你别开只有这三个类,对这个项目有着至关重要的作用. ①DiscoidPosition--物体的位置的坐标,标记物体的x,y坐标的位置.源代码如下所示: 1 ///<summary> 2 /// 物体的位置 3 /// </summary> 4 public class DiscoidPosition 5 { 6 /// <summary> 7 /// x坐标 8 /

win8 开发之旅(16)---------足球游戏揭秘(2)

游戏的原貌到底是怎么样的了,这节我们给你来揭秘吧.  我们这里遵从先外向里的原则,先局部后整体的原则吧.首先看看他的整体的结构吧!如图所示: 这里没有用分层的概念,而是一个文件夹代表了一个层.层确实蛮多的,但是与这个有关的核心的文件夹只有这几个Images文件夹,Sound文件夹,Controls文件夹,Common文件夹,View文件夹. Images文件夹包含了这个游戏中所有的资源的图片. Sounds文件夹包含了这个游戏中所有的声音文件. 而Controls包含了其中控制器,控制相应页面上

win8 开发之旅(14) --飞机游戏制作揭秘

先看看这个游戏的类结构的介绍 类结构  公共类层: 子弹帮助类. BulletHepler,公共帮助类. CommonHelper,图片帮助类.ImageHelper,精灵工厂类.SpriteFactory. 游戏元素层:  公有元素有精灵类.Sprite,精灵实体类.ModelSprite,英雄实体类.HeroSprite,游戏结束类.GameOver; 旗下又包括了Bullet层,Daoju层,Effect层,Enemy层. Bullet层有一个基类BulletSprite,子弹精灵类.其他

win8 开发之旅(1) --连连看游戏开发 前奏

   两天没写博客了,手痒痒了,你问我干吗去了,学习win8开发去了,    发现metro UI 风格就是  给人耳目一新的感觉,而微软的技术真的是介入牛a与牛b之间.如果您有xam与.net开发基础,很快能够上手吧!    我想微软既然让开发人员学习成本如此之低,那我岂不是能很快完成我的第一个小的项目--连连看(因为,以前在wp7上做过类似的应用).    可任何事情都是--说时容易做时难.一个小东西竟然花去了我两天的宝贵的休息时间.虽然可惜,但确实说收获颇丰.    首先, 我们要开始老生

win8 开发之旅(3) --五子棋游戏开发 前奏

     真的是好久.好久没有写博客了,手都生了.我有在国庆这七天的时间更进一步的学习了xaml语言,熟悉了win8的开发的过程.      因此我会把我这些天开发的一些心得陆陆续续的分享给大家.       经过前几次我写相应的开发的历程,我就发现写自己开发的历程,要么直说自己的想法,要么只贴源代码,使读者摸不着头脑.在这里,  我争取综合两者长处,深入浅出的剖析开发历程,争取使大家有所获益.       在这节中,我们要主要搞清楚以下几个问题.       什么是五子棋       编程实现

win8 开发之旅(4) --五子棋游戏开发 面向对象的分析

  上节说到剖析五子棋的任务从这节开始,那确实.      其实,这节的任务很简单,就是 以完全面向对象的思想来分析这个小游戏.        对于面向对象,对于开发人员,一定不再陌生,这里就不再赘述.       那他需要哪些类了.          一个黑棋子,一个白棋子,他是不是有许多的属性 是一样的,因此我们这里抽象出一个piece 包含位置,类型等等属性         这些棋子在哪玩,是不是棋盘上.因此,我们需要棋盘类(pieceboard)类来体现所谓的棋盘.         怎么