📄 tcs.java
字号:
import java.io.IOException;
import java.util.*;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class tcs extends Canvas implements Runnable {
Image ds, dx, dz, dy, ws, wx, wz, wy, shenti, shiwu, dituge, tou, wei;
// 建立画布,画笔
Image offScreen;
Graphics offG;
int wanjia[][] = new int[12][4];
// 玩家 状态数组
int chide[][] = new int[8][3];
int keyV = -1;
int sdu = 0;
int ss = 0;
// 食物 状态数组
public tcs() {
// TODO Auto-generated constructor stub
offScreen = Image.createImage(getWidth(), getHeight());
offG = offScreen.getGraphics();
// 给第1个食物初始数值
chide[0][0] = 1;
chide[0][1] = 80;
chide[0][2] = 80;
// 给玩家初始 数值
for (int i = 0; i < 4; i++) {
wanjia[i][0] = 1;
wanjia[i][1] = 20;
wanjia[i][2] = 150 + i * 10;
wanjia[i][3] = 1;
}
// 给图片 赋值
try {
ds = Image.createImage("/ds.png");
dx = Image.createImage("/dx.png");
dz = Image.createImage("/dz.png");
dy = Image.createImage("/dy.png");
ws = Image.createImage("/ws.png");
wx = Image.createImage("/wx.png");
wz = Image.createImage("/wz.png");
wy = Image.createImage("/wy.png");
shenti = Image.createImage("/shenti.png");
shiwu = Image.createImage("/shiwu.png");
dituge = Image.createImage("/ditu.png");
} catch (IOException e) {
e.printStackTrace();
}
// 调用画出地图的方法
Thread t = new Thread(this);
t.start();
// paintOffScreen();
// shemove(keyV);
}
// 画地图的方法
public void paintOffScreen() {
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
offG.setClip(i * 10, j * 10, 10, 10);
offG.drawImage(dituge, i * 10, j * 10, 0);
}
}
}
protected void paint(Graphics g) {
g.drawImage(offScreen, 0, 0, 0);
if (ss == 0) {
g.drawImage(ds, wanjia[0][1], wanjia[0][2], 0);
ss = 1;
}
if (wanjia[0][3] == -1) {
g.drawImage(ds, wanjia[0][1], wanjia[0][2], 0);
}
if (wanjia[0][3] == -2) {
g.drawImage(dx, wanjia[0][1], wanjia[0][2], 0);
}
if (wanjia[0][3] == -3) {
g.drawImage(dz, wanjia[0][1], wanjia[0][2], 0);
}
if (wanjia[0][3] == -4) {
g.drawImage(dy, wanjia[0][1], wanjia[0][2], 0);
}
// g.drawImage(ds, wanjia[0][1], wanjia[0][2], 0);
g.drawImage(shenti, wanjia[1][1], wanjia[1][2], 0);
g.drawImage(shenti, wanjia[2][1], wanjia[2][2], 0);
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
if (wanjia[i][1] == wanjia[i - 1][1]) {
if (wanjia[i][2] > wanjia[i - 1][2]) {
g.drawImage(wx, wanjia[i][1], wanjia[i][2], 0);
break;
}
if (wanjia[i][2] < wanjia[i - 1][2]) {
g.drawImage(ws, wanjia[i][1], wanjia[i][2] + 5, 0);
break;
}
}
if (wanjia[i][2] == wanjia[i - 1][2]) {
if (wanjia[i][1] > wanjia[i - 1][1]) {
g.drawImage(wy, wanjia[i][1], wanjia[i][2], 0);
break;
}
if (wanjia[i][1] < wanjia[i - 1][1]) {
g.drawImage(wz, wanjia[i][1] + 5, wanjia[i][2], 0);
break;
}
}
}
}
// g.drawImage(wei, wanjia[3][1], wanjia[3][2], 0);
g.drawImage(shiwu, chide[0][1], chide[0][2], 0);
}
// 食物随机出现
public boolean startshiwu(boolean ii) {
if (ii == false) {
Random i = new Random();
Random j = new Random();
chide[0][1] = i.nextInt(15) * 10;
chide[0][2] = j.nextInt(20) * 10;
for (int l = 0; l < wanjia.length; l++) {
if (wanjia[l][0] == 1) {
if (wanjia[l][1] == chide[0][1]
&& wanjia[l][2] == chide[0][2]) {
return false;
}
}
}
}
return true;
}
//
public void keyPressed(int keyCode) {
keyV = keyCode;
}
//
// public void keyReleased(int keyCode) {
// keyV = 0;
// }
// 蛇的移动
public void shemove(int key) {
switch (key) {
case -1:
case 50:
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
if (i != 0) {
wanjia[i][1] = wanjia[i - 1][1];
wanjia[i][2] = wanjia[i - 1][2];
} else {
wanjia[0][2] -= 10;
wanjia[0][3] = -1;
}
}
}
break;
case -2:
case 56:
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
if (i != 0) {
wanjia[i][1] = wanjia[i - 1][1];
wanjia[i][2] = wanjia[i - 1][2];
} else {
wanjia[0][2] += 10;
wanjia[0][3] = -2;
}
}
}
break;
case -3:
case 52:
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
if (i != 0) {
wanjia[i][1] = wanjia[i - 1][1];
wanjia[i][2] = wanjia[i - 1][2];
} else {
wanjia[0][1] -= 10;
wanjia[0][3] = -3;
}
}
}
break;
case -4:
case 54:
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
if (i != 0) {
wanjia[i][1] = wanjia[i - 1][1];
wanjia[i][2] = wanjia[i - 1][2];
} else {
wanjia[0][1] += 10;
wanjia[0][3] = -4;
}
}
}
break;
}
}
public void anjianxianzhi(){
switch (keyV){
case -1:
case 50:
break;
case -2:
case 56:
break;
case -3:
case 52:
break;
case -4:
case 54:
break;
}
}
//蛇遇到食物
public void toukissshiwu() {
for (int l = 0; l < chide.length; l++) {
if (chide[l][0] == 1) {
if (wanjia[0][2] == chide[l][2]) {
if (wanjia[0][1] + 10 == chide[l][1] && keyV == -4) {
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
wanjia[i + 1] = wanjia[i];
wanjia[0] = chide[l];
System.out.print(wanjia[0]);
}
}
}
if (wanjia[0][1] - 10 == chide[l][1] && keyV == -3) {
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
wanjia[i + 1] = wanjia[i];
wanjia[0] = chide[l];
System.out.print(wanjia[0]);
}
}
}
}
if (wanjia[0][1] == chide[l][1]){
if (wanjia[0][2] - 10 == chide[l][2] && keyV == -1) {
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
wanjia[i + 1] = wanjia[i];
wanjia[0] = chide[l];
System.out.print(wanjia[0]);
}
}
}
if (wanjia[0][2] + 10 == chide[l][2] && keyV == -2) {
for (int i = wanjia.length - 1; i >= 0; i--) {
if (wanjia[i][0] == 1) {
wanjia[i + 1] = wanjia[i];
wanjia[0] = chide[l];
System.out.print(wanjia[0]);
}
}
}
}
}
break;
}
}
public void run() {
while (true) {
try {
Thread.sleep(400 - sdu);
} catch (InterruptedException e) {
e.printStackTrace();
}
paintOffScreen();
toukissshiwu();
shemove(keyV);
repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -