下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 试用期销售合同范本(3篇)
- 心理疏导服务团队方案(3篇)
- 新教材高考地理二轮复习三10个长效热点综合专项训练热点3生物多样性与环境含答案
- 武汉市部分重点中学 2024-2025 学年度上学期期中联考 高二地理试卷
- 陕西省西安市曲江第一小学2024-2025学年四年级上学期期中学业水平测试科学试题(无答案)
- 2025年高考物理专项复习:机械波及光的运用(分层练)(解析版)
- 广告制作合同范本怎么写
- 2024年证券交易市场委托交易规则
- 绿色环保课程设计
- 农贸市场摊位租赁条款
- 山东省济宁市曲阜市2024-2025学年九年级数学上学期期中试卷
- 江苏省南京市六校联考2024-2025学年高一上学期期中考试英语试卷(含答案含听力原文无音频)
- 企业公司工会管理制度
- 肺结节诊治中国专家共识(2024年版)解读
- 羽毛球运动教学与训练智慧树知到答案2024年黑龙江农业工程职业学院
- 2024年人教版八年级道德与法治上册期中考试卷(附答案)
- (高清版)JTGT 3365-02-2020 公路涵洞设计规范
- 气压止血带在四肢手术中应用的专家共识(2021版)
- 小学英语-Unit4 There is an old building in my school教学设计学情分析教材分析课后反思
- 食堂工作人员安全技术交底
- GB/T 29894-2013木材鉴别方法通则
评论
0/150
提交评论