packageorg.test;

/***

Title: LoonFramework

*

Description:拼图图像处理[未优化](优化算法已内置于loonframework-game框架中。)

*

Copyright: Copyright (c) 2007

*

Company: LoonFramework

*@authorchenpeng

* @email:ceponline@yahoo.com.cn

*@version0.1*/importjava.awt.Canvas;importjava.awt.Color;importjava.awt.Event;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.MediaTracker;importjava.awt.image.BufferedImage;importorg.loon.framework.game.helper.ImageHelper;publicclassBlockImageextendsCanvas {/****/privatestaticfinallongserialVersionUID=1L;privateImage _img;privateImage _img2;privateGraphics bg;privateImage backimage;privateintblocks[];privatebooleanisEvent;privateMediaTracker mt;privateint_width;privateint_height;privateint_RS;privateint_CS;privateImage screen=null;privateGraphics later=null;privateint_objWidth;privateint_objHeight;privateint_COUNT;/*** 析构函数,内部调用init方法。

*

*@parambImage

*@paramoverImage

*@paramcs

*@paramrs*/publicBlockImage(Image bImage, Image overImage,intcs,intrs) {

init(bImage, overImage, cs, rs);

}/*** 初始化拼图参数。

*

*@parambImage

*@paramoverImage

*@paramcs

*@paramrs*/publicvoidinit(Image bImage, Image overImage,intcs,intrs) {//列数_CS=cs;//行数_RS=rs;//加载拼图用图像。_img=bImage;//获得实际窗体宽。_width=_img.getWidth(null);//获得实际窗体高。_height=_img.getHeight(null);//获得单块图像宽。_objWidth=_width/_CS;//获得单块图像高。_objHeight=_height/_RS;//本程序直接使用backimage上一块图形区域缓冲选择项,所以实际背景图像高=图形高+额外图块高。backimage=newBufferedImage(_width, _height+_objHeight,1);//获得生成的图形later=backimage.getGraphics();//再创建一块图像区域,作为图像缓存用。screen=newBufferedImage(_width, _height,1);//获得缓存的图形bg=screen.getGraphics();//获得等同图片总数的数组。_COUNT=_CS*_RS;

blocks=newint[_COUNT];//初始化为非点击。isEvent=false;//加载完成拼图的显示图。_img2=overImage;//初始化图块参数。for(inti=0; i<_count>

blocks[i]=i;

}//载入MediaTracker,用以跟踪图像状态。mt=newMediaTracker(this);//加载被跟踪的图像。mt.addImage(_img,0);

mt.addImage(_img2,0);//同步载入。try{

mt.waitForID(0);

}catch(InterruptedException interruptedexception) {return;

}//随机生成图像面板内容。rndPannel();

}/*** 描绘窗体图像。*/publicvoidpaint(Graphics g) {//检查图像载入。if(mt.checkID(0)) {//描绘底层背景。bg.drawImage(backimage,0,0,null);//判断是否触发完成事件。if(!isEvent) {//设置背景色。bg.setColor(Color.black);//循环绘制小图片于背景缓存中。for(inti=0; i<_cs>

bg.drawRect(i*_objWidth, j*_objHeight, _objWidth,

_objHeight);

}

}//仅当完成事件触发并且有胜利图片时,载入完成提示。if(isEvent&&_img2!=null) {

bg.drawImage(_img2,0,0,null);

}

}//举凡绘制图像时,应遵循显示图像仅绘制一次的基本原则,一次性的将背景绘制到窗体。//简单来说,也就是采取[双缓存]的方式,所有复杂操作皆在缓存区完成,也只有这样才能避免产生延迟闪烁。g.drawImage(screen,0,0,this);

g.dispose();

}/*** 变更图像。*/publicvoidupdate(Graphics g) {

paint(g);

}/*** 鼠标点击事件。*/publicbooleanmouseDown(Event event,inti,intj) {if(isEvent)returntrue;//换算点击位置与小图片。intk=i/_objWidth;intl=j/_objHeight;

copy(0,0,0, _RS);

copy(k, l,0,0);

copy(0, _RS, k, l);inti1=blocks[0];//换算选中图片存储区。blocks[0]=blocks[l*_CS+k];

blocks[l*_CS+k]=i1;intj1;for(j1=0; j1<_count>

}

}if(j1==_COUNT)

isEvent=true;

repaint();returntrue;

}publicbooleanmouseUp(Event event,inti,intj) {returntrue;

}publicbooleanmouseDrag(Event event,inti,intj) {returntrue;

}/*** copy换算后的图像区域。

*

*@parami

*@paramj

*@paramk

*@paraml*/voidcopy(inti,intj,intk,intl) {

later.copyArea(i*_objWidth, j*_objHeight, _objWidth, _objHeight,

(k-i)*_objWidth, (l-j)*_objHeight);

}/*** 事件触发状态。

*@return*/publicbooleanisEvent() {returnisEvent;

}publicvoidsetEvent(booleanisEvent) {this.isEvent=isEvent;

}/*** 随机生成面板图片。

**/voidrndPannel() {

later.drawImage(_img,0,0,this);for(inti=0; i

copy(j, k,0, _RS);

copy(l, i1, j, k);

copy(0, _RS, l, i1);intj1=blocks[k*_CS+j];

blocks[k*_CS+j]=blocks[i1*_CS+l];

blocks[i1*_CS+l]=j1;

}

}publicstaticvoidmain(String[] args) {

Frame frm=newFrame("简单的JAVA拼图效果实现[由Loonframework框架提供]");

frm.setSize(480,500);

frm.setResizable(false);/*** PS:ImageHelper.loadImage为Loonframework框架中helper下方法,为不依赖于javax扩展包而开发。

* 可使用ImageIO相关方法代替。*///加载图像。Image backImage=ImageHelper.loadImage("C:/backimage.jpg",true);

Image overImage=ImageHelper.loadImage("C:/over.gif",true);//BlockImage中参数分别为 用于分解的拼图,完成后显示文字,拆分图片为分几列,分拆分图片为几行。//建议使用正方形图片作为背景图。frm.add(newBlockImage(backImage, overImage,4,4));

backImage=null;

overImage=null;//显示窗体。frm.setVisible(true);

}

}

人物拼图java_JAVA实现拼图游戏相关推荐

  1. 拼图java_java实现拼图小游戏

    一个简单的拼图小游戏,供大家参考,具体内容如下 1.首先设计视图面板. 2.添加所需要的图片按钮. 3.最主要的是设计监听事件,添加图片的监听按钮,设定移动空白图片周围的按钮. 4.判断是否成功 . ...

  2. c语言实现七巧板积木拼图大全,七巧板拼图积木的制作方法

    本实用新型属于玩具领域,尤其涉及一种七巧板拼图积木玩具. 背景技术: 儿童的成长离不开玩具的陪伴,现在的家长们也会经常给自己的小孩购买各式各样的玩具,目前市面上玩具种类很多,积木玩具数量最大,积木拼图 ...

  3. 怎么一键拼图?快速拼图这样做

      大家在节假日的时候,会选择出门游玩放松吗?我经常会约上三两好友出门踏青,然后拍好多美美的人像照.风景照,发布到社交平台上.可能有些小伙伴会注意到,有一些平台会限制图片发布数量,不过不用担心,我们可 ...

  4. 照片拼图用这些拼图模板,让你拼出不一样的拼图照片

    照片拼在一起是一种将多张照片合成一张的方法.但是仅仅把照片拼在一起是不够的,因为这样的照片可能会显得杂乱无章,缺乏美感.这时候,拼图模板就起到了很大的作用.使用拼图模板可以使合成的照片更具有艺术感和美 ...

  5. 拼图游戏 java_Java实现拼图游戏

    Java实现拼图游戏以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 偶尔帮同学作一个拼图游戏 要求多加注释 实现后加了这 ...

  6. android 拼图课程设计,拼图游戏设计_课程设计报告.docx

    Il Il Il Il 学号 1608220203 2016-2017学年 第一学期 <Windows程序设计> 课程设计报告 题目:拼图游戏设计 专业: 班级: 姓名: 指导教师: 成绩 ...

  7. 《我拼图贼6》游戏反馈栏

    一. 游戏描述 <我拼图贼6>我拼图贼6是一款简单的休闲游戏,玩家完成每一关的拼图,即可通关. 二.游戏截图

  8. java实现智能拼图,JAVA实现拼图游戏

    JAVA实现拼图游戏 /** * Title: LoonFramework * Description:拼图图像处理[未优化](优化算法已内置于loonframework-game框架中.) * Co ...

  9. java实现智能拼图_java实现拼图小游戏

    一个简单的拼图小游戏,供大家参考,具体内容如下 1.首先设计视图面板. 2.添加所需要的图片按钮. 3.最主要的是设计监听事件,添加图片的监听按钮,设定移动空白图片周围的按钮. 4.判断是否成功 . ...

  10. 利用python制作拼图_python制作拼图小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 游戏简介: ...

最新文章

  1. java 龟兔赛跑预测_[Java] 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测
  2. 2021牛客寒假算法基础集训营2,签到题FHIJ
  3. java中连接字符串_Java中几种方式连接字符串的方法
  4. 独家首发多功能实用工具箱微信小程序源码下载支持外卖卷和多种流量主
  5. spring集成flyway
  6. 雷声大雨点小:Bakkt「见光死」了吗?
  7. 云计算厂商怎么打造自己的生态网络
  8. 5张图带你了解Pulsar的存储引擎BookKeeper
  9. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
  10. linux使用过程中出现的问题
  11. HTML5+CSS期末大作业:环保网站设计——环境保护(10页) 含设计报告 HTML+CSS+JavaScript 静态HTML环境保护网页制作下载 DIV+CSS环保网页设计代码
  12. centos7部署prometheus+exporter+grafana+Alertmanager+企业微信
  13. php导出成word试卷,依据word模板批量生成试卷
  14. Python爬虫初步个人学习及心得
  15. java设计万年历_java实现万年历
  16. HLK-V40 TTS语音模块使用说明
  17. TMS320F2812中文资料介绍
  18. 苹果字体怎么改_苹果手机的APPLE ID密码忘了怎么改?
  19. (不定期更新)《人工智能AI资讯》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+人工智能+AlphaGo+神经网络+深度学习+机器学习+自动驾驶+图像识别+立钻哥哥+==)
  20. 分享十个法国平面设计的创意思维

热门文章

  1. 无线AP人员定位实现调研以及方案编写
  2. 简化生活:重构消费系统
  3. rsync命令排除文件和文件夹(exclude-from)
  4. 专访:InMobi全球CEO Naveen Tewari
  5. ftp客户端工具,几款优秀的ftp客户端工具
  6. CGfsb [XCTF-PWN]CTF writeup系列2
  7. 白蛇传 冯梦龙 警世通言
  8. 国外优秀免费空间推荐 可用于测试或临时备份
  9. 南卡Runer骨传导耳机全能战机王
  10. 远程调试监视器 已在计算机上关闭,错误:“Microsoft Visual Studio 远程调试监视器”(MSVSMON.EXE) 似乎没有在远程计算机上运行。...