游戏内容:单词由窗口上部落下,玩家在单词掉落到窗口底部前,输入该单词,输入正确后,单词消失。这只是个简单的示例,没有做成绩统计等相关功能。
截图:
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();
}
}
- 描述: 屏幕截图
- 大小: 114.9 KB
分享到:
相关推荐
java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏...
【文件名称列表】:由于提供的信息只有一个总文件名“java贪吃蛇小游戏代码java小游戏源码”,我们可以假设压缩包内包含了多个相关的Java类文件,如Game.java(主程序类)、Snake.java(蛇的类)、Food.java(食物类...
一个用Java写的连连看小游戏.zip一个用Java写的连连看小游戏.zip 一个用Java写的连连看小游戏.zip一个用Java写的连连看小游戏.zip 一个用Java写的连连看小游戏.zip一个用Java写的连连看小游戏.zip 一个用Java写的...
一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui ...
总的来说,【Java小游戏Jar】是一个体现Java编程基础和游戏开发原理的实例,对于初学者来说,它提供了一个实际应用所学知识的平台,同时也能锻炼解决问题和逻辑思考的能力。通过分析和改进这样的项目,开发者可以...
【Java小游戏 netbeans自作】是一个使用NetBeans IDE开发的项目,主要涵盖了Java编程语言、图形用户界面(GUI)设计以及游戏开发的基础知识。NetBeans是Java开发者常用的集成开发环境,它提供了丰富的代码提示、自动...
7个Java小游戏源代码 解压密码是:yykings
Java 类的小游戏是一种基于Java编程语言开发的简单游戏,它通常由一系列的Java类组成,这些类协同工作来实现游戏的逻辑、用户交互以及图形显示。对于初学者来说,学习和分析这样的小游戏代码是一个很好的实践机会,...
本篇文章将深入探讨一个基于Java的射击生存类小游戏——"ZombieCrisis",旨在为初学者提供一个学习和参考的实例。 首先,游戏的核心在于其逻辑控制和交互设计。"ZombieCrisis"的控制方式清晰明了,支持双人模式,...
java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发...
java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发...
【Java小游戏迷宫】是一款利用Java编程语言开发的娱乐项目,它展示了Java在游戏开发中的应用,特别是对于教育和初级开发者来说,这是一个很好的实践案例。Java作为一种跨平台的编程语言,具有面向对象、稳定性和高...
Java小游戏是一种基于Java编程语言开发的简单互动娱乐软件,通常用于教学、练习编程技能或提供休闲娱乐。在本压缩包中,包含三个小游戏:打砖块、大球吃小球和飞机大战。这些游戏展示了Java在图形用户界面(GUI)和...
Java简单小游戏代码主要涉及到的是Java编程语言的基础应用和游戏开发的基本概念。对于初学者来说,这是一个很好的实践项目,可以帮助理解面向对象编程的概念以及如何在实际项目中应用它们。以下是这个小游戏可能涉及...
从给定的代码片段来看,这是一款基于Java的简单打字练习小游戏,主要目标是通过键盘输入来消除从屏幕上方落下的字母。游戏利用了Java的Swing图形库和线程处理来实现动态效果和用户交互。下面我们将深入分析这款小...
标题中的“用java写的一个拼图小游戏”表明这是一个使用Java编程语言开发的简易拼图游戏。在Java中,我们可以利用其面向对象的特性,构建出模块化的游戏逻辑。游戏可能包含多个类,如主程序类、图片处理类、拼图逻辑...
Java2048是一个简单的基于Java语言的2048游戏。这个游戏的目的是通过使用键盘的方向键来移动所有的方块,并合并相同的方块...Java2048小游戏是一个简单而有趣的游戏,它可以帮助你锻炼逻辑思维能力,提高手眼协调能力。
java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发...
本文将深入探讨一个基于Java编写的连连看小游戏,它不仅为玩家提供娱乐,更是学习Java游戏编程的理想实例。 连连看游戏的基本原理是通过消除相同图案的对子来达到游戏目标。在Java实现中,我们首先需要创建游戏界面...