赞
踩
目录
1、窗体绘制
2、钩爪往返旋转
3、物体批量绘制
4、双缓存解决闪动问题
5、点和矩形碰撞检测
6、多种类物体随机生成
7、物体堆叠检测
8、多种类抓取速度判定
9、积分设置
10、关卡设置
11、重新开始
12、单关卡倒计时
13、金块的快速拉取
14、石块爆破
15、商店购物
创建一个Java项目,命名为The Gold Miner ,在项目下创建GameWin类。让GameWin类继承 JFrame类。这样才具有创建窗口,监听鼠标键盘事件的功能。
JFrame窗体是一个容器,它扩展了java.awt.Frame类,是Swing程序中各个组件的载体。在开发应用程序时,可以通过继承javax.swing.JFrame类来创建一个窗体对象,这个窗体继承了JFrame类自带的控制窗体的按钮,如“最大化”“最小化”“关闭”等,可以在窗体中添加组件以及为组件设置事件。
设置窗口信息:
●设置窗体可见,setVisible(true);
●设置窗口大小,setSize(500,500);
●设置窗口位置居中,setLocationRelativeTo(null);
●设置窗口标题:setTitle("黄金矿工");
●关闭窗口的方法:setDefaultCloseOperation(EXIT_ON_CLOSE);
//点击关闭按钮时,隐藏窗口
用Image方法将图片载入程序当中。
例:Image bg =Toolkit.getDefaultToolkit().getImage("此处放置图片的路径(imgs/bg.jpg)");
调用 drawImage 绘制图片:
g.drawImage(bg,0,0,null); //起始坐标设置为0,0。
drawLine() 是划线的方法。需要传入四个参数即起点坐标和终点坐标。
setColor(Color.red) //将绳子设置为红色。
红线摇摆情况:
●红线在水平面下做往返运动,可以发现,起点坐标是确定的,线段长度是确定的,终点坐标随角度的变化而变化。那么我们可以根据三角函数,求得其终点坐标,如上图所示。
●角度设置为0-π。操作n实现角度的变化。
红绳有摇摆、抓取、收回三种状态。设置一个鼠标事件(点击事件),通过鼠标事件来改变参数,继而改变红绳的状态。使用一个switch语句,如果状态时0则左右摇摆,如果状态为1(右键),则不停延长(增加线的长度)。如果是状态2,则收回(即线长变短)。
金块和石块具有很多相同的属性,如坐标宽高等,所以创建一个Object 父类,在其中定义他们的公共属性。再创建金块类或石块类,继承Object类,后写一个无参构造,并在其中定义初始值。
窗体中的元素都是通过 paint 的方法来进行绘制的。先绘制背景,再绘制线,然后绘制金块。背景 线 金块一直重复着绘制,就会出现闪动问题。如何解决?可以在窗体之外在新建一个画布,将背景,线,金块依次绘制在画布中,将其组合起来后一并传入窗体当中。
金块和石块在程序中被看为一个矩形,红线末尾是一个点。是否抓住,实质上就是检测点是否在矩形当中,即判断endx和endy(红线的末尾坐标在不在矩形内)
即判断endx是否大于金块的x 并且小于 x+金块的宽度,并且 endy是否大于y,小于y+金块的高度。若均符合则抓取成功。抓取成功后 红绳返回,金块移除(移到屏幕外即可)。
【注】:代码在本文章的最上面,可以直接下载。
学习自:B站尚学堂
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。