国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現的打地鼠小游戲完整示例【附源碼下載】

Java實現的打地鼠小游戲完整示例【附源碼下載】

2021-05-12 15:13竹有節 Java教程

這篇文章主要介紹了Java實現的打地鼠小游戲,結合完整實例形式分析了Java多線程操作及鍵盤按鍵響應實現的打地鼠游戲功能相關操作技巧,需要的朋友可以參考下

本文實例講述了java實現的打地鼠小游戲。分享給大家供大家參考,具體如下:

這里涉及到java線程和gui的相關知識,一個簡單的java小游戲打地鼠,有興趣的朋友可以優化一下。先來看看運行效果:

Java實現的打地鼠小游戲完整示例【附源碼下載】

具體代碼:

mouse.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
import java.awt.color;
import java.awt.font;
import java.awt.graphics;
import java.awt.image;
import java.awt.toolkit;
import java.awt.event.keyevent;
import java.util.hashmap;
import java.util.map;
import java.util.random;
public class mouse {
  private int x, y;
  private int tab;
  private int data;
  random rd = new random();
  private boolean live = true;
  private int mousetime = 10;
  private mouseclient mc;
  private static toolkit tk = toolkit.getdefaulttoolkit();
  private static image[] imgs = null;
  private static map<image, string> imgkv = new hashmap<image, string>();
  static {
    imgs = new image[] {
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/a.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/b.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/c.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/d.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/e.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/f.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/g.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/h.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/i.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/j.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/k.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/l.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/m.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/n.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/o.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/p.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/q.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/r.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/s.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/t.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/u.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/v.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/w.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/x.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/y.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/z.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/0.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/1.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/2.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/3.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/4.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/5.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/6.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/7.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/8.png")),
        tk.getimage(mouse.class.getclassloader().getresource(
            "images/9.png"))
    };
    imgkv.put(imgs[0], "a");
    imgkv.put(imgs[1], "b");
    imgkv.put(imgs[2], "c");
    imgkv.put(imgs[3], "d");
    imgkv.put(imgs[4], "e");
    imgkv.put(imgs[5], "f");
    imgkv.put(imgs[6], "g");
    imgkv.put(imgs[7], "h");
    imgkv.put(imgs[8], "i");
    imgkv.put(imgs[9], "j");
    imgkv.put(imgs[10], "k");
    imgkv.put(imgs[11], "l");
    imgkv.put(imgs[12], "m");
    imgkv.put(imgs[13], "n");
    imgkv.put(imgs[14], "o");
    imgkv.put(imgs[15], "p");
    imgkv.put(imgs[16], "q");
    imgkv.put(imgs[17], "r");
    imgkv.put(imgs[18], "s");
    imgkv.put(imgs[19], "t");
    imgkv.put(imgs[20], "u");
    imgkv.put(imgs[21], "v");
    imgkv.put(imgs[22], "w");
    imgkv.put(imgs[23], "x");
    imgkv.put(imgs[24], "y");
    imgkv.put(imgs[25], "z");
    imgkv.put(imgs[26], "0");
    imgkv.put(imgs[27], "1");
    imgkv.put(imgs[28], "2");
    imgkv.put(imgs[29], "3");
    imgkv.put(imgs[30], "4");
    imgkv.put(imgs[31], "5");
    imgkv.put(imgs[32], "6");
    imgkv.put(imgs[33], "7");
    imgkv.put(imgs[34], "8");
    imgkv.put(imgs[35], "9");
  }
  public mouse(int x, int y, int tab, mouseclient mc) {
    this.x = x;
    this.y = y;
    this.tab = tab;
    this.mc = mc;
    data = rd.nextint(36);
    new thread(new mousetime()).start();
  }
  public void draw(graphics g) {
    if (!live) {
      mc.mouses.remove(this);
      mc.tab[tab] = 0;
      return;
    }
    g.drawimage(imgs[data], x, y, null);
    color c = g.getcolor();
    g.setcolor(color.gray);
    g.setfont(new font(null, 1, 40));
    g.drawstring("" + mousetime, x + 50, y + 10);
    if (mousetime <= 0) {
      this.live = false;
      mc.eclipsetime++;
    }
  }
  public boolean keyreleased(keyevent e) {
    int key = imgkv.get(imgs[data]).charat(0);
    if (e.getkeycode() == key) {
      system.out.println(key);
      mc.mousecount++;
      this.live = false;
      return true;
    }
    return false;
  }
  private class mousetime implements runnable {
    public void run() {
      while (true) {
        mousetime--;
        try {
          thread.sleep(1000);
        } catch (interruptedexception e) {
          e.printstacktrace();
        }
      }
    }
  }
}

mouseclient.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import java.awt.color;
import java.awt.frame;
import java.awt.graphics;
import java.awt.image;
import java.awt.event.keyadapter;
import java.awt.event.keyevent;
import java.awt.event.windowadapter;
import java.awt.event.windowevent;
import java.util.arraylist;
import java.util.list;
import java.util.random;
public class mouseclient extends frame {
  /*
   * 整個游戲界面的規格
   */
  public static final int game_width = 1000;
  public static final int game_height = 700;
  public static int mousecount;
  public static int count;
  public static int gametime;
  public static int eclipsetime;
  list<mouse> mouses = new arraylist<mouse>();
  random rd = new random();
  public int initmousecount = 2;// 同時顯示的地鼠數
  public int[] tab = new int[10];// 標記坑里是否有地鼠
  image offscreenimage = null;
  /*
   * 本方法顯示主窗口
   */
  public void launchframe() {
    this.setlocation(200, 10);
    this.setsize(game_width, game_height);
    this.settitle("mouseclient");
    this.addwindowlistener(new windowadapter() {
      public void windowclosing(windowevent e) {
        system.exit(0);
      }
    });
    this.setvisible(true);
    this.setbackground(color.green);
    this.setresizable(false);
    this.addkeylistener(new keymonitor());
    new thread(new paintthread()).start();
    new thread(new gametime()).start();
  }
  private class gametime implements runnable {
    public void run() {
      while (true) {
        gametime++;
        try {
          thread.sleep(1000);
        } catch (interruptedexception e) {
          e.printstacktrace();
        }
      }
    }
  }
  private class paintthread implements runnable {
    public void run() {
      while (true) {
        repaint();
        try {
          thread.sleep(10);
        } catch (interruptedexception e) {
          e.printstacktrace();
        }
      }
    }
  }
  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.green);
    goffscreen.fillrect(0, 0, game_width, game_height);
    goffscreen.setcolor(c);
    paint(goffscreen);
    g.drawimage(offscreenimage, 0, 0, null);
  }
  public void paint(graphics g) {
    color c = g.getcolor();
    g.setcolor(color.gray);
    for (int i = 1; i <= 3; i++)
      for (int j = 1; j <= 3; j++)
        g.filloval(game_width / 4 * i - 60, game_height / 4 * j - 25,
            120, 50);
    g.setcolor(c);
    g.drawstring("擊打數:" + count, 20, 40);
    g.drawstring("擊中數:" + mousecount, 20, 60);
    g.drawstring("逃跑數:" + eclipsetime + "", 20, 80);
    g.drawstring("時間:" + gametime + "s", 20, 100);
    if (mousecount >= 80)
      initmousecount = 8;
    else if (mousecount >= 50)
      initmousecount = 6;
    else if (mousecount >= 20)
      initmousecount = 4;
    int temp;
    while (mouses.size() < initmousecount) {
      temp = rd.nextint(9);
      while (tab[temp] == 1) {
        temp++;
        if (temp == 9)
          temp = 0;
      }
      tab[temp] = 1;
      mouses.add(new mouse(game_width / 4 * (temp % 3 + 1) - 70,
          game_height / 4 * (temp / 3 + 1) - 100, temp, this));
    }
    for (int i = 0; i < mouses.size(); i++) {
      mouse m = mouses.get(i);
      m.draw(g);
    }
  }
  public static void main(string[] args) {
    mouseclient km = new mouseclient();
    km.launchframe();
  }
  private class keymonitor extends keyadapter {
    public void keyreleased(keyevent e) {
      system.out.println(e.getkeycode());
      count++;
      for (int i = 0; i < mouses.size(); i++) {
        if (mouses.get(i).keyreleased(e))
          break;
      }
    }
  }
}

附:完整實例代碼點擊此處

希望本文所述對大家java程序設計有所幫助。

原文鏈接:https://download.csdn.net/download/u014307823/9160981

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久免费看精品国产 | 国产片av | 日韩第一页 | 日韩在线资源 | 国产精品久久久久久久久久ktv | 99久久国产露脸国语对白 | 国产在线视频一区 | 午夜高清视频 | 日韩欧美一区二区三区久久婷婷 | 日韩欧美精品一区二区 | 成人av小说 | 国产免费一区二区 | 久久久激情 | 日韩欧美国产一区二区 | 欧美激情一区二区三级高清视频 | 自拍视频在线观看 | 激情五月婷婷综合 | 成人精品 | 中文字幕在线影院 | 亚洲精品国产综合区久久久久久久 | 在线精品一区 | 亚洲成人福利网 | 成人午夜性a一级毛片免费看 | 99热视| 青青操天天干 | 欧洲精品久久久 | 久久国产亚洲 | 天堂av2020| 国产精品一区二区三区在线播放 | 久久精品亚洲成在人线av网址 | 天堂免费在线 | 国产精品九九九 | 在线播放国产精品 | 精品久久久久一区二区国产 | 中文字幕一区二区三区乱码图片 | 国产一区二区三区四区在线观看 | 欧美一区永久视频免费观看 | 久在线 | 中文字幕视频在线观看 | 激情五月婷婷 | 中文在线观看视频 |