JAVA版连连看界面对象创建算法研究

2012-11-12

    在介绍游戏界面对象如何创建之前,首行得介绍一个我抽象的这个对象的类结构和实现情况:
    /*
    * 抽象连连看当中的
    * 所要连的对象
    * */
    import java.awt.*;
    public class ImageShow
    {
    private static Toolkit tk=Toolkit.getDefaultToolkit(); //工具对象
    private Image image; //连连对象上的显示的图像对象
    public int x; //坐标X的位置
    public int y; //坐标Y的位置
    public int imagecount; //图像编制的序列引用
    public boolean bmobang=false;
    /*
    * 构造一个连连对象
    * */
    public ImageShow(int x,int y,int imagecount)
    {
    this.x=x;
    this.y=y;
    this.imagecount=imagecount;
    image=tk.getImage(ImageShow.class.getClassLoader()。getResource("image//"+imagecount+".gif"));
    }
    /*
    * 用于在屏幕上画出此对象
    * */
    public void draw(Graphics g)
    {
    g.drawImage(image,x,y, 50, 50,null);
    g.draw3DRect(x, y, 50, 50, true);
    }
    }
    这个对象的类结构和实现看起来是很简单,但是这个类在整个游戏当中是非常重要的,几乎可以说整个游戏是围绕着这个对象在展开的。
    下面来看对象的创建方式:
    本连连看游戏,没有固定的对象排列方式,每一次游戏开始都是随机产生的,此随机产生,也不会影响到游戏的可玩性的。
    算法和实现方法如下:
    本游戏总共有30种不同的图片可供随机产生,但是第一关只能是从前十张图片当中抽取,游戏总共有十关,然后的每一关都是以两张图片在递增,从而实现了每一关图片种数在增加。
    本游戏创建游戏对象的对数方法,每一关都是创建以20对对象为基础,然后再加上关数乘以3,从而实现了每一关上的对象对数都不同。
    说到底,要想对象随机的出现在屏幕上,而且没有重叠对象的情况,所有出现的对象则完全是可以被连的,也就是说不可能出现倚数的情况,不可能出现最后没有成对匹配的情况,是一个相当复杂的工作,还要为后面的连连看算法设计出应用的需要。
    我采用的方式是将屏幕划分成一个矩正的形式,第一个对象正好占住一个矩正当中的位置,也就很好的定位好了对象,设计矩正之前首先确定好游戏对象的大小,
    我将对象的大小设置成宽50,高50的正方形体,那么就可以将游戏屏幕划分成以宽为50,高为50的矩正排列形式,从起始位置开始,将每一个矩正的x,y信息保存在一个集合当中,为创建对象使用,当随机创建一个对象,也必须从矩正集合当中选取一个矩正X,Y轴信息,作为此创建对象的X,Y轴的属性,然后就将此矩正的信息从矩正集合当中删除掉,那么创建下一个对象时就不会有重叠的现象。
    代码实现如下:
    创建矩正信息:
    /*
    * 创建游戏场景X,Y轴的矩正序列
    * */
    public void addItxy()
    {
    for(int i=100;i<=500; i+=50 )
    {
    for(int n=0;n<=750;n+=50)
    {
    itx.add(n);
    ity.add(i);
    }
    }
    }

    编辑推荐:

    功能大PK系列之预定义参数控

    怎样用Jvm处理Java数组

    Java数组之初始化及实例代码

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com