我正在尝试开发一个基于文本的小型格斗游戏,我正在使用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的回合。但是我在尝试为攻击构建合适的方法时遇到了麻烦。有人可以帮帮我吗?
答案 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
是您的Player
而villian
是您的Villian
。
当然这只是一个小例子,你也可以创建一个方法,以String
为参数,代表攻击方法(如“kick”或“punch”)然后返回不同的金额取决于攻击类型。
继承的更多信息:
http://www.tutorialspoint.com/java/java_inheritance.htm和http://beginnersbook.com/2013/05/java-inheritance-types/
您可能也对游戏制作教程感兴趣: http://www.gametutorial.net/