package CANVAS3;
import java.util.Random;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Ticker;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/**
* 產生一個0~9之間的隨機顏色的隨機數,點擊數字鍵相匹配,按錯扣2分,超時按1分
* 初始為5分
* @author Jakey
*
*/
public class Midlet2 extends MIDlet {
class GuessGame extends Canvas implements Runnable, CommandListener {
private String num = "-1";// 產生的隨機數
String action = "";
private int x = 0;
private int y = 0;
private int dots = 5;// 初始分數
private Thread th;
private boolean RUN = true;
private Random r = new Random();
private Command cmdReStart = new Command("重新開始", Command.SCREEN, 1);
public GuessGame() {
th = new Thread(this);
th.start();
}
public void commandAction(Command c, Displayable d) {
if (c == cmdReStart) {
RUN = true;
num = "-1";
dots = 5;
action = "";
this.removeCommand(cmdReStart);
th = new Thread(this);
th.start();
}
}
public void paint(Graphics g) {
this.setTitle("當前分數:"+(dots <= 0?0:dots));
g.setColor(255, 255, 255);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
Font f = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
Font.SIZE_LARGE);
g.setFont(f);
g.setColor(r.nextInt(256), r.nextInt(256), r.nextInt(256));
x = r.nextInt(this.getWidth());
y = r.nextInt(this.getHeight());
g.drawString(num.equals("-1") ? "" : num, x, y, Graphics.TOP
| Graphics.LEFT);
if (dots <= 0) {
//重新初始化
g.setColor(255, 255, 255);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(255, 0, 0);
g.drawString("您輸了", this.getWidth() / 2, this.getHeight() / 2,
Graphics.TOP | Graphics.HCENTER);
RUN = false;
th = null;
this.addCommand(cmdReStart);
this.setCommandListener(this);
}
}
public void keyPressed(int keyCode) {
if (dots > 0) {
action = this.getKeyName(keyCode);
if (num.equals(action)) {
dots += 1;
} else {
dots -= 2;
}
}
}
public void run() {
while (RUN) {
num = String.valueOf(r.nextInt(10));
repaint();
try {
Thread.currentThread().sleep(1000);
} catch (Exception e) {
}
if (action.equals("")) {// 控制如果超時則扣一分
dots--;
}
}
}
}
private Display dis;
private GuessGame gg = new GuessGame();
protected void startApp() throws MIDletStateChangeException {
dis = Display.getDisplay(this);
dis.setCurrent(gg);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
}
分享到:
相关推荐
自己写的一个很小很小的游戏雏形,大家可以参考一下
标题中的“一个用java写的小游戏”表明这是一个使用Java编程语言开发的简易游戏。Java是一种广泛应用的面向对象的编程语言,以其跨平台性、稳定性和高效性而受到开发者喜爱。在游戏开发领域,Java虽然不如C++或Unity...
标题 "C++写的小游戏" 描述了一款使用C++编程语言开发的全屏小游戏,游戏包含两个可操作的角色,并且玩家可以通过键盘进行控制。游戏中提供了操作按键的说明,确保玩家能够理解如何进行游戏。这款游戏设计为关卡式,...
三个数一样中大奖,两个数一样中小奖,自己随便写的,大家可以看一看。
【Python小游戏】是一种利用Python编程语言以及其游戏开发库Pygame构建的小型应用程序。Python以其简洁易懂的语法和丰富的库支持,成为了初学者和专业开发者制作游戏的热门选择。Pygame是Python的一个模块集合,提供...
标题中的“自己写的一个JS 小游戏和地图编辑器”表明这是一个使用JavaScript语言开发的交互式游戏和与其配套的地图编辑工具。JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它可以在用户的浏览器上运行...
【标题】:“基于原生JS写的一款网页小游戏” 在网页开发领域,JavaScript(JS)是一种不可或缺的编程语言,尤其在创建交互式用户界面和动态网页内容方面。本项目利用原生JS开发了一款名为“寻找四叶草”的简单网页...
总的来说,这款《自己写的飞机大战小游戏》是一个很好的学习实践项目,涵盖了C++编程基础、图形界面设计、面向对象编程、游戏逻辑实现等多个方面。通过参与这个游戏的开发,学习者能够将理论知识应用于实际,提升...
在"QML写的一个小游戏"中,我们可以推测这是一个利用QML技术创建的轻量级游戏,名为"神经猫"。游戏的核心玩法可能是基于玩家预测神经猫的行动路径,然后选择最短的步数来完成某种目标。这种类型的游戏通常涉及一定的...
以前自己写的扫雷小游戏 swing 写的不好,刚刚学习的可以参考
在“H5自写的小游戏源码分享”这个主题中,我们可以深入探讨HTML5在游戏开发领域的应用,以及如何通过学习这些源码来提升自己的编程技能。 HTML5的游戏开发主要依赖于其内置的Canvas元素,这是一个二维绘图表面,...
标题中的“自己写的一个打怪升级的小游戏”表明这是一个个人创作的、基于打怪和升级的游戏项目。在编程领域,这种类型的游戏通常涉及到基础的逻辑控制、角色状态管理以及简单的战斗算法。它可能是用Java语言编写的,...
《VC++与VS开发的贪吃蛇小游戏解析》 贪吃蛇是一款深受玩家喜爱的经典小游戏,它简单易懂,玩法多样。本项目采用Microsoft的Visual C++(VC++)和Visual Studio(VS)中的MFC(Microsoft Foundation Classes)库来...
是我自己写的一个扫雷小游戏,源代码 可以自己定制游戏级别
【标题】"C语言写的小游戏"揭示了这个压缩包中的主要内容是用C语言编程实现的一个小游戏。C语言是一种基础且强大的编程语言,以其高效、灵活性和广泛的应用范围而闻名。开发者选择C语言来编写游戏,可能是为了学习、...
标签中的“一个小游戏框架 写着玩 自己的黑历史”传达了一个非常积极和开放的态度。尽管作者谦虚地称这个作品为“黑历史”,但其实这是一个非常宝贵的开始。在编程的世界里,每一个项目都是对知识的巩固和对未来技术...
这款"Java高手写的Java小游戏.rar"提供了一套完整的源代码,是学习Java编程和游戏开发的宝贵资源。下面将详细介绍其中可能涉及的知识点,以及如何利用这些资源进行学习。 1. **Java基础知识**:首先,你需要了解...
这是一款七巧板小游戏,目前还在开发过程中,现在暂时先将简单程序放在这,欢迎批评指导(没有放置源代码)
在这个场景中,我们讨论的是使用Android Studio开发的一个基于Java语言的小游戏——轮船大战。 Java是Android平台的主要编程语言,它以其“一次编写,到处运行”的特性而闻名。在Android Studio中,开发者可以利用...
在“在MFC下写个效果不错的一个飞机小游戏”的项目中,我们可以深入探讨以下几个关键知识点: 1. **MFC基础**:MFC是基于面向对象编程的,它将Windows API的各种功能封装到一系列的类中,如CWinApp、CWnd、CDialog...