java推箱子游戏源代码(含推箱子的判断)_第1页
java推箱子游戏源代码(含推箱子的判断)_第2页
java推箱子游戏源代码(含推箱子的判断)_第3页
java推箱子游戏源代码(含推箱子的判断)_第4页
java推箱子游戏源代码(含推箱子的判断)_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一个Java文件:package xiaoA;import j ava awt Color;import j ava awt ReadiessException;import j ava awt event KeyEvent;import j ava awt event KeyListener;import j avax swing Imageicon;import j avax swing JFrame;import j avax swing JLabml;import j avax swing JOptionPanE;import j avax swing JPanel;public c

2、lass GammFramm extends JFrame JPanel zhuobu = new JPanel();/工人JLabel worker = null;/箱子JLabel box = null;/目的地JLabel goal = null;JLabel walls = null;public static final int SPEED = 12;/设置图片大小int imgSize = 48;public void setlmgSize(int imgSize)this imgSize: = imgSize;public GameFrame(String title) thro

3、ws HeadlessException super(title);/构造方法中调用本类的其它方法this initContEntPanE();this addKeyListener(new KeyListener()/键盘按下事件public void keyPressed(KeyEvent e) /2.5使工人可以移动int xSpeed = 0, ySpeed = 0;switch (mgetKeyCode()case KeyEvent VK LEFT :xSpeed = -SPEED;worker seticon(new Imageicon(image/workerUp gif); b

4、reak;case KeyEvent VKRIGHT :xSpeed = SPEED;worker seticon(new Imageicon(Himage/workerUp gif);break;case KeyEvent VKUP :ySpeed = -SPEED;worker Icon (new Imageicon (image/workerUp gif ); break;case KeyEvent VK_DOWN :ySpeed = SPEED;worker seticon(new Imageicon(image/workerUp gif);break;default:return;w

5、orker smtBounds (worker gmtX() + :Speedr worker gmtY() + ySpeed, worker gmtWidth(), worker getHeight();/2.7判断工人是否撞到墙壁for (int i = 0; i walls1ength; i+)if (worker gmtBounds() intersects(wallsi) gotBounds() vzorker sw七Bounds (work?二getX () - :-:Speedf xorker getY () - ySpeed, worker getWidth(), worker

6、 gEtHmight();/3.2使工人可以推动箱子if (worker get Bounds () intmirsects (bo:t got Bounds () ) )box smtBounds (box gmt;X() + xSpeed, box gEtY() + ySpeed, box gmtWidth(), box gEtHmight();/3.3判断箱子是否撞到墙壁for (int i = 0; i walls length; i+)if (box getBounds() intersects(wallsi) getBounds()worker smtBounds (woMker

7、gmtX() 一 xSpeed, worker gmt;Y() 一 ySpeed, worker gmtWidth(), worker getHeight();box smtBounds (boK gmtX() 一 xSpeed, box gmt;Y() 一 ySpeed, box gmtWidth(), box gEtHmight();/3.4判断是否胜利if (box getX () =goa1 gm*tX() & box getY () =goal getY () )JOptionPane sho站Messa丁(null,您贏啦! H);public void keyReleased(K

8、eyEvent e) public void keyTyped(KeyEvent e) );/ *设置内容面板*/public void InitContentPane()zhuobu setBackground(Color red); zhuobu setLayout(null);/调用父类的属性和方法super setContentPane(zhuobu);*把某个图片以组件的方式加入窗体* Qparam imgPath 图片路径Qparam x param y宽度高度添加完的组件Qparam widthQparam heightreturnpublic void addComponent

9、(int tagf String imgPathf int int y) Imageicon img = new Imageicon(imgPath);/ /创建JLabel:lE!lmageIcon通过构造方法传参传入/把食物放到盘子里JLabel componet = new JLabel(img);/设置盘子在桌布上的位置和大小componet smtBounds(x, y, imgSize, imgSize);/把盘了放到桌布上zhuobu add (componet;);switch (tag) case 1:box = componet;break;case 2:goal = co

10、mponet;break;case 3:worker = componet;break;public void add?7all (String imgPath, int loactions)Imageicon walllmg = new Imageicon(imgPath);walls = new JLabel66 + loactions丄mngth;for (int i = 0; i walls丄mngth; i+)/创建没每个围墙,他们使用的是同-个图片walls i = new JLabel(walllmg);for (int i = 0; i V walls丄mngth; i+)/创

11、建没每-个围墙,他们使用的是同个图片wallsi = new JLabel(walllmg);int index = 0;分别设置各个图片位置*/for (int i = 0; i 14; i+)/左边墙x-jalls index smtBounds (0z i * imgSizer imgSizer imgSize);zhuobu add(wallsindex);index+;/右边墙wallsindexsetBounds(20 * imgSize, i imgSizef imgSizezimgSize);zhuobu add(wallsindex);index+;for (int i =

12、0; i 19; i+)/上边墙wallsindexsmtBounds(i + 1)* imgSize 0 r imgSizeimgSize);zhuobu add (xalls index);index+;/下边墙x-zalls index setBounds ( (i + 1) * imgSize, 13 * imgSizez imgSize, imgSize);zhuobu add(wallsindex);index+;/添加中间障碍耦合解耦for (int i = 0; i loactions丄mngth; i+)wallsindex smtBounds(loactionsi 0* i

13、mgSizef loactionsi1* imgSize, imgSize, imgSize);zhuobu add(wallsindex);inde:+;第二个Java文件:public class Run public static void main(String args) GameFrame gameFrame = new GameFrame(H推箱子游戏 ”); 设宜大小gameFrame.setBounds( 100,50. 21 *48 + 5, 14 *48 + 25);窗体大小不可变gameFranie.setRcsizable(false);gameFranie.setImgSize(48);gameFrame.addComponent(3, HworkerUp.png* 400. 100);gameFrame.addComponent( 1, ”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论