推箱子程序制作说明文档(3)

2019-03-29 10:28

} } new GameFrame(); 要点:可以使用快捷键“Alt + /”快速生成代码。

2.5 使工人可以移动

intxSpeed = 0, ySpeed = 0; switch (e.getKeyCode()) { case KeyEvent.VK_LEFT : xSpeed = -SPEED; worker.setIcon(new ImageIcon(\ break; case KeyEvent.VK_RIGHT : xSpeed = SPEED; worker.setIcon(new ImageIcon(\ break; case KeyEvent.VK_UP : ySpeed = -SPEED; worker.setIcon(new ImageIcon(\ break; case KeyEvent.VK_DOWN : ySpeed = SPEED; worker.setIcon(new ImageIcon(\ break; default: return; } worker.setBounds(worker.getX() + xSpeed, worker.getY() + ySpeed, worker.getWidth(), worker.getHeight());

要点:需要在类中定义常量SPEED,如public static final int SPEED = 12; 在keyPressed方法中输入如下代码使工人可以移动:

2.6 加入围墙

在类中加入围墙位置数组与墙壁控件数组:

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]; for (int i = 0; i

2.7 判断工人是否撞到墙壁

for (int i = 0; i

3 编码实现工人推箱子 3.1 加入箱子与胜利标志

JLabel box = new JLabel(new ImageIcon(\JLabel goal = new JLabel(new ImageIcon(\

在构造函数中加入两个控件: 在类中加入箱子控件与胜利标志控件:

panel.add(box); panel.add(goal); 3.2 使工人可以推动箱子

if (worker.getBounds().intersects(box.getBounds())) { box.setBounds(box.getX() + xSpeed, box.getY() box.getWidth(), box.getHeight()); } + ySpeed, 在步骤2.7的代码后继续输入如下代码使工人可以推动箱子:

3.3判断箱子是否撞到墙壁

for (int i = 0; i

3.4 判断是否胜利

if (box.getX()==goal.getX() &&box.getY()==goal.getY()) { } JOptionPane.showMessageDialog(null, \您赢啦!\在步骤3.3的语句后继续输入如下代码判断是否胜利:

4 完整代码

importjavax.swing.JFrame; importjava.awt.Color; importjava.awt.event.KeyEvent; importjava.awt.event.KeyListener; importjavax.swing.JOptionPane; importjavax.swing.JPanel; importjavax.swing.ImageIcon; importjavax.swing.JLabel; publicclassGameFrameextendsJFrame { JPanel panel = newJPanel(); //[2.3] 加入工人 JLabel worker = newJLabel(newImageIcon(\publicstaticfinalintSPEED = 12; //[2.6] 加入围墙 int[] pos = newint[]{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 = newJLabel[pos.length/2]; //[3.1] 加入箱子与胜利标志 JLabel box = newJLabel(newImageIcon(\JLabel goal = newJLabel(newImageIcon(\publicGameFrame() { //[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

推箱子程序制作说明文档(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考作文(分析作文结构导向)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: