最后
分布式技术专题+面试解析+相关的手写和学习的笔记pdf
还有更多Java笔记分享如下:
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取


撞到障碍物,游戏结束

代码实现
游戏启动类
public class Main { public static void main(String[] args) { Cuckoo frame = new Cuckoo(); while (true){ try { Thread.sleep(100); if(!frame.crash){ frame.repaint(); } } catch (InterruptedException e) { e.printStackTrace(); } } } }
讯享网
核心类
讯享网 /\*\* \* 1.窗口 \* 2.背景 \* 3.移动墙 \* 4.布谷鸟 \* 5.障碍物 \* 6.背景音乐 \* 7.音效 \* 8.欢迎界面 \* 9.game over \*/ public class Cuckoo extends Frame { private int step; private int score; private int height; private int moveLeft; private int pipeMove; boolean crash = false; private boolean over = false; private boolean start = false; private static int bird_y = 270; private static final int L_X = 800; private static final int L_Y = 200; private static final int SPEED = 2; private static final int BIRD_X = 100; private static final int GAME_X_Y_0 = 0; private static final int GAME_WIDTH = 288; private static final int GAME_HEIGHT = 512; private static final int PIPE_WIDTH = ImageMgr.pipe.getWidth(); private static final int PIPE_HEIGHT = ImageMgr.pipe.getHeight(); private static final int READY_WIDTH = ImageMgr.ready.getWidth(); private static final int READY_HEIGHT = ImageMgr.ready.getHeight(); private static final int START_WIDTH = ImageMgr.start.getWidth(); private static final int BIRD_WIDTH = ImageMgr.bird[0].getWidth(); private static final int BIRD_HEIGHT = ImageMgr.bird[0].getWidth(); private static final int GROUND_HEIGHT = ImageMgr.ground.getHeight(); private static final int GAME_OVER_WIDTH = ImageMgr.gameOver.getWidth(); private static final int GAME_OVER_HEIGHT = ImageMgr.gameOver.getHeight(); private static final int BACKGROUND_HEIGHT = ImageMgr.background.getHeight(); private static Image offScreenImage; private static Rectangle pipeRectangle1; private static Rectangle pipeRectangle2; private static Rectangle birdRectangle; Cuckoo(){ setVisible(true); setResizable(false); //setTitle("cuckoo"); setBounds(L_X, L_Y,GAME_WIDTH,GAME_HEIGHT); addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()){ case KeyEvent.VK_SPACE : start = true;break; case KeyEvent.VK_ENTER : reopen();break; } } @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_UP) { bird_y -= 20; } } }); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } @Override public void update(Graphics g) { if(offScreenImage == null){ offScreenImage = this.createImage(GAME_WIDTH,GAME_HEIGHT); } Graphics gOffScreen = offScreenImage.getGraphics(); Color c = gOffScreen.getColor(); gOffScreen.setColor(Color.BLACK); gOffScreen.fillRect(0,0,GAME_WIDTH,GAME_HEIGHT); gOffScreen.setColor(c); paint(gOffScreen); g.drawImage(offScreenImage,0,0,null); } @Override public void paint(Graphics g) { background(g); ground(g); start(g); if(start){ bird(g); pipe(g); colliedWith(); gameOver(g); score(g); } } //如果碰撞后,可以嗯enter键重开 private void reopen(){ if(crash){ score = 0; over = false; crash = false; start = false; moveLeft = 0; pipeMove = 0; //bird\_y = 270;//继上次死的位置开始 } } private void score(Graphics g){ Font font = new Font("微软雅黑",Font.BOLD,18); g.setFont(font); Color c = g.getColor(); g.setColor(Color.lightGray); g.drawString("score " + score,20,70); g.setColor(c); } private void background(Graphics g){ g.drawImage(ImageMgr.background, GAME_X_Y_0 - moveLeft,GAME_X_Y_0, GAME_WIDTH - moveLeft,GAME_HEIGHT, GAME_X_Y_0, GAME_X_Y_0, GAME_WIDTH, GAME_HEIGHT, null); g.drawImage(ImageMgr.background, GAME_WIDTH-1 - moveLeft,GAME_X_Y_0, GAME_WIDTH\*2 - moveLeft, GAME_HEIGHT, GAME_X_Y_0, GAME_X_Y_0, GAME_WIDTH, GAME_HEIGHT, null); moveLeft += SPEED; //游戏启动计分 if(start && moveLeft % 100 == 0){ score += 1; } if(moveLeft >= GAME_WIDTH){ moveLeft = 0; } } private void ground(Graphics g){ g.drawImage(ImageMgr.ground,0,BACKGROUND_HEIGHT - GROUND_HEIGHT,null); } private void bird(Graphics g){ Color c = g.getColor(); g.setColor(Color.BLUE); g.drawRect(BIRD_X, bird_y,BIRD_WIDTH,BIRD_HEIGHT); g.setColor(c); g.drawImage(ImageMgr.bird[step++], BIRD_X, bird_y,null); if(step >= ImageMgr.bird.length){ step = 0; } if(start){ bird_y += 4; } birdRectangle = new Rectangle(BIRD_X,bird_y,BIRD_WIDTH,BIRD_HEIGHT); } private void pipe(Graphics g){ drawPipe(g); pipeMove += SPEED; if(pipeMove >= GAME_WIDTH + PIPE_WIDTH){ pipeMove = 0; Random ran = new Random(); height = ran.nextInt(10)\*20; drawPipe(g); } # 总结 大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。 麻烦帮忙转发一下这篇文章+关注我  > 本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ffa03fab5e56a57acb)收录 [需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ffa03fab5e56a57acb) 中...(img-vaJiOXFS-53)] > 本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ffa03fab5e56a57acb)收录 [需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ffa03fab5e56a57acb)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/64849.html