flex 联机游戏开发 - 四国军棋游戏:(二)棋盘棋子
2010年12月24日
玩了太多年的四国游戏,现在,我打算做个四国游戏的flex版,下面的文章与代码是边做边写的,所以,当我贴出来的时候,说不定我已经将代码进行重构了,但是,如果你也是一名开发者,我想,设计思路总是对你有参考意义的。
想知道我爱四国的多深,看看引子里的那个文章就知道了。你也可以点击这儿查看这些文章的全部。中途岛之战 深圳mm.活着viva&&冷血雅雅 。
老规矩,先画棋盘,一般的军棋游戏棋盘都利用的图片做背景,然后判断鼠标的点击来定位棋子,现在,我决定不用图片,直接用flex绘制棋盘,源于两个方面的原因,一是adobe是做美术出身的,所以,用flex绘制的棋盘基本上在ui上比java,c#绘制的要好看得多,同时,你可以很方便地对棋盘,棋子使用各种滤镜效果。二是绘制出来的棋盘,本身会减小相当多的开发工作,因为你点击的如果是棋子,他本身就可以实现事件触发。将细节处理放到了元部件中。
一,单人棋盘 Layout
public function createBoard():void
{
for (var row:int = 0; row
//默认的棋盘填充,
for (var x:int=0;x游戏中还有另外一种状态,那就是棋子是覆盖着的,不可见的。我们也得把这个加上。
二 四人棋盘 Board
现在,每个人的棋盘已经画好,我们现在需要四个棋盘+一个中间部分来完成整个棋盘的初始化工作,flex对效果的支持现在开始发威,我们只要把这个棋盘放上四份,一份为原始,一份旋转90,一份旋转-90,一份旋转180度,就可以完成4个棋盘的工作,
下面的工作就是画中间那个部分了。
protected function init(event:FlexEvent):void
{
// TODO Auto-generated method stub
// TODO Auto-generated method stub
//y 轴的线条
BOARD_IMG.source=BoardChess;
BOARD_IMG.fillMode = BitmapFillMode.REPEAT;
for (var i:int=0;i
三,最终布局
最后,我们将用户的信息传入棋盘,并加入一些控制键,最终形成的棋盘应该如下
2010年12月24日
玩了太多年的四国游戏,现在,我打算做个四国游戏的flex版,下面的文章与代码是边做边写的,所以,当我贴出来的时候,说不定我已经将代码进行重构了,但是,如果你也是一名开发者,我想,设计思路总是对你有参考意义的。
想知道我爱四国的多深,看看引子里的那个文章就知道了。你也可以点击这儿查看这些文章的全部。中途岛之战 深圳mm.活着viva&&冷血雅雅 。
老规矩,先画棋盘,一般的军棋游戏棋盘都利用的图片做背景,然后判断鼠标的点击来定位棋子,现在,我决定不用图片,直接用flex绘制棋盘,源于两个方面的原因,一是adobe是做美术出身的,所以,用flex绘制的棋盘基本上在ui上比java,c#绘制的要好看得多,同时,你可以很方便地对棋盘,棋子使用各种滤镜效果。二是绘制出来的棋盘,本身会减小相当多的开发工作,因为你点击的如果是棋子,他本身就可以实现事件触发。将细节处理放到了元部件中。
一,单人棋盘 Layout
public function createBoard():void
{
for (var row:int = 0; row
//默认的棋盘填充,
for (var x:int=0;x游戏中还有另外一种状态,那就是棋子是覆盖着的,不可见的。我们也得把这个加上。
二 四人棋盘 Board
现在,每个人的棋盘已经画好,我们现在需要四个棋盘+一个中间部分来完成整个棋盘的初始化工作,flex对效果的支持现在开始发威,我们只要把这个棋盘放上四份,一份为原始,一份旋转90,一份旋转-90,一份旋转180度,就可以完成4个棋盘的工作,
下面的工作就是画中间那个部分了。
protected function init(event:FlexEvent):void
{
// TODO Auto-generated method stub
// TODO Auto-generated method stub
//y 轴的线条
BOARD_IMG.source=BoardChess;
BOARD_IMG.fillMode = BitmapFillMode.REPEAT;
for (var i:int=0;i
三,最终布局
最后,我们将用户的信息传入棋盘,并加入一些控制键,最终形成的棋盘应该如下