亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

貼一個簡單的擊鍵類Java小游戲

系統(tǒng) 2362 0
游戲內(nèi)容:單詞由窗口上部落下,玩家在單詞掉落到窗口底部前,輸入該單詞,輸入正確后,單詞消失。這只是個簡單的示例,沒有做成績統(tǒng)計等相關(guān)功能。

截圖:


    
package fun.dwords;
import ...;
public class DWords extends JFrame {
	String[] words = { "good", "slow", "goods", "goodbye", "bye", "byte",
			"bits", "sister", "monkey", "word", "world", "left", "leave" };
	JPanel panel;
	Image img = new ImageIcon("background/jessica_alba.jpg").getImage();

	public DWords() {
		panel = new JPanel() {
			@Override
			public void paint(Graphics g) {
				g.drawImage(img, 0, 0, null);
				super.paintChildren(g);
			}

		};
		add(panel);
		panel.setLayout(null);

		JPanel btnPanel = new JPanel();
		add(btnPanel, BorderLayout.SOUTH);
		JButton btnStart = new JButton("Start");
		btnPanel.add(btnStart);
		btnStart.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Thread thd = new Thread() {
					public void run() {
						downWords();
					}
				};
				thd.start();
				DWords.this.requestFocus();
			}
		});

		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(500, 400);
		setTitle("word  word  down...");
		setVisible(true);
		this.requestFocus();
	}

	public void resetWords() {
		Component[] lb = panel.getComponents();
		for (int i = 0; i < lb.length; i++) {
			WordLabel wl = (WordLabel) lb[i];
			wl.reset();
		}
	}

	public void downWords() {
		Random rand = new Random(System.currentTimeMillis());

		for (int i = 0; i < words.length; i++) {
			WordLabel wl = new WordLabel(words[i]);
			wl.setForeground(new Color(255, 0, 0));
			panel.add(wl);
			wl.setBounds(rand.nextInt(panel.getWidth() - 50), 0, 120, 25);
			panel.validate();

			addKeyListener(wl);
			Thread thd = new Thread(wl);
			thd.start();

			try {
				Thread.sleep(2000);
			} catch (InterruptedException ex) {
			}
		}
	}

	static String fmtHeader = "<html><span style=\"color:red\">";
	static String fmtMiddle = "</span><span style=\"color:black;\">";
	static String fmtTail = "</span></html>";

	private class WordLabel extends JLabel implements Runnable, KeyListener {
		volatile boolean removed = false;
		volatile String fmtWord;
		String word;
		int idx = 0;

		public WordLabel(String word) {
			super(fmtHeader + fmtMiddle + word + fmtTail);
			this.fmtWord = fmtHeader + fmtMiddle + word + fmtTail;
			this.word = word;
		}

		public void run() {
			int y = getY();
			while (y < getParent().getHeight()) {
				y += 2;

				setText(fmtWord);
				setLocation(getX(), y);

				if (removed) {
					break;
				}
				try {
					Thread.sleep(150);
				} catch (InterruptedException ex) {

				}
			}
			JPanel panel = (JPanel) getParent();
			panel.remove(this);
			DWords.this.removeKeyListener(this);
			panel.validate();
			panel.repaint();
		}

		@Override
		public void keyPressed(KeyEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void keyReleased(KeyEvent e) {
		}

		@Override
		public void keyTyped(KeyEvent e) {
			char c = e.getKeyChar();
			if (c == word.charAt(idx)) {
				idx++;
				if (idx == word.length()) {
					removed = true;
					DWords.this.resetWords();
				}
			} else {
				idx = 0;
			}

			if (idx > 0) {
				fmtWord = fmtHeader + word.substring(0, idx) + fmtMiddle
						+ word.substring(idx) + fmtTail;
			} else {
				fmtWord = fmtHeader + fmtMiddle + word.substring(idx) + fmtTail;
			}

		}

		public void reset() {
			idx = 0;
			fmtWord = fmtHeader + fmtMiddle + word.substring(idx) + fmtTail;
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final DWords dw = new DWords();
		new Thread() {
			public void run() {
				dw.downWords();
			}
		}.start();
	}

}

  

貼一個簡單的擊鍵類Java小游戲


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕在线观看一区二区 | 开心激情五月婷婷 | 干干操操 | 欧美 亚洲 中文字幕 | 久久久久久a亚洲欧洲aⅴ | 日本黄页在线观看 | 国产乱码在线精品可播放 | 四虎影视国产精品亚洲精品hd | a毛片免费全部在线播放毛 a毛片免费在线观看 | 日日影院 | 日韩精品一区二区三区四区 | 欧美一级片在线免费观看 | 国产高清在线精品一区免费97 | 99久久精品免费看国产四区 | 热99在线视频 | 69精品在线观看 | 美女被羞羞产奶视频网站 | 热伊人99re久久精品最新地 | 日韩欧美一区二区久久黑人 | 玖玖国产精品视频 | 免费精品国产自产拍在 | 免费看一毛一级毛片视频 | 青青草免费视频在线播放 | 国产日本亚洲 | 狠狠躁夜夜躁人人爽天天天天 | 久久精品国产欧美成人 | 日韩欧美一区二区在线 | 国产一级一级一级成人毛片 | 四虎免费影院4hu永久免费 | 热re久久精品国产99热 | 日韩欧美国产一区二区三区四区 | 亚洲国产精品国产自在在线 | 亚洲 欧美 日韩 综合 | 国产一区欧美二区 | 五月婷婷啪 | 精品无人区乱码1区2区 | 欧美另类黑人巨大videos | 日本中文字幕在线观看视频 | 91中文在线 | 日韩在线第三页 | 亚洲精品亚洲人成在线 |