import java.awt.Color;
import java.awt.Panel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class FrameGame extends JFrame {
JPanel panel = new JPanel();
JLabel worker = new JLabel(new ImageIcon("workerRight.png"));
JLabel box = new JLabel(new ImageIcon("box.png"));
JLabel goal = new JLabel(new ImageIcon("goal.png"));
int SPEED = 12;
int[] pos = new int[] { 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8,
0, 9, 0, 10, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0,
9, 0, 10, 0, 11, 0, 12, 1, 12, 2, 12, 3, 12, 4, 12, 5, 12, 6, 12,
7, 12, 8, 12, 9, 12, 10, 12, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5, 10,
6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 1, 3, 2, 3, 3, 3,
4, 3, 5, 3, 6, 3, 5, 8, 6, 8, 7, 8, 8, 8, 9, 8, 10, 8, 11, 8 };
JLabel[] walls = new JLabel[pos.length / 2];
public FrameGame() {
this.setTitle("欢迎大家推箱子");
this.setBounds(200, 60, 535, 650);
this.setContentPane(panel);
for (int i = 0; i < walls.length; i++) {
walls[i] = new JLabel(new ImageIcon("wall.png"));
panel.add(walls[i]);
walls[i].setBounds(pos[i * 2] * 48, pos[i * 2 + 1] * 48, 48, 48);
}
panel.setLayout(null);
panel.setBackground(Color.black);
panel.add(worker);
panel.add(box);
panel.add(goal);
box.setBounds(240, 96, 48, 48);
goal.setBounds(336, 432, 48, 48);
worker.setBounds(240, 240, 48, 48);
this.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
int x = 0;
int y = 0;
switch (e.getKeyCode()) {
case 38:
System.out.println("上");
y = -SPEED;
worker.setIcon(new ImageIcon("workerUp.png"));
break;
case 39:
System.out.println("右");
worker.setIcon(new ImageIcon("workerRight.png"));
x = SPEED;
break;
case 40:
System.out.println("下");
worker.setIcon(new ImageIcon("workerDown.png"));
y = SPEED;
break;
case 37:
System.out.println("左");
worker.setIcon(new ImageIcon("workerLeft.png"));
x = -SPEED;
break;
default:
break;
}// switch
worker.setLocation(worker.getX() + x, worker.getY() + y);
for (int i = 0; i < walls.length; i++) {
if (worker.getBounds().intersects(walls[i].getBounds())) {
worker
.setLocation(worker.getX() - x, worker.getY()
- y);
}
}// for
if (worker.getBounds().intersects(box.getBounds())) {
box.setLocation(box.getX() + x, box.getY() + y);
}// if
for (int j = 0; j < walls.length; j++) {
if (box.getBounds().intersects(walls[j].getBounds())) {
box.setLocation(box.getX() - x, box.getY() - y);
worker.setLocation(worker.getX() - x, worker.getY()- y);
}// if
}// for
if (box.getX()==goal.getX() && box.getY()==goal.getY()) {
JOptionPane.showMessageDialog(null, "耶 ");
}//if
}// keyPressed
});// addKeyListener
this.setVisible(true);
}
public static void main(String[] args) {
new FrameGame();
}// main
}// class
chenhj_1
- 粉丝: 0
- 资源: 1
最新资源
- ssm-vue-健身房管理系统-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-海鲜自助餐厅系统-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-个人博客网站-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- 2024梦想贩卖机最新升级版变现宝知识付费小程序独立版+前端
- Carsim与matlab simulink联合仿真,线控转向,四轮电动汽车转向失效容错控制模型,提供参考文献
- Python 趣味编程代码.rar
- python爬取数据并采用Django搭建系统的前后台+Spark进行数据处理并进行电影推荐(源码+运行文档)
- ssm-vue-理发店会员管理系统-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-绿色农产品推广应用网站-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-鲸落文化线上体验馆-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- PLL锁相环MATLAB仿真模型 已调试好,可以直接用 新能源并网相位检测,控制系统的基础部件 附理论资料
- ssm-vue-人力资源管理系统-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-汽车售票网站-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-农家乐信息平台-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-铁岭河医院医患管理系统-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
- ssm-vue-网上花店设计-源码工程-32页从零开始全套图文详解-34页参考论文-27页参考答辩-全套开发环境工具、文档模板、电子教程、视频教学资源.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈