fangsprite.java
来自「用J2ME实现的战棋类小游戏DEMO,寻路用A星算法,因为时间关系物品使用功能请」· Java 代码 · 共 227 行
JAVA
227 行
package midp20;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class FangSprite extends Layer {
//小方块ID号
public int lFangIndex=0;
//Array
public int[] up1 = { 0 };
public int[] lup1 = { 0 };
// 方块移动频率
private int bb = 0;
private int cc=0;
// 当前的帧序列
private int[] currentFrames;
private int currentFrame = 0;
public void setCurrentFrames(int[] current) {
currentFrames = current;
currentFrame = 0;
}
public FangSprite(Image img, int width, int height) {
super(img, width, height);
}
public void fangMoveToPlayer(int playerX,int playerY){
setPosition(playerX,playerY);
}
public void fangMoveToEnemyA(int enemyX,int enemyY){
setPosition(enemyX,enemyY);
}
public void moveSprite(int keycode) {
bb += 1;
if (bb == 1) {
switch (keycode) {
case -1:
keycode=0;
if(y==0){}else{
setPosition(x, y -= 24);
}
break;
case -2:
keycode=0;
if(y==15*24){}else{
setPosition(x, y += 24);
}
break;
case -3:
keycode=0;
if(x==0){}else{
setPosition(x -= 24, y);
}
break;
case -4:
keycode=0;
if(x==15*24){}else{
setPosition(x += 24, y);
}
break;
}
bb = 0;
}
}
public void moveSpriteLow(int keycode,int playerX,int playerY) {
bb += 1;
if (bb == 1) {
switch (keycode) {
case -1:
keycode=0;
if(y==0){}else{
setPosition(playerX, playerY -= 24);
}
break;
case -2:
keycode=0;
if(y==15*24){}else{
setPosition(playerX, playerY += 24);
}
break;
case -3:
keycode=0;
if(x==0){}else{
setPosition(playerX -= 24, playerY);
}
break;
case -4:
keycode=0;
if(x==15*24){}else{
setPosition(playerX += 24, playerY);
}
break;
}
bb = 0;
}
}
public void LFangMoveSprite(int keycode) {
bb += 1;
if (bb == 1) {
switch (keycode) {
case -3:
keycode=0;
if(lFangIndex==0){setPosition(x+=60,y);lFangIndex=3;}else{
setPosition(x -= 20, y);
lFangIndex-=1;
}
break;
case -4:
keycode=0;
if(lFangIndex==3){setPosition(x-=60, y);lFangIndex=0;}else{
setPosition(x += 20, y);
lFangIndex+=1;
}
break;
default:
break;
}
bb = 0;
}
}
public void FireFanWei(int rekeycode, FangSprite fangPlayer, Sprite player,
int map_tl2[][]) {
if (rekeycode == -5) {
if ((player.getX() == fangPlayer.getX())
&& (player.getY() == fangPlayer.getY()) && rekeycode == -5) {
int yy = player.getY() / 24;
int xx = player.getX() / 24;
for (int u = 0; u <= 3; u++) {
for (int i = 0; i <= 3; i++) {
try{
if (map_tl2[yy - 3 + i + u][xx + i - u] == 2)
continue;
map_tl2[yy - 3 + i + u][xx + i - u] = 1;
}catch(Exception e){continue;}
}
}
for(int u=0;u<=2;u++){
for (int i= 0; i <= 2; i++) {
try{
if (map_tl2[yy - 2 + i+u ][xx + i -u] == 2)
continue;
map_tl2[yy - 2 + i+u][xx + i-u ] = 1;
}catch(Exception e){continue;}
}
}
System.out.println("第0步执行完毕");
rekeycode = 0;
GameTools.currentAction++;
}
}
}
public void paint(Graphics g) {
int x_des = tileIndex % column * width;
// System.out.println("x_des==" + x_des);
int y_des = tileIndex / column * height;
// System.out.println("y_des==" + y_des);
g.setClip(x - TiledLayer.x_window, y - TiledLayer.y_window, width,
height);
g.drawImage(resouce, x - TiledLayer.x_window, y - TiledLayer.y_window,
0);
}
public void paintLFang(Graphics g) {
int x_des = tileIndex % column * width;
// System.out.println("x_des==" + x_des);
int y_des = tileIndex / column * height;
// System.out.println("y_des==" + y_des);
g.setClip(x - TiledLayer.x_window, y - TiledLayer.y_window, width,
height);
g.drawImage(resouce, x - TiledLayer.x_window, y - TiledLayer.y_window,
0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?