zoukankan
html css js c++ java
在手机上动起来的文字
主程序:
/**/
/*
* GameMIDlet.java
*
* Created on 2006年4月28日, 下午9:31
*/
import
javax.microedition.midlet.MIDlet;
import
javax.microedition.lcdui.
*
;
import
javax.microedition.lcdui.Display;
import
javax.microedition.midlet.MIDletStateChangeException;
/** */
/**
*
*
@author
hero
*
@version
*/
public
class
GameMIDlet
extends
MIDlet
{
static
GameMIDlet instance;
static
Display display;
private
GameScreen gameScreen;
public
GameMIDlet()
{
instance
=
this
;
gameScreen
=
new
GameScreen(
false
);
//
产生实例
display
=
Display.getDisplay(
this
);
}
protected
void
startApp()
throws
MIDletStateChangeException
{
gameScreen.start();
//
启动线程,不知道什么原因,在这一句出现stop的现象,有可能是自己用F5时,设置了断点
display.setCurrent(gameScreen);
}
protected
void
pauseApp()
{
gameScreen.stop();
}
public
void
destroyApp(
boolean
flag)
throws
MIDletStateChangeException
{
gameScreen.stop();
}
}
次程序:
/**/
/*
* GameScreen.java
*
* Created on 2006年4月28日, 下午10:22
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
import
javax.microedition.lcdui.
*
;
import
javax.microedition.lcdui.game.
*
;
import
java.util.Random;
/** */
/**
*
*
@author
hero
*/
final
class
GameScreen
extends
GameCanvas
implements
Runnable
{
/** */
/**
Creates a new instance of GameScreen
*/
private
Graphics graphics;
//
保存图形环境实例
private
boolean
runningFlag
=
false
;
//
线程运行标志
private
static
final
long
TIME_PER_FRAME
=
100
;
//
每一帧的周期
private
int
width;
//
屏幕宽度
private
int
height;
//
屏幕高度
private
Random random
=
new
Random();
//
设置一个随机数;
public
static
final
int
BLUE
=
0x000000ff
;
private
int
x,y,vx,vy;
String str
=
"
J2ME游戏世界
"
;
public
GameScreen(
boolean
flag)
{
super
(flag);
graphics
=
getGraphics();
//
取得图形环境实例
width
=
getWidth();
height
=
getHeight();
init();
}
void
init()
{
x
=
width
/
2
;
y
=
height
/
2
;
vx
=
random.nextInt(
2
)
+
1
;
//
nextInt(int i)定义在cldc 1.1中
vy
=
random.nextInt(
2
)
+
1
;
}
private
void
input()
{
}
private
void
logic()
{
x
+=
vx;
y
+=
vy;
Font font
=
graphics.getFont();
if
(x
<=
0
||
x
+
font.stringWidth(str)
>=
width)
{
vx
=-
vx;
}
if
(y
<=
0
||
y
+
20
>=
height)
{
vy
=-
vy;
}
}
private
void
render(Graphics g)
{
g.setColor(BLUE);
g.fillRect(
0
,
0
, width, height);
g.setColor(
0x00ffffff
);
g.drawString(str,x,y,Graphics.LEFT
|
Graphics.TOP);
}
public
synchronized
void
start()
{
if
(
!
runningFlag)
{
runningFlag
=
true
;
Thread th
=
new
Thread(
this
);
//
启动线程
th.start();
}
}
public
synchronized
void
stop()
{
runningFlag
=
false
;
}
public
void
run()
{
while
(runningFlag)
{
long
startTime
=
System.currentTimeMillis();
input();
logic();
render(graphics);
flushGraphics();
long
elapsedTime
=
System.currentTimeMillis()
-
startTime;
if
(elapsedTime
<
TIME_PER_FRAME)
{
try
{
Thread.sleep(TIME_PER_FRAME
-
elapsedTime);
}
catch
(InterruptedException ex)
{
}
}
}
}
}
查看全文
相关阅读:
10.26 饮食
10.25 饮食
10.24饮食
关于 wpf 的ICommand 的 CanExecute CanExecuteChanged func action的认识
2018 10 23
[Java]先有Class还是先有Object?
[Java]如何制作一个WordCount-Plus的Plugin
[java] 软工实践WordCount-Plus
[java]基本数据类型
[java]第一个程序
原文地址:https://www.cnblogs.com/Dreamfly/p/388479.html
最新文章
随便说说堆——二项堆概念与实现
Mininet实验 命令延伸实验扩展
随便说说堆——二叉堆概念与实现
Mininet实验 自定义拓扑结构
Mininet实验 源码安装mininet
能否通过两种遍历序列画出一棵树?
bzoj1013 [JSOI2008]球形空间产生器sphere
bzoj3505 [Cqoi2014]数三角形
bzoj1385 [Baltic2000]Division expression
bzoj2190 [SDOI2008]仪仗队
热门文章
bzoj1477 青蛙的约会
bzoj1270 [BeijingWc2008]雷涛的小猫
bzoj1059 [ZJOI2007]矩阵游戏
bzoj1589 [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
bzoj4358 premu
bzoj1180 tree
double to string 损失精度的问题
加油加油加油
版本号如何比较?
wpf datagrid 如何自定义行的控件实例,(textbox 并选中则全选)
Copyright © 2011-2022 走看看