资源简介
gui学习成果,通过猜单词来决定任务的生存。有七次猜单词中的字母的机会,如果七次以内猜出单词中所有字母,则胜利。反之,任务左右摇摆而死去。
代码片段和文件信息
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KillerGame extends Jframe {
private ManPanel canvas = new ManPanel();
public KillerGame() {
this.add(canvas BorderLayout.CENTER); //将人物放入界面
}
public static void main(String[] args) {
Jframe frame = new KillerGame();
frame.settitle(“KillerGame“);
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
frame.setSize(450 280);
frame.setVisible(true);
}
class ManPanel extends JPanel {
int ballRadius = 10;
int leftAngle = 120;
int rightAngle = 60;
int angle = 90; // 从中间开始摆动
int angleDelta = 1; // 摆动角度的速度
int delay = 100;
Timer timer = new Timer(delay new ActionListener() {
public void actionPerformed(ActionEvent e) {
repaint();
}
});
ManPanel() {
setNewHiddenWord();
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
char letter = e.getKeyChar();
if (letter == KeyEvent.VK_ENTER) {
// 新游戏开始
setNewHiddenWord();
} else if (Character.isLowerCase(letter)) {
processAGuessedLetter(letter);
if (numberOfMisses == 7)
timer.start();
else
timer.stop();
}
repaint();
}
});
setFocusable(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setFont(new Font(“TimesRoman“ Font.BOLD 20));
if (isFinished) {
//显示所猜的单词
g.drawString(“The word is: “ + guessedWord.toString() 120
210);
g.drawString(“To continue the game press ENTER“ 120 230);
} else {
// 显示所猜的单词
g.drawString(“Guess a word: “ + guessedWord.toString() 120
210);
if (numberOfMisses > 0)
g.drawString(“Missed letters: “ + missedLetters.toString()
120 230);
}
g.drawArc(20 200 80 40 0 180); // Draw the base
g.drawLine(20 + 40 200 20 + 40 20); // Draw the pole
g.drawLine(20 + 40 20 20 + 40 + 100 20); // Draw the hanger
if (numberOfMisses == 7) {
if (angle < rightAngle)
angleDelta = 1;
else if (angle > leftAngle)
angleDelta = -1;
angle += angleDelta;
}
if (numberOfMisses < 1)
return;
int x1 = 20 + 40 + 100;
int y1 = 20;
int radius = 20;
int x = x1 + (int) (radius * Math.cos(Math.toRadians(angle)));
int y = y1 + (int) (radius * Math.sin(Math.toRadians(angle)));
g.drawLine(20 + 40 + 100 20 x y); // Draw the hanger
if (numberOfMisses < 2)
return;
double length = 20 + 20;
x = x1 + (int) (length * Math.cos(Math.toRadians(an
- 上一篇:Ping程序的设计与实现
- 下一篇:android ChiceScanGun.rar
相关资源
- 基于局域网的扫雷对战游戏的设计与
- Java游戏源码
- 我的Android进阶之旅------>Android疯狂连
- Unity3D AR生存射击游戏 完整源码 AR S
- 用java编写的火柴游戏
- JAVA做MVC架构的扫雷游戏
- java拼图游戏(有难度选择)
- JAVA程序小游戏五子棋大作业
- Java五子棋游戏(完整项目,eclipse直接
- 用Java实现的泡泡龙游戏
- android打地鼠源码
- android 写的猜纸牌游戏源码
- java做的一个简单的名字大战游戏
- java五子棋游戏课程设计含源代码
- android游戏源代码之魔塔2013
- Java零基础开发桌球小游戏项目(完整
- JSP简单的猜字游戏
- 足球游戏Java
- java写的雷电(代码+论文+幻灯片+效果
- java框架实现泡泡龙游戏
- 某游戏部的java工程师笔试题
- JAVA贪吃蛇游戏毕业设计(源代码+论文
- java图形界面猜数游戏
- 手机游戏 涂鸦跳跃 Java版
- 使用java程序编写的拼图游戏
- 拼图游戏 实验报告 完整报告
- java 拼图源课程设计
- 基于Swing界面的打地鼠小游戏完善版本
- 人机拿火柴游戏java代码
- 基于Java的贪吃蛇游戏完整毕业论文匹
评论
共有 条评论