java飞机大战实现了什么技术

吴珊珊珊 2021-09-18 16:36 239 次浏览 赞 58

最新问答

  • honeybackkom

    1 package cn.xiaocangtian.Util;
    2
    3 import java.awt.Frame;
    4 import java.awt.Graphics;
    5 import java.awt.Image;
    6 import java.awt.event.WindowAdapter;
    7 import java.awt.event.WindowEvent;
    8
    9
    10 public class MyFrame extends Frame {
    11
    12 //加载窗口
    13 public void launchFrame() {
    14 setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT); //设置窗口大小
    15 setLocation(100, 100); //设置左上角坐标,开始位置, 也就是窗口开始位置
    16 setVisible(true); //设置为可见(默认为不可见)
    17
    18 //启动重画线程
    19 new PaintThread().start();
    20
    21 //匿名内部类---用来关闭窗口
    22 addWindowListener(new WindowAdapter() {
    23 @Override
    24 public void windowClosing(WindowEvent e) {
    25 System.exit(0);
    26 }
    27 });
    28
    29 }
    30
    31 //双缓冲技术解决屏幕闪烁
    32 private Image offScreenImage = null; //利用双缓冲技术消除闪烁
    33 public void update(Graphics g) {
    34 if (offScreenImage == null)
    35 offScreenImage = this.createImage(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);
    36
    37 Graphics gOff = offScreenImage.getGraphics();
    38
    39 paint(gOff);
    40 g.drawImage(offScreenImage, 0, 0, null);
    41 }
    42
    43 /**
    44 * 定义一个重画窗口的线程类
    45 * 是一个内部类(方便访问外部类属性)
    46 */
    47 class PaintThread extends Thread {
    48 public void run() {
    49 while (true) {
    50 repaint(); //重画
    51 try {
    52 Thread.sleep(40); //1s = 1000ms
    53 } catch (InterruptedException e) {
    54 e.printStackTrace();
    55 }
    56 }
    57 }
    58 }
    59
    60 }
    复制代

    浏览 447赞 119时间 2023-10-03
  • 饭兜兜兜得牢

    蝶舞飞花,FJ蝶舞飞花

    浏览 470赞 74时间 2022-12-20
  • 郁敏0729

    蝶舞飞花,FJ蝶舞飞花

    浏览 241赞 127时间 2022-10-30
  • 蔻蔻妖妖柒

    可以看看《这样学java不枯燥》教程,里面有详解

    浏览 165赞 75时间 2022-01-09

java飞机大战实现了什么技术