JAVA 实现《俄罗斯方块》游戏|CSDN创作打卡

article/2025/11/2 9:08:10

前言

俄罗斯方块是一个最初由阿列克谢帕吉特诺夫在苏联设计和编程的益智类视频游戏。

《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。

用java语言实现,采用了swing技术进行了界面化处理,设计思路用了面向对象思想。

主要需求

由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。

主要设计

1、用键盘操作,"←"左移一格;"→"右移一格;"↑"旋转方块;↓ 方块丢下(方块下落到底)

2、一旦堆到屏幕顶端,游戏结束

3、设计不同的方块

4、设计方块下落的速度

5、设计分数系统

功能截图

游戏启动页

image-20220123182937923

开始游戏

image-20220123182955128

image-20220123183012927

游戏结束

image-20220123183048994

代码实现

窗口设计类

public class Windows extends JFrame {private Toolkit took = null;private static int width= 470;     //宽private static int height = 680;   //高private static int width_g = 10;   //游戏区域private static int height_g = 22;  //private static int size = 30;      //方块大小private static int space= 10;      //坐标距边界间隔Map map = new Map(width_g,height_g);//地图坐标ArrayList <Diamonds> ds = new ArrayList<Diamonds>();//方块数组private boolean game=false;        //游戏开始private int flag = 0;              //游戏状态【暂停:0,继续:1】private JLabel jl2;private JButton jb1;private int speed = 500;           //速度private int score = 0;             //分数private int[] scores = new int[4]; //排名public static void main(String[] args) {Windows win = new Windows();win.run();}public void run(){init();try {while(true) {if(game&&flag==1) {ds.get(ds.size()-2).movement(map);if(!ds.get(ds.size()-2).isStatus()) {//判断游戏是否失败if(ds.get((ds.size()-2)).getY()<=3) {game=false;//重置游戏参数ds = new ArrayList<Diamonds>();map = new Map(width_g,height_g);JOptionPane.showMessageDialog(new JFrame().getContentPane(), "游戏结束!\n您获得【"+score+"】点分数");score=0;jl2.setText("分数:   "+score);jb1.setEnabled(true);jb1.setText("重新开始");}else {//消除判断score=map.dispel(score);jl2.setText("分数:   "+score);//生成新方块Diamonds diamonds = new Diamonds(width_g);ds.add(diamonds);}}}repaint();Thread.sleep(speed);}}catch(InterruptedException e) {e.printStackTrace();}}//窗口加载public void init() {//界面设置this.setTitle("俄罗斯方块");    //标题this.setSize(width, height); //界面大小took = Toolkit.getDefaultToolkit();Dimension dm = took.getScreenSize();int swidth = (dm.width - width)/2;int sheight = (dm.height - height)/2;this.setLocation(swidth, sheight);//容器JPanel p1 = new JPanel();   //地图JPanel p2 = new JPanel();   //俄罗斯方块控制界面JPanel p3 = new JPanel();   //按钮JPanel p4 = new JPanel();   //说明//图形绘制容器JPanel contentPane =  new PaintPanel();setContentPane(contentPane);//标签JLabel jl1 = new JLabel("俄罗斯方块控制界面");jl2 = new JLabel("分数:   "+score);JLabel jl3 = new JLabel("游戏说明:");//按钮jb1 = new JButton("游戏开始");JButton jb2 = new JButton("难度选择");JButton jb3 = new JButton("继续/暂停");JButton jb4 = new JButton("游戏退出");JButton jb5 = new JButton("高级");JButton jb6 = new JButton("中级");JButton jb7 = new JButton("低级");JButton jb8 = new JButton("显示排名");//文本JTextArea jta = new JTextArea("1.点击【游戏开始】按钮开始游戏。"+ "\n2.游戏中可随时暂停,使用方向键可继续游戏"+ "\n3.用键盘操作,\"←\"左移一格;\"→\"右移一格;\"↑\"旋转方块;↓ 方块丢下(方块下落到底)",50,9);jta.setSelectionColor(Color.RED);jta.setEditable(false);jta.setLineWrap(true);//布局this.setLayout(new BorderLayout(5,5));p2.setLayout(new GridLayout(2,1,5,5));p3.setLayout(new GridLayout(10,1,5,5));p4.setLayout(new BorderLayout(5,5));//设置边界p2.setBorder(BorderFactory.createEmptyBorder(20,20,15,15));//背景颜色p1.setBackground(new Color(255,255,255,0));p2.setBackground(new Color(255,255,255,0));p3.setBackground(new Color(255,255,255,0));p4.setBackground(new Color(255,255,255,0));jta.setBackground(Color.WHITE);//添加容器/组件p3.add(jl1);p3.add(jl2);p3.add(jb1);//p3.add(jb2);p3.add(jb3);p3.add(jb4);p3.add(jb8);p4.add(jl3,BorderLayout.NORTH);p4.add(jta,BorderLayout.CENTER);p2.add(p3);p2.add(p4);//主容器this.add(p1,BorderLayout.CENTER);this.add(p2,BorderLayout.EAST);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setUndecorated(true);this.setVisible(true);this.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {//游戏开始时按键有效if(ds.size()!=0) {int type = ds.get(ds.size()-2).getType();int x = ds.get(ds.size()-2).getX();if(e.getKeyCode()==KeyEvent.VK_LEFT) {ds.get(ds.size()-2).left(map);}if(e.getKeyCode()==KeyEvent.VK_RIGHT) {ds.get(ds.size()-2).right(map);}if(e.getKeyCode()==KeyEvent.VK_UP) {if(type<=1) {//可能在转换过程发生越界的解决办法if(type==1) {if(x>=width_g-3) {ds.get(ds.size()-2).setX(width_g-4);}}ds.get(ds.size()-2).setType(type==0?1:0);}else if(type<=5) {if(type==3||type==5) {if(x==width_g-2) {ds.get(ds.size()-2).setX(width_g-3);}}ds.get(ds.size()-2).setType(type==5?2:++type);}else if(type<=9) {ds.get(ds.size()-2).setType(type==9?6:++type);}else if(type<=10) {ds.get(ds.size()-2).setType(10);}else if(type<=14) {if(type==12||type==14) {if(x==width_g-2) {ds.get(ds.size()-2).setX(width_g-3);}}ds.get(ds.size()-2).setType(type==14?11:++type);}else if(type<=18) {if(type==16||type==18) {if(x==width_g-2) {ds.get(ds.size()-2).setX(width_g-3);}}ds.get(ds.size()-2).setType(type==18?15:++type);}}}if(e.getKeyCode()==KeyEvent.VK_DOWN) {speed = 100;}}public void keyReleased(KeyEvent e) {if(e.getKeyCode()==KeyEvent.VK_DOWN) {speed = 500;}}});//游戏开始jb1.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {requestFocus();//生成第一个方块Diamonds diamonds = new Diamonds(width_g);ds.add(diamonds);//生成提示方块Diamonds point = new Diamonds(width_g);ds.add(point);//游戏开始game=true;flag=1;//游戏开始后禁止使用jb1.setEnabled(false);}});//退出jb4.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {System.exit(0);}});	//暂停/继续jb3.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if(flag==0) {flag=1;}else {flag=0;}requestFocus();}});}//重写paintComponent(图形绘制)private class PaintPanel extends JPanel{@Overrideprotected void paintComponent(Graphics g) {//还原size的值size=30;//绘制边界g.setColor(Color.GRAY);g.fillRect(0, 0, width-149, height-1);g.setColor(Color.PINK);g.fillRect(width-149, 0, 148, height-1);g.setColor(Color.BLACK);g.drawLine(width-149, 0, width-149, height-1);g.drawRect(0, 0, width-1, height-1);g.setColor(Color.WHITE);       g.fillRect(space, space, width_g*size, height_g*size);g.setColor(Color.BLACK);g.drawRect(space, space, width_g*size, height_g*size);g.drawLine(space, space+3*size, space+width_g*size, space+3*size);//提示框g.setColor(Color.WHITE);g.fillRect(width-135, 222, 4*size, 4*size);g.setColor(Color.BLACK);g.drawRect(width-135, 222, 4*size, 4*size);if(game) {Color[][] color_xy = map.getColor();int[][] map_xy = map.getMap();//绘制地图for(int i=0;i<width_g;i++) {for(int j=0;j<height_g;j++) {// 绘制网格线,可注释g.drawRect(i*size+space, j*size+space, size, size);if(map_xy[i][j]==1) {//g.setColor(color_xy[i][j]);g.setColor(Color.BLUE);g.fillRect(i*size+space, j*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(i*size+space, j*size+space, size, size);}}}//绘制可移动的方块int type=ds.get(ds.size()-2).getType();int x=ds.get(ds.size()-2).getX();int y=ds.get(ds.size()-2).getY();Color color = ds.get(ds.size()-2).getColor();//绘制提示方块int typeO=ds.get(ds.size()-1).getType();int xO=width-100;int yO=260;Color colorO = ds.get(ds.size()-1).getColor();//绘制图形//图形一,两种形态if(type==0) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+2)*size+space, y*size+space, size, size);g.fillRect((x+3)*size+space, y*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+2)*size+space, y*size+space, size, size);g.drawRect((x+3)*size+space, y*size+space, size, size);}if(type==1) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect(x*size+space, (y+2)*size+space, size, size);g.fillRect(x*size+space, (y+3)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect(x*size+space, (y+2)*size+space, size, size);g.drawRect(x*size+space, (y+3)*size+space, size, size);}//图形二,四种形态if(type==2) {g.setColor(color);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect((x+2)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);g.drawRect((x+2)*size+space, (y+1)*size+space, size, size);}if(type==3) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect(x*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);g.drawRect(x*size+space, (y+2)*size+space, size, size);}if(type==4) {g.setColor(color);g.fillRect((x)*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+2)*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+2)*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);}if(type==5) {g.setColor(color);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+2)*size+space, size, size);}//图形三,四种形态if(type==6) {g.setColor(color);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	}if(type==7) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	}if(type==8) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);	}if(type==9) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	}//图形四,一种形态if(type==10) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);	g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);}//图形五,三种形态if(type==11) {g.setColor(color);g.fillRect((x+2)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect((x+2)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect((x+2)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	g.drawRect((x+2)*size+space, (y+1)*size+space, size, size);}if(type==12) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	g.drawRect((x+1)*size+space, (y+2)*size+space, size, size);}if(type==13) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+2)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+2)*size+space, y*size+space, size, size);	g.drawRect(x*size+space, (y+1)*size+space, size, size);}if(type==14) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect(x*size+space, (y+2)*size+space, size, size);g.fillRect((x+1)*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect(x*size+space, (y+2)*size+space, size, size);	g.drawRect((x+1)*size+space, (y+2)*size+space, size, size);}//图形六,三种形态if(type==15) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect((x+2)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);	g.drawRect((x+2)*size+space, (y+1)*size+space, size, size);}if(type==16) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect(x*size+space, (y+1)*size+space, size, size);g.fillRect(x*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect(x*size+space, (y+1)*size+space, size, size);	g.drawRect(x*size+space, (y+2)*size+space, size, size);}if(type==17) {g.setColor(color);g.fillRect(x*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+2)*size+space, y*size+space, size, size);g.fillRect((x+2)*size+space, (y+1)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect(x*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+2)*size+space, y*size+space, size, size);	g.drawRect((x+2)*size+space, (y+1)*size+space, size, size);}if(type==18) {g.setColor(color);g.fillRect((x+1)*size+space, y*size+space, size, size);g.fillRect((x+1)*size+space, (y+1)*size+space, size, size);g.fillRect(x*size+space, (y+2)*size+space, size, size);g.fillRect((x+1)*size+space, (y+2)*size+space, size, size);g.setColor(Color.BLACK);g.drawRect((x+1)*size+space, y*size+space, size, size);g.drawRect((x+1)*size+space, (y+1)*size+space, size, size);g.drawRect(x*size+space, (y+2)*size+space, size, size);	g.drawRect((x+1)*size+space, (y+2)*size+space, size, size);}//绘制提示图形size=(int)(size/1.5);if(typeO==0) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO+size, yO, size, size);g.fillRect(xO+size*2, yO, size, size);g.fillRect(xO+size*3, yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO+size, yO, size, size);g.drawRect(xO+size*2, yO, size, size);g.drawRect(xO+size*3, yO, size, size);}if(typeO==1) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(xO, 2*size+yO, size, size);g.fillRect(xO, 3*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(xO, 2*size+yO, size, size);g.drawRect(xO, 3*size+yO, size, size);}//图形二,四种形态if(typeO==2) {g.setColor(colorO);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(2*size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);g.drawRect(2*size+xO, size+yO, size, size);}if(typeO==3) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);g.drawRect(xO, 2*size+yO, size, size);}if(typeO==4) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(2*size+xO, yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(2*size+xO, yO, size, size);g.drawRect(size+xO, size+yO, size, size);}if(typeO==5) {g.setColor(colorO);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(size+xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);g.drawRect(size+xO, 2*size+yO, size, size);}//图形三,四种形态if(typeO==6) {g.setColor(colorO);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);	}if(typeO==7) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);	}if(typeO==8) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);	}if(typeO==9) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(size+xO, size+yO, size, size);	}//图形四,一种形态if(typeO==10) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);	g.drawRect(size+xO, size+yO, size, size);}//图形五,三种形态if(typeO==11) {g.setColor(colorO);g.fillRect(2*size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(2*size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(2*size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);	g.drawRect(2*size+xO, size+yO, size, size);}if(typeO==12) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(size+xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(size+xO, size+yO, size, size);	g.drawRect(size+xO, 2*size+yO, size, size);}if(typeO==13) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(2*size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(2*size+xO, yO, size, size);	g.drawRect(xO, size+yO, size, size);}if(typeO==14) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(xO, 2*size+yO, size, size);g.fillRect(size+xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(xO, 2*size+yO, size, size);	g.drawRect(size+xO, 2*size+yO, size, size);}//图形六,三种形态if(typeO==15) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(2*size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(xO, size+yO, size, size);g.drawRect(size+xO, size+yO, size, size);	g.drawRect(2*size+xO, size+yO, size, size);}if(typeO==16) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(xO, size+yO, size, size);g.fillRect(xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(xO, size+yO, size, size);	g.drawRect(xO, 2*size+yO, size, size);}if(typeO==17) {g.setColor(colorO);g.fillRect(xO, yO, size, size);g.fillRect(size+xO, yO, size, size);g.fillRect(2*size+xO, yO, size, size);g.fillRect(2*size+xO, size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(xO, yO, size, size);g.drawRect(size+xO, yO, size, size);g.drawRect(2*size+xO, yO, size, size);	g.drawRect(2*size+xO, size+yO, size, size);}if(typeO==18) {g.setColor(colorO);g.fillRect(size+xO, yO, size, size);g.fillRect(size+xO, size+yO, size, size);g.fillRect(xO, 2*size+yO, size, size);g.fillRect(size+xO, 2*size+yO, size, size);g.setColor(Color.BLACK);g.drawRect(size+xO, yO, size, size);g.drawRect(size+xO, size+yO, size, size);g.drawRect(xO, 2*size+yO, size, size);	g.drawRect(size+xO, 2*size+yO, size, size);}}		}}
}

方块及相关事件设计类

/** 方块*/
public class Diamonds {private int x;        //坐标xprivate int y;        //坐标yprivate Color color;  //颜色private int type;     //类型Random rm = new Random();private boolean status=true;//状态private int width;public Diamonds() {super();// TODO Auto-generated constructor stub}//方块初始化public Diamonds(int width) {super();this.width = width;this.x = rm.nextInt(width-3);this.y = 0;//this.color = Color.GREEN;this.color = new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255));this.type = rm.nextInt(16);}//向左移动public void left(Map map) {int[][]map_xy = map.getMap();if(x!=0) {switch(type){case 0:if(map_xy[x-1][y]==0) {x--;} break;case 1:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0 && map_xy[x-1][y+2]==0 && map_xy[x-1][y+3]==0) {x--;} break;case 2:if(map_xy[x][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 3:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0 && map_xy[x-1][y+2]==0) {x--;} break;case 4:if(map_xy[x-1][y]==0 && map_xy[x][y+1]==0) {x--;} break;case 5:if(map_xy[x][y]==0 && map_xy[x-1][y+1]==0 && map_xy[x][y+2]==0) {x--;} break;case 6:if(map_xy[x][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 7:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 8:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 9:if(map_xy[x-1][y]==0 && map_xy[x][y+1]==0) {x--;} break;case 10:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 11:if(map_xy[x+1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 12:if(map_xy[x-1][y]==0 && map_xy[x][y+1]==0 && map_xy[x][y+2]==0) {x--;} break;case 13:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 14:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0 && map_xy[x-1][y+2]==0) {x--;} break;case 15:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0) {x--;} break;case 16:if(map_xy[x-1][y]==0 && map_xy[x-1][y+1]==0 && map_xy[x-1][y+2]==0) {x--;} break;case 17:if(map_xy[x-1][y]==0 && map_xy[x+1][y+1]==0) {x--;} break;case 18:if(map_xy[x][y]==0 && map_xy[x][y+1]==0 && map_xy[x-1][y+2]==0) {x--;} break;}}}//向右移动public void right(Map map) {int[][]map_xy = map.getMap();switch(type) {case 0: if(x<width-4 && map_xy[x+4][y]==0) {x++;}break;case 1: if(x<width-1 && map_xy[x+1][y]==0 && map_xy[x+1][y+1]==0 && map_xy[x+1][y+2]==0 && map_xy[x+1][y+3]==0) {x++;}break;case 2: if(x<width-3 && map_xy[x+2][y]==0 && map_xy[x+3][y+1]==0) {x++;}break;case 3: if(x<width-2 && map_xy[x+1][y]==0 && map_xy[x+2][y+1]==0 && map_xy[x+1][y+2]==0) {x++;}break;case 4: if(x<width-3 && map_xy[x+3][y]==0 && map_xy[x+2][y+1]==0) {x++;}break;case 5: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0 && map_xy[x+2][y+2]==0) {x++;}break;case 6: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0) {x++;}break;case 7: if(x<width-2 && map_xy[x+1][y]==0 && map_xy[x+2][y+1]==0) {x++;}break;case 8: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+1][y+1]==0) {x++;}break;case 9: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0) {x++;}break;case 10: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0) {x++;}break;case 11: if(x<width-3 && map_xy[x+3][y]==0 && map_xy[x+3][y+1]==0) {x++;}break;case 12: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0 && map_xy[x+2][y+2]==0) {x++;}break;case 13: if(x<width-3 && map_xy[x+3][y]==0 && map_xy[x+1][y+1]==0) {x++;}break;case 14: if(x<width-2 && map_xy[x+1][y]==0 && map_xy[x+1][y+1]==0 && map_xy[x+2][y+2]==0) {x++;}break;case 15: if(x<width-3 && map_xy[x+1][y]==0 && map_xy[x+3][y+1]==0) {x++;}break;case 16: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+1][y+1]==0 && map_xy[x+1][y+2]==0) {x++;}break;case 17: if(x<width-3 && map_xy[x+3][y]==0 && map_xy[x+3][y+1]==0) {x++;}break;case 18: if(x<width-2 && map_xy[x+2][y]==0 && map_xy[x+2][y+1]==0 && map_xy[x+2][y+2]==0) {x++;}break;}}//向下移动public void movement(Map map){int[][]map_xy = map.getMap();Color[][]color_xy = map.getColor();//向下移动一格switch(type) {case 0:if(map_xy[x][y+1]==0 && map_xy[x+1][y+1]==0 && map_xy[x+2][y+1]==0 && map_xy[x+3][y+1]==0){y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+2][y]=1;map_xy[x+3][y]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+2][y]=color;color_xy[x+3][y]=color;status=false;}break;case 1:if(map_xy[x][y+4]==0){y+=1;}else {map_xy[x][y]=1;map_xy[x][y+1]=1;map_xy[x][y+2]=1;map_xy[x][y+3]=1;color_xy[x][y]=color;color_xy[x][y+1]=color;color_xy[x][y+2]=color;color_xy[x][y+3]=color;status=false;}break;case 2:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0 && map_xy[x+2][y+2]==0) {y+=1;}else {map_xy[x+1][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;map_xy[x+2][y+1]=1;color_xy[x+1][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;color_xy[x+2][y+1]=color;status=false;}break;case 3:if(map_xy[x][y+3]==0 && map_xy[x+1][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;map_xy[x][y+2]=1;color_xy[x][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;color_xy[x][y+2]=color;status=false;}break;case 4:if(map_xy[x][y+1]==0 && map_xy[x+1][y+2]==0 && map_xy[x+2][y+1]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+2][y]=1;map_xy[x+1][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+2][y]=color;color_xy[x+1][y+1]=color;status=false;}break;case 5:if(map_xy[x][y+2]==0 && map_xy[x+1][y+3]==0) {y+=1;}else {map_xy[x+1][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;map_xy[x+1][y+2]=1;color_xy[x+1][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;color_xy[x+1][y+2]=color;status=false;}break;case 6:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0) {y+=1;}else {map_xy[x+1][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;color_xy[x+1][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;status=false;}break;case 7:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;color_xy[x][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;status=false;}break;case 8:if(map_xy[x][y+2]==0 && map_xy[x+1][y+1]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x][y+1]=color;status=false;}break;case 9:if(map_xy[x][y+1]==0 && map_xy[x+1][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+1][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+1][y+1]=color;status=false;}break;case 10:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;status=false;}break;case 11:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0 && map_xy[x+2][y+2]==0) {y+=1;}else {map_xy[x+2][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;map_xy[x+2][y+1]=1;color_xy[x+2][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;color_xy[x+2][y+1]=color;status=false;}break;case 12:if(map_xy[x][y+1]==0 && map_xy[x+1][y+3]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+1][y+1]=1;map_xy[x+1][y+2]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+1][y+1]=color;color_xy[x+1][y+2]=color;status=false;}break;case 13:if(map_xy[x][y+2]==0 && map_xy[x+1][y+1]==0 && map_xy[x+2][y+1]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+2][y]=1;map_xy[x][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+2][y]=color;color_xy[x][y+1]=color;status=false;}break;case 14:if(map_xy[x][y+3]==0 && map_xy[x+1][y+3]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x][y+1]=1;map_xy[x][y+2]=1;map_xy[x+1][y+2]=1;color_xy[x][y]=color;color_xy[x][y+1]=color;color_xy[x][y+2]=color;color_xy[x+1][y+2]=color;status=false;}break;case 15:if(map_xy[x][y+2]==0 && map_xy[x+1][y+2]==0 && map_xy[x+2][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x][y+1]=1;map_xy[x+1][y+1]=1;map_xy[x+2][y+1]=1;color_xy[x][y]=color;color_xy[x][y+1]=color;color_xy[x+1][y+1]=color;color_xy[x+2][y+1]=color;status=false;}break;case 16:if(map_xy[x][y+3]==0 && map_xy[x+1][y+1]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x][y+1]=1;map_xy[x][y+2]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x][y+1]=color;color_xy[x][y+2]=color;status=false;}break;case 17:if(map_xy[x][y+1]==0 && map_xy[x+1][y+1]==0 && map_xy[x+2][y+2]==0) {y+=1;}else {map_xy[x][y]=1;map_xy[x+1][y]=1;map_xy[x+2][y]=1;map_xy[x+2][y+1]=1;color_xy[x][y]=color;color_xy[x+1][y]=color;color_xy[x+2][y]=color;color_xy[x+2][y+1]=color;status=false;}break;case 18:if(map_xy[x][y+3]==0 && map_xy[x+1][y+3]==0) {y+=1;}else {map_xy[x+1][y]=1;map_xy[x+1][y+1]=1;map_xy[x][y+2]=1;map_xy[x+1][y+2]=1;color_xy[x+1][y]=color;color_xy[x+1][y+1]=color;color_xy[x][y+2]=color;color_xy[x+1][y+2]=color;status=false;}break;}map.setMap(map_xy);map.setColor(color_xy);}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public Color getColor() {return color;}public void setColor(Color color) {this.color = color;}public int getType() {return type;}public void setType(int type) {this.type = type;}public boolean isStatus() {return status;}public void setStatus(boolean status) {this.status = status;}
}

总结

通过此次的《俄罗斯方块》游戏实现,让我对swing的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。

java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。

源码获取

源码下载地址:传送门------->
可关注博主后,私聊博主免费获取
需要技术指导,写项目程序,等更多服务请联系博主

今天是持续写作的第 4 / 100 天。
可以关注我,点赞我、评论我、收藏我啦。


http://chatgpt.dhexx.cn/article/i6jbI7Fd.shtml

相关文章

Java游戏开发——俄罗斯方块

游戏介绍 俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机的游戏&#xff0c;它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的&#xff0c;它看似简单但却变化无穷&#xff0c;游戏过程中仅需要玩家将不…

Java写俄罗斯方块,了解一下

Java俄罗斯方块目录&#xff1a; Java俄罗斯方块 ---&#xff08;一&#xff09;游戏场景篇Java俄罗斯方块 ---&#xff08;二&#xff09;游戏操作与逻辑篇Java写俄罗斯方块&#xff08;完整版&#xff09; 简要分析&#xff1a; 俄罗斯方块的规则在这里就不细说了&#xf…

Java游戏开发 —— 俄罗斯方块

引言&#xff1a; 俄罗斯方块的代码实现很简单&#xff0c;很有意思&#xff01; 思路&#xff1a; 1、创建主窗口&#xff0c;加载菜单及游戏面板。 2、在游戏面板中初始化各种参数&#xff0c;并建立各种功能组件。 3、利用paint()函数开始画方块。 4、游戏结束&#xff0c;…

Java俄罗斯方块,老程序员花了一个周末,连接中学年代!

Java俄罗斯方块&#xff0c;老程序员花了一个周末&#xff0c;连接中学年代&#xff01; 热门专栏推荐 【1】Java小游戏&#xff08;俄罗斯方块、飞机大战、植物大战僵尸等&#xff09; 【2】JavaWeb项目实战&#xff08;图书管理、在线考试、宿舍管理等&#xff09; 【3】Jav…

软件设计实战:基于Java的俄罗斯方块游戏【完整版】

个人简介 &#x1f468;&#x1f3fb;‍&#x1f4bb;个人主页&#xff1a;陈橘又青 &#x1f3c3;&#x1f3fb;‍♂️博客记录心情&#xff0c;代码编写人生。 &#x1f31f;如果文章对你有用&#xff0c;麻烦关注点赞收藏走一波&#xff0c;感谢支持&#xff01; &#x1f3…

Java实现游戏开发《俄罗斯方块》

一、用Java实现俄罗斯方块游戏&#xff1a; 1、效果图&#xff0c;如下图所示&#xff1a; 7种形态的第一种形态, 如下所示&#xff1a;分布是 &#xff1a;|、S、Z、J、O、L、T; 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1…

俄罗斯方块游戏的设计与实现(Java+Swing+Eclipse)

目录 基于Java的俄罗斯方块游戏的设计与实现 I 摘 要 I Based on the design and implementation of Java game Tetris II Abstract II 1 绪论 1 1.1程序开发背景及意义 1 1.2开发技术概述 2 1.3俄罗斯方块游戏的研究现状 2 1.3.1 国内外研究现状 2 1.3.2 文献综述 3 2相关技术…

【Java小游戏】俄罗斯方块

文章目录 规则准备工作编写小方块类编写四方格父类创建7种不同的形状编写俄罗斯方块主类初始化7种形状 随机生成四方格创建游戏场景绘制游戏绘制游戏背景绘制游戏主区域绘制正在下落的四方格绘制下一个下落的四方格绘制游戏得分绘制游戏状态 编写游戏逻辑判断方块是否出界判断方…

Java实现俄罗斯方块小游戏。(附完整源代码)

大家好&#xff0c;我是百思不得小赵。 创作时间&#xff1a;2022 年 5 月 12 日 博客主页&#xff1a; &#x1f50d;点此进入博客主页 —— 新时代的农民工 &#x1f64a; —— 换一种思维逻辑去看待这个世界 &#x1f440; 今天是加入CSDN的第1167天。觉得有帮助麻烦&#x…

Java实现俄罗斯方块游戏(简单版)

游戏页面效果如下&#xff1a; 俄罗斯方块游戏本身的逻辑&#xff1a; 俄罗斯方块游戏的逻辑是比较简单的。它就类似于堆砌房子一样&#xff0c;各种各样的方地形状是不同的。但是&#xff0c;俄罗斯方块游戏的界面被等均的分为若干行和若干列&#xff0c;因此方块的本质就是占…

vs2019功能介绍_MFC界面库BCGControlBar v30.0新功能详解:支持VS 2019

亲爱的BCGSoft用户&#xff0c;我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v30.0正式发布&#xff01;新版本添加了对Visual Studio 2019的支持等。接下来几篇文章将对这个版本的新功能一一进行介绍&#xff0c;让您对BCG这个控件有一个全新的认…

MFC界面库BCGControlBar v32.0 - 网格、报表控件升级

亲爱的BCGSoft用户&#xff0c;我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v32.0正式发布&#xff01;新版本支持Windows 11、增强功能区简化模式、改进控件外观等&#xff0c;以及其他新功能和改进。需要最新版的可以点击这里【BCG下载】 BCGC…

MFC扩展库BCGControlBar :网格和报告控件

BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库&#xff0c;使您可以创建具有完全自定义选项&#xff08;功能区、可自定义工具栏、菜单等&#xff09;以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件&a…

MFC界面库之BCGControlers使用

觉得默认的MFC实在是太丑了,想要用一下扩展的界面库.网上查了些资料.不过在这里我还是小结一下使用的过程吧! 1.当然是安装文件了,在上一步不用多勾选,直接按照默认的就可以了...但是要注意一定要以管理员身份运行BCGCBProBuildWizard.exe否则没有办法通过...... 2.配置lib文件…

MFC界面控件BCGControlBar v33.3 - 编辑控件功能升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版和BCGSuite for MFC v33.3已正式发布了&#xff0c;该版本包含了增强的Ribbon自定义、新的…

MFC界面美化

排列整齐 基于MFC编写GUI代码时&#xff0c;界面美化最基本的部分就是排列整齐&#xff0c;如果是用Visual Studio 2015 IDE 开发&#xff0c;那就十分方便了&#xff0c;在快捷功能框即有相关按钮&#xff0c;这和Qt的控件调整有些类似&#xff0c;可以有效减少我们在布局上耗…

MFC界面库BCGControlBar v30.0新功能详解:支持VS 2019

亲爱的BCGSoft用户&#xff0c;我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v30.0正式发布&#xff01;新版本添加了对Visual Studio 2019的支持等。接下来几篇文章将对这个版本的新功能一一进行介绍&#xff0c;让您对BCG这个控件有一个全新的认…

VS2017 MFC使用Skin++界面库实例(最简单的方法为自己的MFC程序换肤)

MFC的界面太丑了&#xff0c;又不想学界面设计&#xff0c;找了好多资源&#xff0c;要么各种各样的错误对于我这样的小白来说很难解决&#xff0c;要么就是使用起来太复杂&#xff0c;暂时也没有太多时间去研究&#xff0c;后来终于找到了VS2017也能用&#xff0c;简单方便的S…

MFC界面库BCGControlBar v33.0 - 全新升级Ribbon Bar、工具栏等

亲爱的BCGSoft用户&#xff0c;我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v33.0正式发布&#xff01;此版本包括对每个显示器 DPI 感知的支持、改进的信息框和桌面警报控件、主题编辑框气球工具提示和其他新功能和改进。需要最新版的可以点击这…

MFC界面库BCGControlBar的介绍

英文原文&#xff1a; http://www.bcgsoft.com/bcgcontrolbarpro.htm BCGControlBar是MFC的一个扩展库其英文全称是"Business Components Gallery ControlBar"&#xff0c;它允许你去创建像完全自定义的像Microsoft Office 2000/XP/2003/2007/2010/2013 and Visua…