设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3033|回复: 4
打印 上一主题 下一主题

七夕小雨教程系列java_swing俄罗斯方块教程[1]

 关闭 [复制链接]

28

主题

11

听众

5325

积分

管理员

昨日黄昏

管理员

  • TA的每日心情

    2010-9-25 00:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    精华
    5
    积分
    5325
    历练
    10
    声望
    119
    人气
    141

    润泽万物 匠心独运

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2011-5-18 14:55:42 |只看该作者 |倒序浏览

    这一讲 三个类的内容

    gameMain.class
    package eLuoSiFangKuai;
    import javax.swing.*;
    public class gameMain extends JFrame{
    public gameMain() {
      super("俄罗斯方块1.0V---七夕小雨作品");
      gameWin g = new gameWin();
      add(g);
      setSize(380,420);
      setLocation(200, 200);
      setVisible(true);
    }
    public static void main(String[] args) {
      new gameMain();
    }
    }

    gameWin.class
    package eLuoSiFangKuai;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    public class gameWin extends JPanel implements ActionListener,KeyListener{
    JButton newGame = new JButton("开始");
    JButton endGame = new JButton("退出");
    int fenShu=0,speed=0;
    gameAct[] act = new gameAct[4];
    Random r = new Random();
    boolean start=false;
    public gameWin() {
      for (int i = 0; i < act.length; i++) {
       act = new gameAct();
      }
      setLayout(new FlowLayout(FlowLayout.RIGHT));
      add(newGame);
      add(endGame);
      newGame.addActionListener(this);
      endGame.addActionListener(this);
      addKeyListener(this);
    }
    public void paintComponent(Graphics g){
      super.paintComponent(g);
      g.drawRect(9, 10, 200, 360);
      g.drawString("分数"+fenShu, 220, 60);
      g.drawLine(220, 65, 360, 65);
      g.drawString("速度"+speed, 220, 90);
      g.drawLine(220, 95, 360, 95);
      g.drawString("下一个方块", 250, 120);
      g.drawString("俄罗斯方块1.0v", 220, 340);
      g.drawString("七夕小雨", 220, 360);
      ////////////////////////
      if (start) {
       g.setColor(new Color(255,0,0));
       for (int i = 0; i < 4; i++) {
        g.fillRect(10+act.x*20, 10+act.y*20, 20, 20);
       }
      }
    }
    private boolean newAct() {
      int temp = r.nextInt(7);
      System.out.println(temp);
      switch (temp) {
      case 0:
       act[0].x =3;act[0].y=0;
       act[1].x =4;act[1].y=0;
       act[2].x =2;act[2].y=1;
       act[3].x =3;act[3].y=1;
       break;
      case 1:
       act[0].x =1;act[0].y=0;
       act[1].x =2;act[1].y=0;
       act[2].x =3;act[2].y=0;
       act[3].x =4;act[3].y=0;
       break;
      case 2:
       act[0].x =2;act[0].y=0;
       act[1].x =3;act[1].y=0;
       act[2].x =2;act[2].y=1;
       act[3].x =3;act[3].y=1;
       break;
      case 3:
       act[0].x =2;act[0].y=0;
       act[1].x =2;act[1].y=1;
       act[2].x =2;act[2].y=2;
       act[3].x =3;act[3].y=2;
       break;
      case 4:
       act[0].x =3;act[0].y=0;
       act[1].x =3;act[1].y=1;
       act[2].x =3;act[2].y=2;
       act[3].x =2;act[3].y=2;
       break;
      case 5:
       act[0].x =3;act[0].y=0;
       act[1].x =2;act[1].y=1;
       act[2].x =3;act[2].y=1;
       act[3].x =4;act[3].y=1;
       break;
      case 6:
       act[0].x =2;act[0].y=0;
       act[1].x =3;act[1].y=0;
       act[2].x =3;act[2].y=1;
       act[3].x =4;act[3].y=1;
       break;
      }
      
      return true;
    }
    public void actionPerformed(ActionEvent e) {
      if (e.getSource()==newGame) {
       if (e.getActionCommand().equals("开始")) {
        newGame.setText("重置");
        requestFocus(true);
        start = true;
        if (!newAct()) {
         //这里是游戏失败的情况;
         return;
        }else {
         repaint();
        }
       }else {
        start = false;
        newGame.setText("开始");
       }
      }
      if (e.getSource()==endGame) {
       System.exit(0);
      }
    }
    public void Move(int x, int y) {
      if (minYes(x, y)) {
       for (int i = 0; i < 4; i++) {
        act.x+=x;
        act.y+=y;
       }
      }
      repaint();
    }
    public boolean minYes(int x, int y){
      for (int i = 0; i < 4; i++) {
       if (!maxYes(act.x+x, act.y+y)) {
        return false;
       }
      }
      return true;
    }
    public boolean maxYes(int x, int y){
      if (x<0||x>=10||y<0||y>=18) {
       return false;
      }
      return true;
    }
    public void keyPressed(KeyEvent e) {
      if (start) {
       switch (e.getKeyCode()) {
       case KeyEvent.VK_DOWN:
        Move(0, 1);
        break;
       case KeyEvent.VK_UP:
        break;
       case KeyEvent.VK_LEFT:
        Move(-1, 0);
        break;
       case KeyEvent.VK_RIGHT:
        Move(1, 0);
        break;
       default:
        break;
       }
      }
    }
    public void keyReleased(KeyEvent arg0) { }
    public void keyTyped(KeyEvent arg0) { }
    }


    gameAct.class
    package eLuoSiFangKuai;
    public class gameAct {
    int x;
    int y;
    }
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0

    489

    主题

    2

    听众

    5468

    积分

    名扬四海

    会员等级: 7

  • TA的每日心情

    2024-7-8 14:49
  • 签到天数: 1854 天

    [LV.Master]伴坛终老

    精华
    0
    积分
    5468
    历练
    0
    声望
    246
    人气
    67

    黑色羽翼 神仙眷侣 转帖之王

    最爱菱纱
    幸福:65℃
    2
    发表于 2011-5-18 16:53:42 |只看该作者
    肯定有 下 ~~~
    回复

    使用道具 举报

    1082

    主题

    15

    听众

    1万

    积分

    管理员

    魔尊

    管理员

  • TA的每日心情
    无聊
    2024-4-22 00:16
  • 签到天数: 2281 天

    [LV.Master]伴坛终老

    精华
    3
    积分
    18267
    历练
    9
    声望
    342
    人气
    6122

    出神入化 润泽万物 金融巨子 神仙眷侣

    佛珠
    幸福:605℃
    3
    发表于 2011-5-18 17:08:13 |只看该作者
    可以写个论文了 哈哈

    回复

    使用道具 举报

    28

    主题

    11

    听众

    5325

    积分

    管理员

    昨日黄昏

    管理员

  • TA的每日心情

    2010-9-25 00:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    精华
    5
    积分
    5325
    历练
    10
    声望
    119
    人气
    141

    润泽万物 匠心独运

    单身中……
    帮我摆脱单身吧
    4
    发表于 2011-5-18 17:53:56 |只看该作者
    - -最近在用java做植物大战僵尸,我就先用这种方法把我之前做过的项目总结一下-v-
    回复

    使用道具 举报

    0

    主题

    1

    听众

    15

    积分

    初涉江湖

    会员等级: 1

    该用户从未签到

    精华
    0
    积分
    15
    历练
    0
    声望
    1
    人气
    6
    单身中……
    帮我摆脱单身吧
    5
    发表于 2011-9-30 00:49:43 |只看该作者
    多谢,学着好方便。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    手机版|Archiver|仙剑之十里坡 ( 苏ICP备11022766号 )  

    GMT+8, 2024-11-23 04:24 , Processed in 0.634850 second(s), 48 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部