首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java坦克游戏,创建着火方法

Java坦克游戏,创建着火方法
EN

Stack Overflow用户
提问于 2012-10-22 11:50:58
回答 1查看 1.7K关注 0票数 0

我正在写一个让两个坦克相互对抗的程序。我已经写了所有的方法,除了可以结束游戏的fire。到目前为止

代码语言:javascript
复制
public class Tank {
    Tank() {
        int xPos, yPos;
        char direction;
        boolean loaded = 0;
    }

    public void move(Tank currentPlayer) {
        if (yPos<=4 && yPos>=0) {
            if (xPos<=4 && xPos>=0) {
                if (currentPlayer.direction == 'u') {
                    currentPlayer.yPos--;
                }
                if (currentPlayer.direction == 'd') {
                    currentPlayer.yPos++;
                }
                if (currentPlayer.direction == 'l') {
                    currentPlayer.xPos--;
                }
                if (currentPlayer.direction == 'r') {
                    currentPlayer.xPos++;
                }
            }
        }
    }

    public void turn(boolean bool, Tank currentPlayer) {
        if (currentPlayer.direction == 'u') {
            currentPlayer.direction ='r';
        }
        if (currentPlayer.direction == 'd') {
            currentPlayer.direction = 'l';
        }
        if (currentPlayer.direction == 'l') {
            currentPlayer.direction ='u';
        }
        if (currentPlayer.direction == 'r') {
            currentPlayer.direction ='d';
        }
    }

    public void load(Tank currentPlayer) {
        currentPlayer.loaded=true;
    }

    public int fire(Tank currentPlayer, Tank jim) {
        // ???
    }    
}

我该如何完成我的程序呢?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 12:02:39

您需要一个用于坦克的x位置、y位置和当前方向的getter。例如:

代码语言:javascript
复制
public int getX();
public int getY();
public char getOrientation();

通过调用这些方法,您应该获得坦克的x位置、y位置和方向。然后检查命中结果。你知道你面对的是什么方向。所以如果你面朝上,看看另一个水箱是否和你在同一个x上,并且他们的y在你上面。

代码语言:javascript
复制
int otherX = jim.getX();
int otherY = jim.getY();

switch (currentPlayer.getOrientation())
{
    case 'u':
        //Check if you're in same x
        //Check if above player
        break;
    case ... etc.
}

那么在命中的情况下,换句话说,如果满足条件的话。游戏应该以currentPlayer的胜利而结束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13004757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档