资源简介

java课程设计大作业 推箱子游戏的制作说明文档(含素材)

资源截图

代码片段和文件信息

import javax.swing.Jframe;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Gameframe extends Jframe {

JPanel panel = new JPanel();
//[2.3] 加入工人
JLabel worker = new JLabel(new ImageIcon(“workerLeft.png“));
public static final int SPEED = 12;
//[2.6] 加入围墙
int[] pos = new int[]{00 10 20 30 40 50 60 70 80 90 100 01 02 03 04 05 06 07 08 09 010 011 012 112 212 312 412 512 612 712 812 912 1012 101 102 103 104 105 106 107 108 109 1010 1011 1012 13 23 33 43 53 63 58 68 78 88 98 108 118 };
JLabel[] walls = new JLabel[pos.length/2];
//[3.1] 加入箱子与胜利标志
JLabel box = new JLabel(new ImageIcon(“box.png“));
JLabel goal = new JLabel(new ImageIcon(“goal.png“));

public Gameframe() {
//[2.2] 完善窗体
this.settitle(“欢迎大家推箱子“);
this.setBounds(200 60 535 650);
this.setContentPane(panel);
panel.setLayout(null);
panel.setBackground(Color.black);
//[2.3] 加入工人
panel.add(worker);
worker.setBounds(240 240 48 48);
//[2.6] 加入围墙
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);

}
//[3.1] 加入箱子与胜利标志
panel.add(box);
panel.add(goal);
box.setBounds(240 96 48 48);

goal.setBounds(336 432 48 48);


this.setVisible(true);
//[2.4] 监听键盘事件
this.addKeyListener(new KeyListener() {
//键盘按下事件
public void keyPressed(KeyEvent e) {
//[2.5] 使工人可以移动
int xSpeed = 0 ySpeed = 0;
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT : 
xSpeed = -SPEED;
worker.setIcon(new ImageIcon(“workerLeft.png“));
break;
case KeyEvent.VK_RIGHT : 
xSpeed = SPEED;
worker.setIcon(new ImageIcon(“workerRight.png“));
break;
case KeyEvent.VK_UP : 
ySpeed = -SPEED;
worker.setIcon(new ImageIcon(“workerUp.png“));
break;
case KeyEvent.VK_DOWN : 
ySpeed = SPEED;
worker.setIcon(new ImageIcon(“workerDown.png“));
break;
default:
return;
}
worker.setBounds(worker.getX() + xSpeed worker.getY() + ySpeed worker.getWidth() worker.getHeight());
//[2.7] 判断工人是否撞到墙壁
for (int i = 0; i < walls.length; i++) {
if (worker.getBounds().intersects(walls[i].getBounds())) {
worker.setBounds(worker.getX() - xSpeed worker.getY() - ySpeed worker.getWidth() worker.getHeight());
}
}
//[3.2] 使工人可以推动箱子
if (worker.getBounds().intersects(box.getBounds())) {
box.setBounds(box.getX() + xSpeed box.getY() + ySpeed box.getWidth() box.getHeight());
//[3.3] 判断箱子是否撞到墙壁
for (int i = 0; i < walls.length; i++) {
if (box.getBounds()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-03-27 20:27  推箱子\
     文件         226  2009-12-03 15:36  推箱子\.classpath
     文件         385  2009-12-03 15:36  推箱子\.project
     文件        1035  2009-12-03 15:51  推箱子\box.png
     文件        2049  2010-09-06 16:54  推箱子\Gameframe$1.class
     文件        2400  2010-09-06 16:54  推箱子\Gameframe.class
     文件        3720  2010-05-23 09:09  推箱子\Gameframe.java
     文件        1160  2009-12-03 15:51  推箱子\goal.png
     文件        4989  2009-12-03 15:51  推箱子\wall.png
     文件        2282  2009-12-03 15:51  推箱子\workerDown.png
     文件        2240  2009-12-03 15:51  推箱子\workerLeft.png
     文件        2288  2009-12-03 15:51  推箱子\workerRight.png
     文件        2281  2009-12-03 15:51  推箱子\workerUp.png
     文件      551739  2009-12-02 20:39  推箱子程序制作说明文档.pdf

评论

共有 条评论