📄 gamemap.java
字号:
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class GameMap {
static final int runwayWidth = 22; //跑道宽
private static final int posmsg[][] = {
// 栏
{47,0,35,43}, //立
{0,5,47,38}, //倒
// 跑道
{42,66,38,8}, //边
{83,31,25,22}, //中
{83,9,25,22}, //边线
// 助跑器
{83,0,27,9},
// 观众
{110,29,18,17},
// 围栏
{83,68,24,8},
// 云
{83,58,23,9}
};
private int map[][] = {
{3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3},
{3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3},
{3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3},
{3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3}
};
private int block[][] = {
{-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1},
{-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1},
{-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1},
{-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1}
};
public GameMap(){
try {
if(img==null)
img = Image.createImage("/map.png");
if(back==null)
back = Image.createImage("/back.png");
if(bar==null)
bar = Image.createImage("/UiBg.png");
} catch (IOException e) {
e.printStackTrace();
}
}
public void draw(Graphics g,int start){
drawRunWay(g,start);
drawBlock(g,start);
}
// 绘制远景
public void drawBackground(Graphics g) {
int t = 0;
// 天
for(int i=0; i<3; i++){
t = i*84;
g.setClip(t, 0, 84, 50);
g.drawImage(back, t, 0, 20);
}
// 云
counter++;
t = (counter%180);
g.setClip(t, 35, posmsg[8][2], posmsg[8][3]);
g.drawImage(img, t-posmsg[8][0], 35-posmsg[8][1], 20);
// 观众1
for(int i=0; i<16; i++){
t = i*18;
g.setClip(t, 50, posmsg[6][2], posmsg[6][3]);
g.drawImage(img, t-posmsg[6][0], 50-posmsg[6][1], 20);
}
// 观众2
for(int i=0; i<16; i++){
t = i*18;
g.setClip(t, 67, posmsg[6][2], posmsg[6][3]);
g.drawImage(img, t-posmsg[6][0], 67-posmsg[6][1], 20);
}
// 草
for(int i=0; i<8; i++){
t = i*27;
g.setClip(t, 84, 27, 25);
g.drawImage(back, t-84, 84, 20);
}
// 围栏
for(int i=0; i<9; i++){
t = i*24;
g.setClip(t, 80, posmsg[7][2], posmsg[7][3]);
g.drawImage(img, t-posmsg[7][0], 80-posmsg[7][1], 20);
}
// 边线
for(int i=0; i<6; i++){
t = i*38;
g.setClip(t, 105, posmsg[2][2], posmsg[2][3]);
g.drawImage(img, t-posmsg[2][0], 105-posmsg[2][1], 20);
}
// 信息栏
g.setClip(0, 82, 14, 22);
g.drawImage(bar, 0, 82, 20);
for(int i=0; i<5; i++){
g.setClip(14+4*i, 82, 4, 30);
g.drawImage(bar, 4*(i+1), 82, 20);
}
g.setClip(34, 82, 70, 30);
g.drawImage(bar, 24, 82, 20);
}
//绘制跑道
private void drawRunWay(Graphics g,int start){
int tx = 0,ty = 0;
for(int i=0; i<map.length; i++){
ty = y+i*runwayWidth;
for(int j=map[0].length-1; j>=start; j--){
tx = x+j*runwayWidth;
g.setClip(tx, ty, posmsg[map[i][j]][2], posmsg[map[i][j]][3]);
g.drawImage(img, tx-posmsg[map[i][j]][0], ty-posmsg[map[i][j]][1], 20);
}
}
}
//绘制障碍(栏)
private void drawBlock(Graphics g,int start){
int tx = 0,ty = 0;
for(int i=0; i<block.length; i++){
for(int j=start; j<block[0].length; j++){
tx = x+j*runwayWidth;
ty = y+i*runwayWidth;
if(block[i][j]>-1){
if(block[i][j]==5)
ty += 4;
if(block[i][j]==0)
ty -= 24;
if(block[i][j]==1){
ty -= 18;
tx += 14;
}
g.setClip(tx, ty, posmsg[block[i][j]][2], posmsg[block[i][j]][3]);
g.drawImage(img, tx-posmsg[block[i][j]][0], ty-posmsg[block[i][j]][1], 20);
}
}
}
}
public void move(int speed){
x -= speed;
}
public void setPosition(int x,int y){
this.x = x;
this.y = y;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public int getBlock(int row,int col){
return block[row%block.length][col%block[0].length];
}
public void setBlock(int row,int col,int curr){
block[row%block.length][col%block[0].length] = curr;
}
public void releaseRes(){
img = null;
}
private Image img;
private Image bar;
private Image back;
private int x;
private int y;
private int counter;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -