📄 canvas01_dishutu02.java
字号:
package ch05;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class canvas01_dishutu02
extends GameCanvas {
Image image, kk;
Random r;
Graphics g = getGraphics();
//获得整个屏幕的宽度和高度
int W = getWidth();
int H = getHeight();
private int w = W / 3, h = H / 3;
//设置游戏的速度快慢
static int sleep = 2000;
//声明2个移动的参数
static int i, j;
//声明一个控制的数组;
static int array, arraa, junzhi;
//声明一个控制绘制的Timer对象
private Timer tm;
//声明一个实现绘制的TimerTask对象
private TimerTask tt;
public canvas01_dishutu02() {
super(false);
//执行绘制线程
tm = new Timer();
tt = new DrawTask();
tm.scheduleAtFixedRate(tt, 0, sleep);
}
//启动绘制
public void paint() {
render(g);
}
//刷新矩形的画法
void start(Graphics g) {
g.setColor(0x80ffff);
g.fillRect(0, 0, W, H);
g.setColor(0xff0000);
g.drawLine(0, H / 3, W, H / 3);
g.drawLine(0, 2 * H / 3, W, 2 * H / 3);
g.drawLine(W / 3, 0, W / 3, H);
g.drawLine(2 * W / 3, 0, 2 * W / 3, H);
g.setColor(0x00c000);
g.drawArc(0, H / 3, W / 3, H / 3, 0, 360);
g.drawArc(0, 0, W / 3, H / 3, 0, 360);
g.drawArc(W / 3, 0, W / 3, H / 3, 0, 360);
g.drawArc(2 * W / 3, 0, W / 3, H / 3, 0, 360);
g.drawArc(W / 3, H / 3, W / 3, H / 3, 0, 360);
g.drawArc(2 * W / 3, H / 3, W / 3, H / 3, 0, 360);
g.drawArc(0, 2 * H / 3, W / 3, H / 3, 0, 360);
g.drawArc(W / 3, 2 * H / 3, W / 3, H / 3, 0, 360);
g.drawArc(2 * W / 3, 2 * H / 3, W / 3, H / 3, 0, 360);
flushGraphics();
}
//画地鼠的图形
void mouse(Graphics g) {
r = new Random();
i = ( (r.nextInt() >>> 1) % 3) * w;
j = ( (r.nextInt() >>> 1) % 3) * h;
g.setColor(0xff);
g.drawLine( (int) 0.8 * w / 7 + i, (int) 5.5 * h / 8 + j,
(int) 2.3 * w / 7 + i,
(int) 4.5 * h / 8 + j);
g.drawLine( (int) 0.8 * w / 7 + i, (int) 5.5 * h / 8 + j,
(int) 2.5 * w / 7 + i,
(int) 5.5 * h / 8 + j);
g.drawArc( (int) 1.8 * w / 7 + i, 2 * h / 8 + j, (int) 2.5 * w / 7,
(int) 2.5 * h / 8, 305, 330);
g.drawArc( (int) 2.1 * w / 7 + i, 4 * h / 8 + j, (int) 2.5 * w / 7,
(int) 2.5 * h / 8, 180, 300);
g.drawArc( (int) 3.7 * w / 7 + i, (int) 2.2 * h / 8 + j,
(int) 3.1 * w / 7,
(int) 4.2 * h / 8, 300, 230);
g.drawArc( (int) 6 * w / 7 + i, (int) 3.4 * h / 8 + j, (int) 1.9 * w / 7,
(int) 3.7 * h / 8, 290, 230);
g.fillArc( (int) 1.7 * w / 7 + i, (int) 4.6 * h / 8 + j, (int) 1 * w / 7,
(int) 1 * h / 8, 0, 360);
flushGraphics();
}
//打中后的图形
void jiang(Graphics g) {
array++;
try {
image = Image.createImage("/icons/background/star.png");
g.drawImage(image, 3 * w / 8 + i, 3 * h / 8 + j, 0);
}
catch (Exception oo) {
}
flushGraphics();
}
//没打中后的图形
void fa(Graphics g) {
try {
image = Image.createImage("/icons/rankrecord/splash.png");
g.drawImage(image, w / 8 + i, 2 * h / 8 + j, 0);
}
catch (Exception oo) {
}
flushGraphics();
}
/* 3.绘制方法 */
void render(Graphics g) {
start(g);
mouse(g);
}
//判断命中与否
void switch1(Graphics g, int action) {
if (action == 9) {
if (i / w == 0 & j / h == 0) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 1) {
if (i / w == 1 & j / h == 0) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 10) {
if (i / w == 2 & j / h == 0) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 2) {
if (i / w == 0 & j / h == 1) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 8) {
if (i / w == 1 & j / h == 1) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 5) {
if (i / w == 2 & j / h == 1) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 11) {
if (i / w == 0 & j / h == 2) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 6) {
if (i / w == 1 & j / h == 2) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
if (action == 12) {
if (i / w == 2 & j / h == 2) {
start(g);
jiang(g);
}
else {
start(g);
fa(g);
}
}
}
//响应连续按键事件
public void keyRepeated(int key) {
keyPressed(key);
}
/* 4.响应按键事件 */
public void keyPressed(int key) {
int action = getGameAction(key);
System.out.println(action);
switch (action) {
case 9:
switch1(g, action);
flushGraphics();
break;
case 1:
switch1(g, action);
flushGraphics();
break;
case 10:
switch1(g, action);
flushGraphics();
break;
case 2:
switch1(g, action);
flushGraphics();
break;
case 8:
switch1(g, action);
flushGraphics();
break;
case 5:
switch1(g, action);
flushGraphics();
break;
case 11:
switch1(g, action);
flushGraphics();
break;
case 6:
switch1(g, action);
flushGraphics();
break;
case 12:
switch1(g, action);
flushGraphics();
break;
default:
try {
Thread.sleep(500);
}
catch (Exception oo) {}
mouse(g);
return;
}
}
/*7.声明一个TimerTask类*/
private class DrawTask
extends TimerTask {
public final void run() {
start(g);
mouse(g);
repaint();
arraa++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -