游戏内容:单词由窗口上部落下,玩家在单词掉落到窗口底部前,输入该单词,输入正确后,单词消失。这只是个简单的示例,没有做成绩统计等相关功能。
截图:
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();
}
}
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0007/5318/f1cab139-5bdd-3251-b1a7-cc4214d293b7-thumb.png)
- 描述: 屏幕截图
- 大小: 114.9 KB
分享到:
相关推荐
【文件名称列表】:由于提供的信息只有一个总文件名“java贪吃蛇小游戏代码java小游戏源码”,我们可以假设压缩包内包含了多个相关的Java类文件,如Game.java(主程序类)、Snake.java(蛇的类)、Food.java(食物类...
一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui ...
java简易小游戏.zipjava简易小游戏.zipjava简易小游戏.zipjava简易小游戏.zip java简易小游戏.zipjava简易小游戏.zipjava简易小游戏.zipjava简易小游戏.zip java简易小游戏.zipjava简易小游戏.zipjava简易小游戏.zip...
总的来说,【Java小游戏Jar】是一个体现Java编程基础和游戏开发原理的实例,对于初学者来说,它提供了一个实际应用所学知识的平台,同时也能锻炼解决问题和逻辑思考的能力。通过分析和改进这样的项目,开发者可以...
【Java小游戏 netbeans自作】是一个使用NetBeans IDE开发的项目,主要涵盖了Java编程语言、图形用户界面(GUI)设计以及游戏开发的基础知识。NetBeans是Java开发者常用的集成开发环境,它提供了丰富的代码提示、自动...
Java编程语言在游戏开发领域有着广泛的...对于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在图形用户界面(GUI)和...
Java简单小游戏代码主要涉及到的是Java编程语言的基础应用和游戏开发的基本概念。对于初学者来说,这是一个很好的实践项目,可以帮助理解面向对象编程的概念以及如何在实际项目中应用它们。以下是这个小游戏可能涉及...
本篇文章将深入解析一个由Java编写的射击类小游戏,它具有简洁的界面和易上手的操作,同时也展示了Java在游戏开发中的应用。 首先,我们要明白,Java是一种跨平台的编程语言,其“一次编写,到处运行”的特性使得...
Java2048是一个简单的基于Java语言的2048游戏。这个游戏的目的是通过使用键盘的方向键来移动所有的方块,并合并相同的方块...Java2048小游戏是一个简单而有趣的游戏,它可以帮助你锻炼逻辑思维能力,提高手眼协调能力。
java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发...
在雷电游戏中,通常有两到三个线程:一个用于游戏逻辑(如飞机移动、子弹飞行、敌机生成),一个用于渲染屏幕更新,还有一个可能用于处理用户输入。使用Thread类或Runnable接口可以创建并管理这些线程,保证游戏的...