JAVA实现拼图游戏

效果图如下:

源码如下:

package org.test;/*** 

Title: LoonFramework

*

Description:拼图图像处理[未优化]

*

Copyright: Copyright (c) 2007

*

Company: LoonFramework

* @author chenpeng  * @email:ceponline@yahoo.com.cn* @version 0.1*/import java.awt.Canvas;import java.awt.Color;import java.awt.Event;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.MediaTracker;import java.awt.image.BufferedImage;import org.loon.framework.game.helper.ImageHelper;public class BlockImage extends Canvas {    /**     *     */    private static final long serialVersionUID = 1L;    private Image _img;    private Image _img2;    private Graphics bg;    private Image backimage;    private int blocks[];    private boolean isEvent;    private MediaTracker mt;    private int _width;    private int _height;    private int _RS;    private int _CS;    private Image screen = null;    private Graphics later = null;    private int _objWidth;    private int _objHeight;    private int _COUNT;    /**     * 析构函数,内部调用init方法。     *     * @param bImage     * @param overImage     * @param cs     * @param rs     */    public BlockImage(Image bImage, Image overImage, int cs, int rs) {        init(bImage, overImage, cs, rs);    }    /**     * 初始化拼图参数。     *     * @param bImage     * @param overImage     * @param cs     * @param rs     */    public void init(Image bImage, Image overImage, int cs, int rs) {        // 列数        _CS = cs;        // 行数        _RS = rs;        // 加载拼图用图像。        _img = bImage;        // 获得实际窗体宽。        _width = _img.getWidth(null);        // 获得实际窗体高。        _height = _img.getHeight(null);        // 获得单块图像宽。        _objWidth = _width / _CS;        // 获得单块图像高。        _objHeight = _height / _RS;        // 本程序直接使用backimage上一块图形区域缓冲选择项,所以实际背景图像高=图形高+额外图块高。        backimage = new BufferedImage(_width, _height + _objHeight, 1);        // 获得生成的图形        later = backimage.getGraphics();        // 再创建一块图像区域,作为图像缓存用。        screen = new BufferedImage(_width, _height, 1);        // 获得缓存的图形        bg = screen.getGraphics();        // 获得等同图片总数的数组。        _COUNT = _CS * _RS;        blocks = new int[_COUNT];        // 初始化为非点击。        isEvent = false;        // 加载完成拼图的显示图。        _img2 = overImage;        // 初始化图块参数。        for (int i = 0; i < _COUNT; i++) {            blocks[i] = i;        }        // 载入MediaTracker,用以跟踪图像状态。        mt = new MediaTracker(this);        // 加载被跟踪的图像。        mt.addImage(_img, 0);        mt.addImage(_img2, 0);        // 同步载入。        try {            mt.waitForID(0);        } catch (InterruptedException interruptedexception) {            return;        }        // 随机生成图像面板内容。        rndPannel();    }    /**     * 描绘窗体图像。     */    public void paint(Graphics g) {        // 检查图像载入。        if (mt.checkID(0)) {            // 描绘底层背景。            bg.drawImage(backimage, 0, 0, null);            // 判断是否触发完成事件。            if (!isEvent) {                // 设置背景色。                bg.setColor(Color.black);                // 循环绘制小图片于背景缓存中。                for (int i = 0; i < _CS; i++) {                    for (int j = 0; j < _RS; 我们一直在旅行,一直在等待某个人可以成为我们旅途的伴侣,

JAVA实现拼图游戏

相关文章:

你感兴趣的文章:

标签云: