创建Grid类来表示棋子android游戏开发

  次阅读 来源:互联网(转载协议) 2016-01-19 12:03 我要评论(0)

棋子是构成棋盘的基矗从面向对象编程的角度分析,每个棋子的使用方法完全相同,都支持翻转变色,每个棋子有自己的状态,不同的状态决定了其颜色。换句话 说,棋子这个对象包含了一个处理翻转行为的方法和一个存放自身状态的属性。

像往常一样编写ActionScript代码

打开FlashDevelop(FD),创建项目FlipIt,FD会自动创建主程序Main类。不要急于编写主程序,为了让程序的结构更合理,可 以先将其中某些功能分离出来,增强代码的灵活性。在这个游戏中,可以独立出来的一个对象就是棋子。

创建棋子类Grid

棋子是构成棋盘的基矗从面向对象编程的角度分析,每个棋子的使用方法完全相同,都支持翻转变色,每个棋子有自己的状态,不同的状态决定了其颜色。 换句话说,棋子这个对象包含了一个处理翻转行为的方法和一个存放自身状态的属性。

根据上面的分析创建Grid类来表示棋子,如代码清单2-1所示。

代码清单2-1棋子Grid类

package

{

import flash.display.Graphics;

import flash.display.Sprite;

public class Grid extends Sprite

{

//棋子的值

private var _value:Boolean;

//圆的半径

private var _radius:int;

//id,即棋子在地图上的位置,用来寻找周围的棋子

public var id:int;

public function Grid( value:Boolean = false, radius:int = 30)

{

_value = value;

_radius = radius;

//获取初始值后,画圆

draw();

}

//翻转棋子

public function doFlip():void

{

//改变值,并重新绘制圆

_value = !_value;

draw();

}

//判断棋子是不是白色状态

public function isWhite():Boolean

{

return _value == true;

}

//每次状态变化时,都调用draw进行重绘

private function draw():void

{

var g:Graphics = graphics;

g.clear();

//如果当前值为true,则用白色作为填充色

if ( isWhite() )

{

g.beginFill(0xFFFFFF);

}

else

{

g.beginFill(0x333333);

}

//画圆,并保证Sprite的注册点在原点

g.drawCircle(_radius, _radius, _radius);

g.endFill();

}

}

}

Grid类中没有使用图片素材,只是动态绘制了一个圆来代表棋子。初次创建或调用doFlip方法后,若棋子的值发生变化,都会调用draw方法重 新绘制圆,并改变填充色。属性id很重要,记录了棋子本身在棋盘上的编号,后面我们将通过id值来寻找它四周的棋子。

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...