java编程之拼图_Java编程制作拼图游戏
void initScreen() {
canvas = new Canvas() {
public void paint(Graphics g) { //覆写canvas的paint 方法
gs = getGraphics(); //得到Canvas的Graphics
if (isRunning) {
drawScreen();
} else {
g.drawImage(image, 0, 0, this);
g.setColor(Color.gray);
}
}
};
canvas.addMouseListener(new MouseAdapter() {
//覆写mousePressed 方法,实现鼠标点击时,图片移动
public void mousePressed(MouseEvent me) {
if (!isRunning) return; // 如果未运行,说明图片未分割,直接返回
int x = me.getX() / sx, y = me.getY() / sy;//判断鼠标点击的图片在map中的编号
int fx = (int) point.getX(), fy = (int) point.getY();//记录第九块图片(未显示图片)的位置
int canMove = Math.abs(fx - x) + Math.abs(fy - y); // 如鼠标点击位置与第九块图片(可移动的位置)相邻,则canMove 必为 1
if (canMove != 1 ) return; // canMove 不为1,不能移动图片
map[fx][fy] = map[x][y]; //点击图片坐标 赋给第九块图片
map[x][y] = 8; //第九块图片给掉 点击图片
point.setLocation(x, y); //point 坐标改变
drawScreen(); //重绘屏幕,实现图片移动
showStep.setText("移动步骤:" + ++steps); //步骤加一
}
});
//为Start按钮添加事件
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
initMap();
drawScreen();
isRunning = true;
steps = 0;
showStep.setText("移动步骤:" + steps);
show.setLabel("显示正确图片");
}
});
//为show按钮添加事件
show.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (show.getLabel().equals("继续游戏")) {
drawScreen();
isRunning = true;
show.setLabel("显示正确图片");
} else {
gs.drawImage(image, 0, 0, canvas);
isRunning = false;
show.setLabel("继续游戏");
}
}
});
}
java编程之拼图_Java编程制作拼图游戏相关推荐
- 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本
** 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本 ** 由于阴阳师这个游戏肝度太大,就决定写一个脚本来模拟玩家的重复性操作.所以我就决定用java中的robot类中的一些方法来 ...
- java编程思想读书_JAVA编程思想读书记(一)
JAVA是面向对象的语言,这一点每一个开发者都知道.但是享受于在myeclipse上自动生成,自动解决一切问题的时候,有些基础的我们也许会忘掉.我能明显感觉到自己对于软件的依赖以及基础知识的流失,所以 ...
- c语言拼图小游戏编程,c语言控制台输出制作拼图小游戏
这就是另外一个小程序了和那个推箱子很像. #include int a[4][4]; void draw_point(int n) { if(n == 15) { printf("| &qu ...
- java编程思想 入门_java编程思想学习(基础)
第一章 java介绍 1.编程的本质: 机器空间:解空间 问题空间:实际需要解决的业务问题,将该问题抽象化,在解空间中对问题建模. 编程就是建立问题空间和机器空间中的关联 面向对象编程思想: 1.万物 ...
- java编程50实例_java编程实例大全及详解谜底(50例).doc
java编程实例大全及详解谜底(50例).doc 还剩 33页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 谓 ...
- java编程规范换行_Java编程规范整理
近期即将开始编码阶段,特地整理一下各方面的编程规范与命名约定,以便内部团队风格统一. 文章大多从网络上收集汇总而来,参考列表附在文章末尾. Java编程规范整理 基本命名规范 包命名 包名按照域名的范 ...
- java 编程思想 笔记_java编程思想笔记20170215
importjava.util.ArrayList;importjava.util.List;public classTest {public static voidmain(String[] arg ...
- java程序输出矩阵_java编程题之顺时针打印矩阵
本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)--第19题 ...
- 第二章java编程基础测试题_Java编程基础测试题分享
单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; //float f=1.1f C. double d=34.4; D. byte ...
最新文章
- 如何把一个程序中 Edit 中的文本赋给另一个程序的 Edit ? - 回复 Disk_ 的问题
- 用 Flask 来写个轻博客 (2) — Hello World!
- 买卖股票 状态机模型的理解
- mybatis collection用法_Mybatis中强大的resultMap
- 卡尺测量的最小范围_不知道这四大基本原则,你还有脸在测量圈混?
- ubuntu18.04的ifconfig输出没有ip地址
- CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
- 程序员:像机器一样思考
- 将PowerShell连接到SQL Server
- Halcon——点胶机胶水路径应用(2)
- VHDL实现8选1数据选择器
- 360网站域名拦截检测 非法网址检测系统原理
- 计算机cpu后面字母代表什么意思,英特尔CPU型号中最后的字母什么意思?如有不懂欢迎驻足停留...
- 快门光圈感光度口诀_怎么利用光圈快门感光度
- 三个基本的布尔逻辑算符是_布尔逻辑检索的主要运算符有哪些
- cpu排行计算机专业,cpu排行,教您电脑cpu性能排行榜
- netstat -ano|findstr
- 增长黑客AB-Testing系统设计
- 用户画像在阅文的探索与实践
- php获取电商物流信息
热门文章
- “酸甜苦辣”说华育(我一个学员的学习心得)
- 锂电池原理与使用保养
- java找中点_java中点是什么意思
- MM定理(Modigliani-Miller)证明与图解
- 渲染算法学习(七)-- Real-Time Ray Tracing
- vulfocus靶场进不去
- PHP AJAX Promise
- 个人miniblog被迫备份至此
- 计算机风扇维修,千米快修电脑维修:电脑风扇散热不好,经常出问题怎么办?...
- Python使用Eel和HTML开发桌面应用