用Flash AS3实现经典的黑白棋游戏基本功能
用Flash AS3 实现经典的黑白棋游戏基本功能
1 、 引言
黑白棋, 又叫反棋 (Reversi) 、 奥赛罗棋 (Othello) 、 苹果棋、 翻转棋。 黑白棋在西方和日本很
流行。 黑白棋的棋盘是一个有 8*8 方格的棋盘。 开始时在棋盘正中有两白两黑 4 个棋子交叉
放置, 黑棋总是先下子。 游戏通过相互翻转对方的棋子(当自己放下的棋子在横 、 竖 、 斜 8
个方向 扔幸桓鲎约旱钠遄樱 则被夹在中间的全部翻转会成为自己的棋子), 如果玩家在� �
棋盘上没有地方可以下子, 则该玩家对手可以连下。 最后以棋盘上谁的棋子多来判断胜负。
本文使用 Flash AS3 开发黑白棋游戏程序。 该游戏具有显示执棋方可以落棋子的位置提示功能
“ ” 和判断胜负功能。 在游戏过程中, 点击 帮助 按钮则显示执棋方可落子位置 (图片 表示可
落子位置)。 游戏运行界面如图 1 所示。
2 、 黑白棋游戏设计思路
2.1 棋子和棋盘
游戏开发时, 需要事先准备黑白两色棋子 (如图 2 所示)和棋盘图片, 这里设计棋子影片剪
辑使用图 2 中4 张图, 黑白两色棋子各一帧, 图片 (表示可落子位置) 第 3 帧, 游戏背景方
格是第 4 帧。 游戏最初显示时, 棋盘上布满所有 64 个棋子影片剪辑 (播放到第 4 帧), 游
戏过程中根据需要每个棋子影片剪辑播放不同帧。 棋盘在设计时直接放在 Fla 文件的舞台上。
这里为了便于处理, 采用一个 qizi 二维数组用来存储棋盘上棋子状态, 一个 qipan 一维数组用
来存储棋子影片。
2.2 翻转对方的棋子
需要从自己落子 (x1 ,y1) 为中心的横、 竖、 斜 8 个方向上判断是否需要翻转对方的棋子, 程
序中由棋子影片剪辑 qi 的MouseEvent.CLICK 事件实现的。 在 MouseEvent.CLICK 事件中参数
event 对象含有被单击对象信息。 event.target 可以获取被单击棋子影片剪辑对象 thisQi。
剪辑对象 thisQi 位置像素信息 (thisQi.x ,thisQi.y ) 转换成棋盘坐标 (x1 ,y1) 。 从左, 左
上、 上、 右上、 右、 右下、 下、左下 8 个方向上调用过程 DirectReverse (x1, y1, dx, dy) 翻转
对方的棋子。 而具体棋子的翻转由 FanQi (x, y) 实现。 FanQi (x,y) 修改数组 qizi 的(x, y) 处保
存棋盘上的棋子信息, 同时播放到指定帧。
private function FanQi(x, y:int):void {
if (qizi[x][y] == BLACK) {
qizi[x][y] = WHITE;
qipan[8 * x + y].gotoAndStop(WHITE);
// 显示 WHITE 棋子图形
} else {
qizi[x][y] = BLACK;
qipan[8 * x + y].gotoAndStop(BLACK);
// 显示 BLACK 棋子图形
}
2.3 显示执棋方可落子位置
Can_go ( x1 ,y1) 从左、左上、上、右上、右、右下、下、左下8 个方向上调用函数
CheckDirect (x1, y1, dx, dy) 判断某方向上是否形成夹击之势, 如果形成且中间无空子则返回
True , 表示 (x1 ,y1) 可以落子。 (x1 ,y1) 处可以落子则用图片显示。
2.4 判断胜负功能
qizi 二维数组保存棋盘上的棋子信息 , 其中元素保存 1 ,表示此处为黑子; 元素保存 2 , 表示
此处为白子; 元素保存 0 ,表示此处为无棋子。 通过对 qizi 数组中各方棋子数统计, 在棋盘
无处可下时, 根据各方棋子数判断出输赢。
3 、 设计步骤
3.1 创建 Flash 文件
打开 Flash CS6 “ ” → “ ” “ ” 软件后, 选择 文件 新建 选项,系统将弹出 新建文档 窗口, 在窗口
“中选择 ActionScript3.0” 选项。
3.1.1 设置文档属性
“ ” “ ” “ ” 选择菜单 修改 , 再选择 文档 选项, 调出 文档属性 对话框。 设置场景的尺寸为
720*780 “ ” 像素, 背景颜色为浅绿色, 然后单击 确定 按钮。 在属性面板设置文档类为Main。
3.1.2 设计棋子影片剪辑元件
“ ” → “ ” “ ” “选择菜单 插入 新建元件 。 在新弹出的 新建元件 窗口中, 将元件名称设置为 棋
” “ ” “ ” 子 , 将元件类型设置为 影片剪辑 , 单击 确定 按钮后 , Flash “ ” 界面将转变为 棋子 元件
的编辑区。导入图2 所示 4 幅图, 注意每幅图大小 80*80。
3.2 设计游戏文档类(Main.as)
“ ” → “ ” “ ” “选择 文件 新建 选项, 系统将弹出 新建文档 窗口。 在窗口中选择 ActionScript ” 文件
选项。 这样在Flash 中新建一个 ActionScript 类文件, 将其命名为Main.as 。导入包及相关
类:
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.Timer;
类成员变量定义:
public class Main extends MovieClip {
//常量
private static const BLACK:int = 1;
private static const WHITE:int = 2;
private static const KONG:int = 0;
private var qizi:Array =new Array();//构造一个二维
//数组用来存储棋子状态
private var qipan:Array =new Array();//构造一个一
//维数组用来存储棋子影片
private var curQizi :int = BLACK;// 当前走棋方
var hitTimer:Timer=new Timer(1000);//计时器,定时
//清除提示图形
构造函数对保存棋盘上的棋子信息的 qizi 数组初始化, 实例化所有棋子影片对象。 同时在棋
盘上显示初始的 4 个棋子。
public function Main():void {
//构造函数
var i,j:int;
for (i=0; i<8; i++) {
qizi[i]=new Array();
for (j=0; j<8; j++) {
qizi[i][j]=KONG;
var qi:Qi=new Qi();//棋子实例
qi.y=80*j+42;//确定位置
qi.x=80*i+42;
qi.gotoAndStop(4);//显示棋子图形
qipan.push(qi);
qi.addEventListener(MouseEvent.CLICK,clickQi);
addChild(qi);//加到显示列表
}
}
// 棋盘上初始 4 个棋子
qizi[3][3] = WHITE;
qipan[8 * 3 + 3].gotoAndStop(2);//显示白色棋子图形
qizi[4][4] = WHITE;
qipan[8 * 4 + 4].gotoAndStop(2);//显示白色棋子图形
qizi[3][4] = BLACK;
qipan[8 * 3 + 4].gotoAndStop(1);//显示黑色棋子图形
qizi[4][3] = BLACK;
qipan[8 * 4 + 3].gotoAndStop(1);//显示黑色棋子图形
help_btn.addEventListener (MouseEvent.
CLICK,clickHelp);
message_txt.text="该黑棋走子";
}
“ ” 构造函数同时对所有的棋子影片对象和 帮助 按钮添加鼠标单击事件的侦听。 如果是
help_btn 按钮被单击, 则执行 clickHelp 函数显示可以落子的位置提示。
public function clickHelp(event:MouseEvent) {
showCanPosition();//显示可以落子的位置
}
摘要:
展开>>
收起<<
用FlashAS3实现经典的黑白棋游戏基本功能1、引言黑白棋,又叫反棋(Reversi)、奥赛罗棋(Othello)、苹果棋、翻转棋。黑白棋在西方和日本很流行。黑白棋的棋盘是一个有8*8方格的棋盘。开始时在棋盘正中有两白两黑4个棋子交叉放置,黑棋总是先下子。游戏通过相互翻转对方的棋子(当自己放下的棋子在横、竖、斜8个方向扔幸桓鲎约旱钠遄樱则被夹在中间的全部翻转会成为自己的棋子),如果玩家在��棋盘上没有地方可以下子,则该玩家对手可以连下。最后以棋盘上谁的棋子多来判断胜负。本文使用FlashAS3开发黑白棋游戏程序。该游戏具有显示执棋方可以落棋子的位置提示功能“”和判断胜负功能。在游戏过程中,点...
相关推荐
-
自动变速器--中英文翻译
2022-10-23 348 -
一个简化双螺杆旋转食品挤压机:设计,制造和检验外文文献翻译、中英文翻译
2023-02-13 195 -
液压系统设计外文文献翻译、中英文翻译
2023-02-13 367 -
莴苣收割机原型的研制外文文献翻译、中英文翻译、外文翻译
2023-02-13 321 -
动力转向系统参数对汽车操纵稳定性影响的研究外文文献翻译、中英文翻译
2023-02-13 111 -
3-外文翻译-汽车天窗系统的设计改进和生产线的产线优化
2023-02-15 290 -
3-外文翻译-汽车起重机的举升机构
2023-02-15 243 -
模具的发展--中英文翻译
2023-08-11 262 -
中海气候下的
2023-10-04 100 -
在迅速的统一体模式中交通信号灯对交通流的控制
2023-10-04 111
作者:闻远设计
分类:其它行业资料
价格:免费
属性:8 页
大小:97.81KB
格式:DOCX
时间:2024-03-16

