私はテキストベースのゲームを作成していますが、いくつかの問題があります。これは私がこれまでに持っているものです。これまでのところ、戦闘クラスと、2つの異なる武器用の2つのクラスがあります。武器自体にヒットポイントを割り当てようとしています。しかし、私の最大の問題は戦闘クラスにあります。私はそれを作成しようとしています。ランダムな時間にランダムな武器のドロップがあり、ランダムな武器もあります。これまでのところ、戦闘クラスではこれがあります:
public class Combat {
final int chanceOfDrop = 3;
static Weapons[] wepArray = {new M4(), new M16()}
static boolean[] hasWeapon = {false, true};
public static int ranNumberGen(int chanceOfDrop) {
return (int) (Math.random()*1);
}
private void enemyDead() {
boolean canDrop = false;
if(ranNumberGen(chanceOfDrop)==0){
canDrop = true;
}
if(canDrop == true){
givePlayerWeapon(Weapon[Combat.ranNumberGen(Weapons.length)]);
}
private static void givePlayerWeapon(int w) {
hasWeapon[w] = true;
for w <(Weapons.length-1) {
if has weapon[w] {
System.out.println(wepArray[w].getWeaponName);
}
}
}
}
}
}
新しいM4()を作成しているときに問題が発生し、新しいM16()にタイプの不一致が表示されます:フォームM4を武器に変換できません。私は武器という名前のクラスを持っていますが、それが問題になる可能性がありますか?
そしてこれが私のM4クラスです。M4クラスとM16クラスはどちらも同じです。
public abstract class M4 {
private Integer weaponDamage = 5;
private Integer weaponAmmo = 25;
private String weaponName = "M4";
public M4(String name, int ammo, int damage) {
name = weaponName;
ammo = weaponAmmo;
damage = weaponDamage;
}
public String getWeaponName() {
return weaponName;
}
public Integer getAmmo() {
return weaponAmmo;
}
public Integer getDamage() {
return weaponDamage;
}
}
ここでは問題はないと思います。たぶん私の問題はこれにあります。武器のクラスはありますが、何もありません。それが必要ですか?