package com.lyc;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class TXZ {
public static void main(String[] args) {
JFrame gameJFrame = new JFrame();
//设置标题
gameJFrame.setTitle("推箱子1.0");
//设置窗口尺寸
gameJFrame.setSize(22*48+10,12*48+30);
//gameJFrame.setLocation();
// gameJFrame.setBounds((1920-800)/2,(1080-600)/2,800,600);
//居中
gameJFrame.setLocationRelativeTo(null);
//关闭窗口时结束程序
gameJFrame.setDefaultCloseOperation(3);
//创建面板
JPanel panel = new JPanel();
//给背景添加颜色
panel.setBackground(Color.RED);
//自定义布局
panel.setLayout(null);
//面板和窗体相关联
gameJFrame.setContentPane(panel);
//创建图片对象,构造方法传参,设置图片路径
ImageIcon boxImg =new ImageIcon("imgs/box3.png");
//创建标签,构造方法传参,把图片放入标签
JLabel box = new JLabel(boxImg);
//把标签放入面板
panel.add(box);
box.setBounds(3*48,3*48,48,48);
ImageIcon workImg = new ImageIcon("imgs/workerLeft3.png");
JLabel worker = new JLabel(workImg);
panel.add(worker);
worker.setBounds(4*48,3*48,48,48);
ImageIcon goalImg = new ImageIcon("imgs/goal3.png");
JLabel goal = new JLabel(goalImg);
panel.add(goal);
goal.setBounds(5*48,7*48,48,48);
//添加围墙
ImageIcon wallImg = new ImageIcon("imgs/wall3.png");
JLabel[] walls = new JLabel[22*2+10*2];
for (int i =0;i< walls.length;i++){
walls[i]= new JLabel(wallImg);
}
int index =0;
for (int i =0;i<22;i++){
panel.add(walls[index]);
walls[index++].setBounds(i*48,0,48,48);
panel.add(walls[index]);
walls[index++].setBounds(i*48,11*48,48,48);
}
for (int i = 1;i<=10;i++){
panel.add(walls[index]);
walls[index++].setBounds(0,i*48,48,48);
panel.add(walls[index]);
walls[index++].setBounds(21*48,i*48,48,48);
}
//添加事件(匿名内部类,事件处理)
gameJFrame.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
//System.out.println("键盘每按一次,此方法被调用一次");
int keyCode = e.getKeyCode();
//System.out.println(keyCode);keyCode是ASSI码
int x =0,y=0;
String impath = "workerDown3.png";
if (keyCode==38||keyCode==87){
//System.out.println("上");
y=-48;
impath = "workerUp3.png";
}else if (keyCode==40||keyCode==83){
//System.out.println("下");
y=48;
}else if (keyCode==37||keyCode==65){
//System.out.println("左");
x=-48;
impath = "workerLeft3.png";
}else if (keyCode==39||keyCode==68){
//System.out.println("右");
x=48;
impath = "workerRight3.png";
}
worker.setBounds(worker.getBounds().x+x,worker.getBounds().y+y,48,48);
ImageIcon workerImg = new ImageIcon("imgs/"+impath);
worker.setIcon(workerImg);
}
@Override
public void keyReleased(KeyEvent e) {
}
});
gameJFrame.setVisible(true);
}
}
推箱子1.0(中)
最新推荐文章于 2022-06-22 15:04:51 发布