📄 tank.java~1~
字号:
-battleCanvas.SCREEN_Y <=
battleCanvas.MAP_HEIGHT - battleCanvas.screen_h) {
battleCanvas.setTranslateY( -Math.min(temp -
tank_y,
battleCanvas.MAP_HEIGHT - battleCanvas.screen_h +
battleCanvas.SCREEN_Y));
}
tank_y = temp;
if (tank_x <
-battleCanvas.SCREEN_X + battleCanvas.screen_w / 4 &&
battleCanvas.SCREEN_X < 0
) {
battleCanvas.setTranslateX(1);
}
move--;
battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
battleCanvas.screen_w);
}
}
}
//右边届判断,用来对坦克向右判断
public void moveRight() {
if (tank_x <= battleCanvas.MAP_WIDTH - TANK_HSCALE / 2) {
int temp = battleCanvas.map.getTankY(this);
//System.out.println("temp = " + temp);
if (temp == -1) { // 不能移动
}
else {
if (temp == -2) { // 坦克死亡
if (userName.equals(battleCanvas.userName)) { // 是轮到自己
tank_y = battleCanvas.screen_h;
tank_x = tank_x + TANK_HSCALE / 2;
battleCanvas.route.addElement(new Integer(tank_x));
battleCanvas.route.addElement(new Integer(tank_y));
battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
battleCanvas.screen_w);
//System.out.println("F x = " + tank_x + " y = " + tank_y);
HttpClientHolder httpClientHolder = new
HttpClientHolder();
//System.out.println("move left send 37 to server:");
//System.out.println("tank_x = " + tank_x);
//System.out.println("tank_y = " + tank_y);
httpClientHolder.WriteInt(37);
/*用户移动路径长度 Int(包括原点)
[ x Int
y Int ]
*/
httpClientHolder.WriteInt(battleCanvas.route.size());
for (int jj = 0; jj < battleCanvas.route.size(); jj++) {
int cordi;
if (jj % 2 == 0) {
cordi = ( (Integer) battleCanvas.route.
elementAt(jj)).
intValue(); // x
}
else {
cordi = ( (Integer) battleCanvas.route.
elementAt(jj)).
intValue() +
battleCanvas.now.TANK_VSCALE / 2; // y
}
httpClientHolder.WriteInt(cordi);
}
battleCanvas.route.removeAllElements();
battleCanvas.mHttpConnection.addSendMessage(
httpClientHolder);
}
try {
Thread.sleep(20L);
}
catch (InterruptedException ex) {
}
life = 0;
battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
battleCanvas.screen_w);
return;
}
//System.out.println("****** before judge ******************");
//System.out.println("tank_x = " + tank_x);
//System.out.println("tank_y = " + tank_y);
if (temp > tank_y) {
tank_x = tank_x + TANK_HSCALE / 2;
//System.out.println("yes below , tank_x = " + tank_x);
}
else {
tank_x++;
//System.out.println("no overhead, tank_x++ = " + tank_x);
}
tank_y = temp;
if (tank_x >
battleCanvas.screen_w * 3 / 4 - battleCanvas.SCREEN_X &&
-battleCanvas.SCREEN_X <=
battleCanvas.MAP_WIDTH - battleCanvas.screen_w
) {
battleCanvas.setTranslateX( -1);
}
move--;
battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
battleCanvas.screen_w);
}
}
//}
}
//是否对导弹的速度加速
public void accelerate() {
if (speed < 100) {
speed++;
}
//battleCanvas.repaint(4, 4, 80, 40);
}
//对导弹减速
/*public void deaccelerate() {
if (speed > 0) {
speed--;
}
battleCanvas.repaint(4, 4, 80, 40);
}*/
//这个函数用来判断时候与导弹碰撞
public boolean isCollision(Missile e1) {
//计算导弹的位置
if (e1.m_x > tank_x - 5 && e1.m_x < tank_x + 5 &&
e1.m_y > tank_y - 5 &&
e1.m_y < tank_y + 5) { // 击中坦克
//life -= e1.demage; // 生命减少
return true;
}
else {
return false;
}
}
public void addProperties(String property) {
properties.insertElementAt(property, 0);
if (properties.size() > 4) {
properties.setSize(4);
}
}
public int getPropertyID(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 1);
return Integer.parseInt(id);
}
else {
return -1;
}
}
public String getPropertyName(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 2);
return id;
}
else {
return null;
}
}
public int getAttackDemage(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 3);
return Integer.parseInt(id);
}
else {
return 0;
}
}
public int getMissilesNum(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 4);
return Integer.parseInt(id);
}
else {
return 0;
}
}
public int getAttackArea(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 5);
return Integer.parseInt(id);
}
else {
return 0;
}
}
public int getBlood(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 3);
return Integer.parseInt(id);
}
else {
return 0;
}
}
public int getMove(int index) {
if (index < properties.size() && index >= 0) {
String id = getStringBetween(index, 4);
return Integer.parseInt(id);
}
else {
return 0;
}
}
private String getStringBetween(int index, int start) {
//携带的物品:导弹 0$物品的Id$物品的名字$攻击力$导弹个数$攻击范围$
//物品 1$物品的Id$物品的名字$血$移动力$
int temp = 0;
String s = (String) properties.elementAt(index);
//System.out.println("Start: " + start);
for (int n = 1; n <= start; n++) {
temp = s.indexOf("$", temp + 1);
//System.out.println("temp: " + temp);
}
String result = s.substring(temp + 1, s.indexOf("$", temp + 1));
//System.out.println("result: " + result);
return result;
}
public boolean isMissile(int index) {
String s = (String) properties.elementAt(index);
return Integer.parseInt(s.substring(0, 1)) == 0;
}
/*调用爆炸效果
public void exacuteCrash() {
battleCanvas.repaint();
}*/
public int getInitLife() {
return INIT_LIFE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -