先简单介绍下游戏的原理吧。
一、重写jpanel的print方法,在这个方法里面做的事情:
1.画障碍物(顶部的尖刺)
2.画地板队列中的所有地板
3.画人
4.画图血条等提示信息
二、新建一个线程,这个线程不停的循环,在这个线程中做的事情:1.更新地板的位置 2.随即生成新的地板 3.更新地板动画 4.删除已经在窗口外面的地板
每次循环休眠一段时间,每个循环是一个时钟周期,不同的时钟周期做不同的事情(35个时钟周期生成一个地板,7个时钟周期更新一次地板动画)
效果图:
[/td][td=1,1,342]
Google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad); [/td][/tr][/table]
[pre]核心代码分析:
//重写PAINT方法 public void paint(Graphics g) { g1.clearRect(0, 0, 300, 400); //画顶部的尖刺 for (int i = 0; i < 300 / 15; i++) { g1.drawImage(chi, 15 * i, 30, null); } man.drawMan(g1); NFloor tempFloor = null; //画所有地板 for (int i = 0; i < floorList.size(); i++) { tempFloor = (NFloor) floorList.get(i); tempFloor.drawFloor(g1); } g1.setColor(Color.ORANGE); g1.setFont(new Font("Courier", Font.BOLD, 20)); g1.drawString("已经:" + man.getFloor() + "层", 10, 60); g1.drawString("血:", 10, 85); g1.setColor(Color.RED); g1.fillRect(40, 75, man.getHealth(), 10); g1.setColor(Color.YELLOW); g1.fillRect(40+man.getHealth(), 75, 100-man.getHealth(), 10); g.drawImage(buffimg, 0, 0, this); } [/pre]其它代码请下载。
下载地址:
“是男人就下100层”,JAVA源码 下载 |