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

时间:2026-01-20

指定骰子移动到指定玩家的机场中。

Private Sub PutDice2Map(Player_now As Long) '将骰子移动到指定玩家的机场

Dim StPS As TP_XY, EdPS As TP_XY

MovDice.Enabled = False '此时禁止玩家掷骰子

GetDice_XY (Player_now) '得到骰子需要到达的那一点的坐标

StPS.X = Image3.Left '得到当前骰子的坐标

StPS.Y = Image3.Top

EdPS.Y = Image1.Top + Image1.Height / 17 * GetDice_XY(Player_now).Y '计算每次 移动所需的偏移量

EdPS.X = Image1.Left + Image1.Width / 17 * GetDice_XY(Player_now).X MovDice.Enabled = True '动画开始

SetMovie 0, StPS, EdPS, 50 '设置实现图片移动动画所需的参数

End Sub

5 GetDice_XY()查询骰子在各玩家机场上的坐标

根据不同的玩家编号返回对应的坐标,以确定骰子在棋盘上的位置

6 SetMovie()设置实现图片移动动画所需的参数 设置实现图片移动动画所需的参数 计算并设置实现图片移动动画所需的偏量。

Private Sub SetMovie(Img_Idx As Long, Start_Pos As TP_XY, End_Pos As TP_XY, ImgStep As Long)

'设置实现图片移动动画所需的参数

MovieStat.PlanImgIdx = Img_Idx 'img 索引号,仅供移动飞机用

MovieStat.Ylimt = (End_Pos.Y - Start_Pos.Y) / ImgStep 'Y方向位移偏移量 MovieStat.Finish = False '动画完成设记 End Sub

MovieStat.Xlimt = (End_Pos.X - Start_Pos.X) / ImgStep 'X 方向位移偏移量

7 MovDice_Timer()骰子移动效果的实现

实现骰子的移动效果和实现骰子的连掷动画一样也需要Timer控件的帮助,通过timer

控件不断的改变骰子图片的位置,就产生了骰子移动的效果。经过试验,以20毫秒的频率

不断修改骰子坐标,效果还可行。

8 Image3_Click()对玩家抛骰子操作的响应过程

这个模块在接到玩家点击骰子动作后,产生一个抛骰子动画,并显示一个1~6的整

数来模拟现实中的骰子,并且在后台统计相关信息。

9 Unable_Dice()与Enable_Dice()骰子的锁定与要锁过程

通常在游戏中在抛骰子的时候是不能移动棋子的,反之也一样,下面两个程序就是模拟这个约束条件。

(四)、玩家的控制与切换

在实现玩家控制与切换时,稍微麻烦一点的就是 如何判断下一位玩家是谁?同时 把骰子放到那个玩家的机场中,剩余的就是 对玩家的棋子进行锁定与要锁。

1 Unable_Player()与Enable_Player()玩家棋子的锁定与要锁过程 2 To_NextPlayer()玩家控制控的转移

飞行棋游戏的设计与实现(6).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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