飞行棋游戏的设计与实现(4)

时间:2026-01-20

如果对方是两个棋子重叠则该棋子不能穿越虚线、继续绕行。

终点

“终点”就是游戏棋子的目的地。当玩家有棋子到达本格时候,表示到达终点,不能再控 制该棋子。传统飞行棋规则里,玩家要刚好走到终点处才能算“到达”,如果玩家扔出的骰子 点数无法刚好走到终点出,多出来的点数,棋子将往回走。

二、 游戏的实现

整个游戏界面在一个 Form窗口中实现。控制部分由事件响应组模块组、游戏规则

判断和计算模块组、坐标计算与转换模块组三部分构成。

(一)、棋盘和界面的设计与说明

游戏界面主要由一个基本的游戏控制 菜单和18个 Image对象组成。 飞行棋棋

盘用作图软件绘制,存为Jpg格式后加载到

对象中。 该棋盘由 机场、战场、返航线、 飞行线组成,其中机场分布在棋盘的四个 角落。 战场围绕棋盘一圈,允许每一个玩 家的棋子在条件满足时进入,并在其中战 斗直到被击落或者退出战场进入返航线为 止。 返航线是玩家棋子安全退出战场获得 胜利的唯一渠道,只有抵达返航线的终点 才能判定玩家棋子任务结束。

游戏控制菜单,包括开始游戏和退出游戏两个选项。 用16个Image2对象组成的1维

数组,作为红、黄、青及绿色的棋子,每种颜色四颗。 Image3 对象 作为骰子用来模拟

掷骰子时的动作。其他几个label对象用来显示游戏中玩家的状态信息。 Text2对象用来显

示游戏的操作记录。

(二)、 游戏数据的定义与初始化

在游戏正式开始以前必须要清理掉没用的和错误的数据,为后面的正常运行准备一 个“干净”的环境,这样程序的正确运行也为调试带来方便。 1 全局变量GmData

首先我们要设置一个实现该游戏必需的一些通讯数据

Private GmData As Mtp_Game_Common, MovieStat As Movie_stat

其中 GmData 存储着游戏的主要状态信息,存储着包括棋盘坐标和棋子信息在内的各种关键数据,

整个程序就是为了正确的操作这个数据集而作。

当游戏开始时,用一个专门的子程序 Int_GameData()对它进行初始化, MovieStat 用来存储实现一些简单动画所需的临时信息。

2 Int_GameData()专用的初始化程序 本模块用来对GmData进行初始化操作。

Private Sub Int_GameData() '游戏数据初始化

Dim Player As Long, Plan As Long

Randomize Timer() '初始化随机数生成器

GmData.PlayNow = 0 '当前玩家为 0 号(红色)

GmData.Num_Round = 52 '属于战场的总格数

GmData.Try_Landing = 49 '连接战场和返航线的拐点索引号

For Player = 0 To 3 '*初始化玩家数据 GmData.Player(Player).Start = Player * 13 '起始坐标

GmData.Player(Player).CntRound = 0 '连掷次数统计

GmData.Player(Player).CntKilled = 0 '杀敌次数统计 GmData.Player(Player).CntDown = 0 '被杀次数统计 For Plan = 0 To 3 '初始化棋子 GmData.Plan(Player, Plan).Stat = Complete '完成任务

GmData.Plan(Player, Plan).Idx_Abs = -1 '棋子绝对坐标 -1 SetRlat_Idx Player, Plan '棋子相对坐标 Next Next

GmData.Player(Player).CntPoint = 0 '骰子点数统计

GetMapXYFromFile '从文件中读取属于战场的棋盘坐标 End Sub

3 GetMapXYFromFile()从文件中读取属于战场的棋盘坐标

基本思路:利用 Fos对象打开文件并读取文件的内容,将它存入到全局变量GmData下。

Private Sub GetMapXYFromFile() '从文件中读取属于战场的棋盘坐标数据

Const ForReading = 1, ForWriting = 2 '定义读和写操作的常量

Dim fso, MyFile '利用 FSO 对象进行文件读去操作

Dim Idx As Integer '一个临时变量,用来遍历战场的棋盘索引。 Set fso = CreateObject("Scripting.FileSystemObject")

Set MyFile = fso.OpenTextFile(".\RingXY.txt", ForReading) '打开文件

For Idx = 0 To 51 '遍历属于战场的索引,并读取所需的棋盘坐标。

GmData.Ring_Pos(Idx).Y = MyFile.ReadLine Next

GmData.Ring_Pos(Idx).X = MyFile.ReadLine

MyFile.Close '关闭刚打开的文件

Set MyFile = Nothing '将对象注销

Set fso = Nothing End Sub

…… 此处隐藏:184字,全部文档内容请下载后查看。喜欢就下载吧 ……
飞行棋游戏的设计与实现(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219