Java基本游戏

时间:2015-02-21 16:16:37

标签: java

我正在尝试开发一个基于文本的小型格斗游戏,我正在使用eclipse来帮助我。我有两个班,一个是Hero和Villian。

到目前为止的英雄守则:

public class Hero
{
    // instance variables - replace the example below with your own
    private int Health;
    private int Punch;
    private int Kick; 
    private int Special;
    /**
    * Constructor for objects of class Hero
    */
    public Hero()
    {
        // initialise instance variables
        Health = 100;
        Punch = -30;
        Kick = -25;
        Special = -55;
    }

到目前为止的Villian代码:

public class Villian
{
    // instance variables - replace the example below with your own
    private int Health;
    private int Punch;
    private int Kick; 
    private int Special; 

    /**
    * Constructor for objects of class Villian
    */
    public Villian()
    {
        // initialise instance variables
        Health = 100;
        Punch = -25;
        Kick = -30;
        Special = -50;
    }

我想让它以回合为基础,以便当英雄攻击时,这是villian的回合。但是我在尝试为攻击构建合适的方法时遇到了麻烦。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

你可以选择一个像flag这样的变量,当英雄转向时将其值设置为1,当别墅转向时将其值设置为0

if(flag==1)
   {
      villans turn;
      flag=0;
   }
else if(flag==0)
   {
      heros turn;
      flag=1;
   }

这有效

答案 1 :(得分:0)

解决此问题的最佳方法是使用继承。

你想拥有一个名为Entity的类,它可以保存游戏领域所需的一切:

public abstract class Entity {
    private int Health;
    private int attackDmg;

    public Entity(int health,  int attackDamage) {
        this.health = health;
        this.attackDamage = attackDamage;
    }
}

然后,您目前拥有的两个类只是Entity所包含的一切:

public class Hero extends Entity {

    public Hero() {
        super(100, 30);
    }
}

和Villian:

public class Villian extends Entity {

    public Villian() {
        super(100, 20);
    }
}

现在你可能想要一些让Entity受到伤害的方法。因为每个人都应该能够受到伤害,所以它会进入Entity类。你也可能想要一种攻击方法,告诉你实体造成多大的伤害:

public abstract class Entity {
    // [...]

    public void takeDamage(int damage) {
        health -= dmg;
    }

    public void attack() {
        return attackDamage;
    }
}

现在您可以在控制器类中编写(处理所有基于回合的逻辑):

player.takeDamage(villian.attack());(假设player是您的Playervillian是您的Villian

当然这只是一个小例子,你也可以创建一个方法,以String为参数,代表攻击方法(如“kick”或“punch”)然后返回不同的金额取决于攻击类型。

继承的更多信息:

http://www.tutorialspoint.com/java/java_inheritance.htmhttp://beginnersbook.com/2013/05/java-inheritance-types/

您可能也对游戏制作教程感兴趣: http://www.gametutorial.net/