这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十一篇。在这篇文章中,介绍 Common/Env.cs 源程序文件。这个源程序文件中包含表示“工作环境”的密封类 Env 。也就是说,主程序中重要的变量都封装在这个类中,作为整个程序的“工作环境”。她还起着桥梁作用,其中两个字段:

    DataFile db;       // 数据文件
    ConfigFile cfg;    // 配置文件

    正是我们以前介绍过的管理数据文件的密封类 DataFile 和管理配置文件的密封类 ConfigFile 的实例。密封类 Env 中的不少属性和方法是通过这两个字段调用其各自的属性和方法。
    下面对密封类 Env 中的一些方法作点说明:
    GetClientSize 方法用来计算当使用标准箱子尺寸时主窗体客户区的尺寸。该方法仅当程序运行在计算机上时才会被调用,使主窗体的尺寸根据当前关的尺寸自动调整。程序运行在智能手机时是不会被调用的,因为在智能手机上本程序并不改变主窗体的尺寸。
    SetBoxInfo 方法的作用是根据客户区尺寸计算箱子的尺寸,并相应设定要显示的图形单元。图形单元共有 24x24、20x20、16x16 和 12x12 四种尺寸,如下所示:

使用 C# 开发智能手机软件:推箱子(十一)

使用 C# 开发智能手机软件:推箱子(十一)

使用 C# 开发智能手机软件:推箱子(十一)  

使用 C# 开发智能手机软件:推箱子(十一)

    如果使用 12x12 的图形单元还不能在客户区完整显示地图的话,可能这一关的游戏就无法玩了。
    Draw 方法用来更新主窗体客户区,也就是在主窗体客户区画出本关的地图,并根据玩家的动作随时更新地图。
    Design 方法实现在设计模式下,当鼠标点击时要采取的动作。
    StepIt 方法实现工人往指定方向前进一步(可能推着箱子)。
    Back 方法实现工人后退一步(可能连带箱子一起后退)。
    GetMoveInfo 方法寻找一条将工人移动到鼠标点击的位置的路线。她调用我们以前介绍过的静态类 FindPath 的 Seek 方法来寻找最短路线。
    GetPushInfo 方法给出将箱子推动到鼠标点击的位置所需的信息。
    到此为止,Common 目录下所有源程序文件都介绍完了,这些源程序文件中包含的类是实现整个程序功能的基础。在随后的文章中将介绍 Windows 目录下的源程序文件,她们包含的类实现整个程序的用户界面。
    下面就是密封类 Env 的源程序代码,虽然稍微长了一点,但是里面的注释比较详细,应该不难理解。
  1使用 C# 开发智能手机软件:推箱子(十一)using System;
  2使用 C# 开发智能手机软件:推箱子(十一)using System.Drawing;
  3使用 C# 开发智能手机软件:推箱子(十一)using System.Collections.Generic;
  4使用 C# 开发智能手机软件:推箱子(十一)
  5使用 C# 开发智能手机软件:推箱子(十一)namespace Skyiv.Ben.PushBox.Common
  6


上一篇:使用 C# 开发智能手机软件:推箱子(十)
下一篇:使用 C# 开发智能手机软件:推箱子(十二)
返回目录

相关文章:

  • 2021-09-06
  • 2021-11-07
  • 2021-09-06
  • 2021-06-28
  • 2021-06-20
猜你喜欢
  • 2022-02-19
  • 2022-01-12
  • 2021-12-24
  • 2021-07-16
  • 2021-10-22
  • 2021-08-29
  • 2021-06-16
相关资源
相似解决方案