java小游戏-java小游戏-大鱼吃小鱼

  • 1 创建窗口
  • 2 添加背景图
  • 3 启动封面
  • 4 启动页面的点击事件
  • 5 游戏开始时的背景添加
  • 6 双缓存解决闪屏问题
  • 7 地方第一条小鱼的添加
  • 8 敌方左方小鱼批量添加
  • 9 我方鱼生成
  • 10 我方鱼吃敌方小鱼的碰撞检测
  • 11 游戏积分的实现
  • 12 关卡的设置
  • 13 界面绘制
  • 14 右侧敌方鱼的生成和多种鱼的生成
  • 15 boss鱼的添加
  • 16 暂停功能和重新开始功能实现

连接视频

1 创建窗口

创建GameApp类

public class GameApp extends JFrame {//宽高int width = 1440;int height = 900;void launch(){this.setVisible(true);this.setSize(width,height);this.setLocationRelativeTo(null);//设置游戏窗口不可改变this.setResizable(false);this.setTitle("大鱼吃小鱼");this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {GameApp gameApp = new GameApp();gameApp.launch();}}

2 添加背景图

先上传准备的图片

创建GameUtils类

/*** 工具类*/
public class GameUtils {//背景图片public static Image bjimg = Toolkit.getDefaultToolkit().createImage("img/bj.jpg");}

在GameApp类重写paint方法

@Override
public void paint(Graphics g) {g.drawImage(GameUtils.bjimg,0,0,null);
}

3 启动封面

在GameApp类添加参数,修改paint方法

//游戏状态 0 未开始 1 游戏中 2 通关失败 3 通关完成 4 暂停
static int state = 0;@Override
public void paint(Graphics g) {g.drawImage(GameUtils.bjimg,0,0,null);switch (state){case 0:g.drawImage(GameUtils.bjimg,0,0,null);g.setColor(Color.pink);g.setFont(new Font("仿宋",Font.BOLD,80));g.drawString("开始",700,500);break;case 1:break;case 2:break;case 3:break;case 4:break;}}

4 启动页面的点击事件

在GameApp类添加鼠标监听事件

void launch(){...this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//鼠标监听事件this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {super.mouseClicked(e);if(e.getButton() == 1 && state == 0){//鼠标左键点击state = 1;repaint();}}});
}

5 游戏开始时的背景添加

创建Bj类

/*** 背景类*/
public class Bj {void paintSelf(Graphics g){g.drawImage(GameUtils.bjimg,0,0,null);}}

在GameApp类中引用

Bj bj = new Bj();void launch(){...while (true){repaint();try {Thread.sleep(40);} catch (InterruptedException e) {e.printStackTrace();}}
}@Override
public void paint(Graphics g) {g.drawImage(GameUtils.bjimg,0,0,null);switch (state){case 0:g.drawImage(GameUtils.bjimg,0,0,null);g.setColor(Color.pink);g.setFont(new Font("仿宋",Font.BOLD,80));g.drawString("开始",700,500);break;case 1:bj.paintSelf(g);break;case 2:break;case 3:break;case 4:break;}}

6 双缓存解决闪屏问题

在GameApp类添加画屏

Image offScreenImage = null;@Override
public void paint(Graphics g) {//懒加载模式初始化对象offScreenImage = createImage(width,height);Graphics graphics = offScreenImage.getGraphics();switch (state){case 0:graphics.drawImage(GameUtils.bjimg,0,0,null);graphics.setColor(Color.pink);graphics.setFont(new Font("仿宋",Font.BOLD,80));graphics.drawString("开始",700,500);break;case 1:bj.paintSelf(graphics);break;case 2:break;case 3:break;case 4:break;}g.drawImage(offScreenImage,0,0,null);
}

7 地方第一条小鱼的添加

在GameUtils类添加敌方小鱼图片

 //敌方鱼类
public static Image enemy1_img = Toolkit.getDefaultToolkit().createImage("img/finsh1_r.gif");

创建Enemy类

/*** 敌方类*/
public class Enemy {//定义图片Image image;//定义物体坐标int x,y;int width,height;//移动速度int speed;//方向 1 从左到右 -1 从右到左int dir = 1;//类型int type;//分值int count;//绘制自身方法public void paintSelf(Graphics g){g.drawImage(image,x,y,width,height,null);}//获取自身矩形用于碰撞检测public Rectangle getRec(){return new Rectangle(x,y,width,height);}
}

创建Enemy_1_L类

/*** 敌方鱼的左类*/
public class Enemy_1_L extends Enemy{public Enemy_1_L(){this.x = -45;this.y = (int)(Math.random()*700 + 100);this.width = 45;this.height = 69;this.speed = 10;this.count = 1;this.type = 1;this.image = GameUtils.enemy1_img;}}

在GameApp类创建敌方鱼类对象,修改paint方法

//敌方鱼类
Enemy enemy = new Enemy_1_L();public void paint(Graphics g) {...switch (state){...case 1:bj.paintSelf(graphics);enemy.x += enemy.speed;enemy.paintSelf(graphics);break;case 2:...
}

8 敌方左方小鱼批量添加

在GameUtils类创建敌方鱼集合

//敌方鱼类集合
public static List<Enemy> enemyList = new ArrayList<>();

修改GameApp类添加方法

double random;
//计数器
int time = 0;void launch() {...while (true) {repaint();time++;try {Thread.sleep(40);} catch (InterruptedException e) {e.printStackTrace();}}
}public void paint(Graphics g) {...switch (state){...case 1:bj.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 2:...
}void logic() {//敌方鱼生成if (time % 10 == 0) {enemy = new Enemy_1_L();GameUtils.enemyList.add(enemy);}//移动方向for (Enemy e : GameUtils.enemyList) {e.x = e.x + e.dir * e.speed;}
}

9 我方鱼生成

在GameUtils添加参数

//我方鱼类
public static Image myFishimg_l = Toolkit.getDefaultToolkit().createImage("img/myfishimg_l.gif");
public static Image myFishimg_r = Toolkit.getDefaultToolkit().createImage("img/myfishimg_r.gif");//我方鱼方向
static boolean UP = false;
static boolean DOWN = false;
static boolean LEFT = false;
static boolean RIGHT = false;

创建MyFish类

/*** 我方鱼类*/
public class MyFish {//图片Image image;//坐标int x = 700, y = 500;int width = 50, height = 50;//移动速度int speed = 20;//等级int level = 1;void logic() {if (GameUtils.UP) {y = y - speed;}if (GameUtils.DOWN) {y = y + speed;}if (GameUtils.LEFT) {x = x - speed;image = GameUtils.myFishimg_l;}if (GameUtils.RIGHT) {x = x + speed;image = GameUtils.myFishimg_r;}}//绘制自身方法public void paintSelf(Graphics g) {logic();g.drawImage(image, x, y, width, height, null);}//获取自身矩形方法,用于碰撞判断public Rectangle getRec() {return new Rectangle(x, y, width, height);}
}

在GameApp类引用对象

//我方鱼
MyFish myFish = new MyFish();void launch() {...@Overridepublic void keyReleased(KeyEvent e) {//键抬起super.keyReleased(e);if(e.getKeyCode() == KeyEvent.VK_UP){//↑GameUtils.UP = false;}if(e.getKeyCode() == KeyEvent.VK_DOWN){//↓GameUtils.DOWN = false;}if(e.getKeyCode() == KeyEvent.VK_LEFT){//←GameUtils.LEFT = false;}if(e.getKeyCode() == KeyEvent.VK_RIGHT){//→GameUtils.RIGHT = false;}}});while (true) {...@Override
public void paint(Graphics g) {...case 1:bj.paintSelf(graphics);myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 2:break;case 3:break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}

10 我方鱼吃敌方小鱼的碰撞检测

在GameApp类修改logic方法

void logic() {//敌方鱼生成if (time % 10 == 0) {enemy = new Enemy_1_L();GameUtils.enemyList.add(enemy);}//移动方向for (Enemy e : GameUtils.enemyList) {e.x = e.x + e.dir * e.speed;//我方鱼与敌方鱼碰撞检测if(myFish.getRec().intersects(e.getRec())){System.out.println("碰撞了");e.x = -200;e.y = -200;}}
}

11 游戏积分的实现

在GameUtils类添加常量

//分数
static int count = 0;

在MyFish类修改方法

//绘制自身方法
public void paintSelf(Graphics g) {logic();g.drawImage(image, x, y, width + GameUtils.count, height+ GameUtils.count, null);
}//获取自身矩形方法,用于碰撞判断
public Rectangle getRec() {return new Rectangle(x, y, width + GameUtils.count, height + GameUtils.count);
}

在GameApp类修改相关方法

@Override
public void paint(Graphics g) {...case 1:bj.paintSelf(graphics);//打印积分graphics.setColor(Color.ORANGE);graphics.setFont(new Font("仿宋", Font.BOLD, 50));graphics.drawString("积分" + GameUtils.count,200,120);myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 2:break;case 3:break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}void logic() {...//移动方向for (Enemy e : GameUtils.enemyList) {e.x = e.x + e.dir * e.speed;//我方鱼与敌方鱼碰撞检测if(myFish.getRec().intersects(e.getRec())){System.out.println("碰撞了");e.x = -200;e.y = -200;GameUtils.count = GameUtils.count+e.count;}}
}

12 关卡的设置

在GameUtils类添加常量

//关卡的等级
static int level = 0;

在GameApp类修改相关方法

@Override
public void paint(Graphics g) {....case 3:myFish.paintSelf(graphics);graphics.setColor(Color.orange);graphics.setFont(new Font("仿宋", Font.BOLD, 80));graphics.drawString("积分" + GameUtils.count,200,120);graphics.drawString("胜利",400,500);break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}void logic() {//关卡的难度if (GameUtils.count < 5) {GameUtils.level = 0;myFish.level = 1;}else if(GameUtils.count <= 15){GameUtils.level = 1;}else if(GameUtils.count <= 50){GameUtils.level = 2;myFish.level = 2;}else if(GameUtils.count <= 150){GameUtils.level = 3;myFish.level = 3;}else if(GameUtils.count <= 300){GameUtils.level = 4;myFish.level = 3;}else if(GameUtils.count > 300){state = 3;}//敌方鱼生成...
}

13 界面绘制

在GameUtils类添加方法

//绘制文字的工具方法
public static void drawWord(Graphics g,String str,Color color,int size,int x,int y){g.setColor(color);g.setFont(new Font("仿宋", Font.BOLD, size));g.drawString(str,x,y);
}

在GameApp类修改相关方法

@Override
public void paint(Graphics g) {//懒加载模式初始化对象offScreenImage = createImage(width, height);Graphics graphics = offScreenImage.getGraphics();bj.paintSelf(graphics,myFish.level);switch (state) {case 0:break;case 1:myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 2:break;case 3:myFish.paintSelf(graphics);break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}

在Bj类修改paintSelf方法

void paintSelf(Graphics g, int fishLevel) {g.drawImage(GameUtils.bjimg, 0, 0, null);switch (GameApp.state) {case 0:GameUtils.drawWord(g, "开始", Color.red, 80, 700, 500);break;case 1:GameUtils.drawWord(g, "积分" + GameUtils.count, Color.orange, 50, 200, 120);GameUtils.drawWord(g, "难度" + GameUtils.level, Color.orange, 50, 600, 120);GameUtils.drawWord(g, "等级" + fishLevel, Color.orange, 50, 1000, 120);break;case 2:break;case 3:GameUtils.drawWord(g, "积分" + GameUtils.count, Color.orange, 50, 200, 120);GameUtils.drawWord(g, "难度" + GameUtils.level, Color.orange, 50, 600, 120);GameUtils.drawWord(g, "等级" + fishLevel, Color.orange, 50, 1000, 120);GameUtils.drawWord(g, "胜利", Color.orange, 80, 700, 500);break;case 4:break;default:}
}

14 右侧敌方鱼的生成和多种鱼的生成

在GameUtils类添加参数

//敌方鱼类
public static Image enemy1_img = Toolkit.getDefaultToolkit().createImage("img/finsh1_r.gif");
public static Image enemyr_img = Toolkit.getDefaultToolkit().createImage("img/finsh1_l.gif");public static Image enemyl_2img = Toolkit.getDefaultToolkit().createImage("img/finsh2_r.png");
public static Image enemyr_2img = Toolkit.getDefaultToolkit().createImage("img/finsh2_l.png");
public static Image enemyl_3img = Toolkit.getDefaultToolkit().createImage("img/finsh3_r.png");
public static Image enemyr_3img = Toolkit.getDefaultToolkit().createImage("img/finsh3_l.png");

创建Enemy_1_R类,Enemy_2_L类,Enemy_2_R类,Enemy_3_L类,Enemy_3_R类

public class Enemy_1_R extends Enemy_1_L {public Enemy_1_R(){this.x = 1400;dir = -1;this.image = GameUtils.enemyr_img;}
}public class Enemy_2_L extends Enemy{public Enemy_2_L(){this.x = -100;this.y = (int)(Math.random()*700 + 100);this.width = 100;this.height = 100;this.speed = 5;this.count = 2;this.type = 2;this.image = GameUtils.enemyl_2img;}
}public class Enemy_2_R extends Enemy_2_L{public Enemy_2_R(){this.x = 1400;dir = -1;this.image = GameUtils.enemyr_2img;}
}public class Enemy_3_L extends Enemy{public Enemy_3_L(){this.x = -300;this.y = (int)(Math.random()*700 + 100);this.width = 300;this.height = 150;this.speed = 15;this.type = 3;this.image = GameUtils.enemyl_3img;}@Overridepublic Rectangle getRec() {return new Rectangle(x+40,y+30,width-80,height-60);}
}public class Enemy_3_R extends Enemy_3_L{public Enemy_3_R(){this.x = 1400;dir = -1;this.image = GameUtils.enemyr_3img;}
}

在GameApp类修改相关方法

@Override
public void paint(Graphics g) {//懒加载模式初始化对象offScreenImage = createImage(width, height);Graphics graphics = offScreenImage.getGraphics();bj.paintSelf(graphics, myFish.level);switch (state) {case 0:break;case 1:myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 2:for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}break;case 3:myFish.paintSelf(graphics);break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}void logic() {....random = Math.random();//敌方鱼生成switch (GameUtils.level) {case 4:case 3:case 2:if (time % 30 == 0) {if (random > 0.5) {enemy = new Enemy_3_L();} else {enemy = new Enemy_3_R();}GameUtils.enemyList.add(enemy);}case 1:if (time % 20 == 0) {if (random > 0.5) {enemy = new Enemy_2_L();} else {enemy = new Enemy_2_R();}GameUtils.enemyList.add(enemy);}case 0:if (time % 10 == 0) {if (random > 0.5) {enemy = new Enemy_1_L();} else {enemy = new Enemy_1_R();}GameUtils.enemyList.add(enemy);}break;default:}//移动方向for (Enemy e : GameUtils.enemyList) {e.x = e.x + e.dir * e.speed;//我方鱼与敌方鱼碰撞检测if (myFish.getRec().intersects(e.getRec())) {if (myFish.level >= e.type) {System.out.println("碰撞了");e.x = -200;e.y = -200;GameUtils.count = GameUtils.count + e.count;} else {state = 2;}}}
}

在Bj类添加失败绘制

void paintSelf(Graphics g, int fishLevel) {g.drawImage(GameUtils.bjimg, 0, 0, null);switch (GameApp.state) {...case 2:GameUtils.drawWord(g, "积分" + GameUtils.count, Color.orange, 50, 200, 120);GameUtils.drawWord(g, "难度" + GameUtils.level, Color.orange, 50, 600, 120);GameUtils.drawWord(g, "等级" + fishLevel, Color.orange, 50, 1000, 120);GameUtils.drawWord(g, "失败", Color.orange, 80, 700, 500);break;case 3:...}
}

15 boss鱼的添加

在GameUtils类添加参数

public static Image bossimg = Toolkit.getDefaultToolkit().createImage("img/boss.gif");

创建BossEnemy类

public class BossEnemy extends Enemy{public BossEnemy(){this.x = -1000;this.y = (int)(Math.random()*700 + 100);this.width = 340;this.height = 340;this.speed = 100;this.count = 0;this.type = 10;this.image = GameUtils.bossimg;}
}

在GameApp类修改相关方法

//boss鱼
BossEnemy boss;
//是否生成boss
boolean isBoss = false;@Override
public void paint(Graphics g) {//懒加载模式初始化对象offScreenImage = createImage(width, height);Graphics graphics = offScreenImage.getGraphics();bj.paintSelf(graphics, myFish.level);switch (state) {case 0:break;case 1:myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}if(isBoss){boss.x = boss.x + boss.dir*boss.speed;boss.paintSelf(graphics);if(boss.x < 0){graphics.setColor(Color.red);graphics.fillRect(boss.x,boss.y,2400,boss.height/30);}}break;case 2:for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}if(isBoss){boss.paintSelf(graphics);}break;case 3:myFish.paintSelf(graphics);break;case 4:break;}g.drawImage(offScreenImage, 0, 0, null);
}void logic() {...random = Math.random();//敌方鱼生成switch (GameUtils.level) {case 4:if(time%60==0){if(random > 0){boss = new BossEnemy();isBoss = true;}}case 3:case 2:if (time % 30 == 0) {if (random > 0.5) {enemy = new Enemy_3_L();} else {enemy = new Enemy_3_R();}GameUtils.enemyList.add(enemy);}case 1:if (time % 20 == 0) {if (random > 0.5) {enemy = new Enemy_2_L();} else {enemy = new Enemy_2_R();}GameUtils.enemyList.add(enemy);}case 0:if (time % 10 == 0) {if (random > 0.5) {enemy = new Enemy_1_L();} else {enemy = new Enemy_1_R();}GameUtils.enemyList.add(enemy);}break;default:}//移动方向for (Enemy e : GameUtils.enemyList) {e.x = e.x + e.dir * e.speed;if(isBoss){if(boss.getRec().intersects(e.getRec())){e.x = -200;e.y = -200;}if(boss.getRec().intersects(myFish.getRec())){state =2;}}//我方鱼与敌方鱼碰撞检测if (myFish.getRec().intersects(e.getRec())) {if (myFish.level >= e.type) {System.out.println("碰撞了");e.x = -200;e.y = -200;GameUtils.count = GameUtils.count + e.count;} else {state = 2;}}}
}

16 暂停功能和重新开始功能实现

在GameApp类修改相关方法

void launch() {...//鼠标监听事件this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {super.mouseClicked(e);if (e.getButton() == 1 && state == 0) {//鼠标左键点击state = 1;repaint();}if (e.getButton() == 1 && (state == 2 || state == 3)) {reGame();state =1;}}});//键盘移动this.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {//键按压super.keyPressed(e);....if (e.getKeyCode() == KeyEvent.VK_SPACE) {//空格键switch (state){case 1:state =4;GameUtils.drawWord(getGraphics(),"游戏暂停!!!",Color.red,50,600,400);break;case 4:state =1;break;}}}...
}@Override
public void paint(Graphics g) {...switch (state) {case 0:break;case 1:myFish.paintSelf(graphics);logic();for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}if(isBoss){boss.x = boss.x + boss.dir*boss.speed;boss.paintSelf(graphics);if(boss.x < 0){graphics.setColor(Color.red);graphics.fillRect(boss.x,boss.y,2400,boss.height/30);}}break;case 2:for (Enemy e : GameUtils.enemyList) {e.paintSelf(graphics);}if(isBoss){boss.paintSelf(graphics);}break;case 3:myFish.paintSelf(graphics);break;case 4:return;default:}g.drawImage(offScreenImage, 0, 0, null);
}//重新开始
void reGame(){GameUtils.enemyList.clear();time = 0;myFish.level = 1;GameUtils.count = 0;myFish.x = 700;myFish.y = 500;myFish.width = 50;myFish.height = 50;boss = null;isBoss = false;
}

java小游戏-java小游戏-大鱼吃小鱼相关推荐

  1. 魔塔小游戏Java版项目

    这是一款童年游戏4399网站上的魔塔仿制版,回忆童年,入手开发项目,全方面的代码解析 更多项目: 1.飞机大战Java版(Java+JavaSwing+多线程结构) 2.Java之马里奥游戏 3.大鱼 ...

  2. java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)

    用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...

  3. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain-创建窗体 ​ BallJPanel- ...

  4. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  5. [原创]我的作品:我的迷宫小游戏Java版本

    这个小游戏是我选的第二个数据结构课程设计题目,觉得很有意思,也很有挑战性,对于一个自学Java的人来说写出这个小游戏我觉得无疑是一种鼓励,呵呵呵 实验题目: 随机生成一个迷宫图,迷宫大小为N*N,N预 ...

  6. 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...

  7. java演练 猜奇偶小游戏开发 DB游戏必输的设计

    java演练 猜奇偶小游戏开发 DB游戏必输的设计 阶段一,视频 https://www.ixigua.com/6870390946270446088?logTag=J_BVJOm_LIpQ-hWYY ...

  8. 猜物品游戏java编程_小猿圈Java初学者练习小案例:猜数字游戏

    对于Java初学者,如果没有好的引导,可能会觉得自己学什么都不好,学什么都不会,这个时候就要给他们一下小的案例,让他们去实践一下,让他们知道自己学的东西是可以用到的,小猿圈java讲师为你准备了Jav ...

  9. 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...

最新文章

  1. SQL标准结构化语言练习,SQL增删查改,SQL实现对bank数据的操作
  2. ARM Cortex-M3初探
  3. 技术分享 | CodeReview主要Review什么?
  4. Information Retrieval --- Outline
  5. WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
  6. 三菱gxworks3安装失败_三菱GX软件安装出错处理大全
  7. java键盘钩子_HOOK使用:全局键盘钩子
  8. 每日工作记录——W5500网口ping中出现的问题
  9. 大咖直播 | 大连理工赵纪军教授:人工智能算法用于团簇研究和势函数拟合
  10. 2019腾讯校园招聘面经
  11. 第16届东北四省赛题解
  12. 将整数翻译成英文(C++)
  13. 开源社区ECE:Elastic认证考试复盘总结134贴
  14. 如何在C加加的面向对象写游戏 我的世界
  15. 点击修改按钮,将数据显示在弹层窗口中,利用ajax实现
  16. Ubuntu下能连上无线但不能上网
  17. 头插法和尾插法建立单链表
  18. 开源工作流可以解决什么问题?
  19. gpgpu_CPU与GPGPU
  20. 大学物理·第3章动量守恒定律和能量守恒定律

热门文章

  1. 海康威视产品的token更新
  2. 【mathematica画三维空间坐标系箭头】
  3. WEB应用图片的格式,以及各自的特点和优化(一) by FungLeo
  4. 我的25年嵌入式生涯-周立功
  5. 《调色师手册:电影和视频调色专业技法(第2版)》——第1章 调色的工作流程 我要为电影院(电影)、广播(电视),还是网络调色?...
  6. 【现代信号处理】17 - 基于滤波器组的谱估计
  7. swiper 仿淘宝详情页面 视频图片切换
  8. 从零开始的MSP430单片机学习(一)
  9. [CTF] SQL注入的一些经验总结(未完待续)【更新:2022.11.25】
  10. 多臂赌博机问题代码实践