Ich versuche ein Rollenspiel in Java zu machen. Ich bin neu in Java, also verstehe ich nicht alle Dinge. Ich brauche Hilfe, um Klassenauswahlfunktion zu implementieren.Java-Text-basierte Spiel - Wie Klassenwahl Feature zu implementieren?
Hier ist mein Code:
package com.rpg.entities;
import java.util.Scanner;
public class Character extends Entity {
private int EXP; // experience points
private int gold; // player money
private double critChance; // critical chance
private int strength; // attack damage
private int defense; // reduce taken damage
private int dexterity; // accuracy only for bow and spells
private int intelligence; // spell damage
private int evasion; // dodge attacks
// armor parts
private String helmet;
private String chest;
private String boots;
public void setEXP(int exp) {
this.EXP = exp;
}
public int getEXP() {
return EXP;
}
public void setGold(int gold) {
this.gold = gold;
}
public int getGold() {
return gold;
}
public void setCritChance(int crit) {
this.critChance = crit;
}
public double getCritChance() {
return critChance;
}
public void setStrength(int str) {
this.strength = str;
}
public int getStrength() {
return strength;
}
public void setDefense(int def) {
this.defense = def;
}
public int getDefense() {
return defense;
}
public void setDexterity(int dex) {
this.dexterity = dex;
}
public int getDexterity() {
return dexterity;
}
public void setIntelligence(int inte) {
this.intelligence = inte;
}
public int getIntelligence() {
return intelligence;
}
public void setEvasion(int eva) {
this.evasion = eva;
}
public int getEvasion() {
return evasion;
}
public void checkLevel(int playerExp, int playerLevel, Character a) {
int[] levelArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1400, 1600, 1800, 2000, 2200,
2400, 2600, 2800, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000 }; // 30
if (playerExp >= levelArray[playerLevel]) {
// level up player
if (playerExp >= levelArray[playerLevel + 1]) {
a.setEXP(levelArray[playerLevel]);
} else {
System.out.println("Level up!");
a.setLevel(playerLevel + 1);
}
}
}
public String chooseClass() {
return "";
}
}
I Verfahren für die Wahl Spielerklasse in Zeichenklasse schreiben wollen, dann es in Hauptfunktion nennen, aber ich bin nicht sicher, ob das eine gute Praxis ist. Und auch, ich weiß nicht, sollte es String zurückgeben?
Mit anderen Worten, sollte Klasse Character Methode hat chooseClass() und mit ihm können Sie Klassen wählen, zum Beispiel:
If(name == "warrior") {
Warrior player = new Warrior();
} else if (name == "mage") {
Mage player = new Mage();
} else
System.out.println("Invalid class");
Und dann kehrt Spieler zu Hauptklasse, so dass ich diese Variable dafür verwenden kann, Stoffe wie: player.setHealth(), etc ..
Weitere Klassen:
package com.rpg.classes;
import com.rpg.entities.Character;
public class Archer extends Character {
public Archer() {
this.setMaxHP(100);
this.setHP(100);
this.setMaxMP(100);
this.setMP(100);
this.setLevel(1);
this.setDamage(10); //
this.setGold(0);
this.setCritChance(0);
this.setStrength(0);
this.setDefense(0);
this.setDexterity(10);
this.setIntelligence(0);
this.setEvasion(0);
this.setEXP(100);
}
}
package com.rpg.classes;
import com.rpg.entities.Character;
public class Mage extends Character {
public Mage() {
this.setMaxHP(100);
this.setHP(100);
this.setMaxMP(100);
this.setMP(100);
this.setLevel(1);
this.setDamage(10); // popravi posle
this.setGold(0);
this.setCritChance(0); // dodaj mehanizam
this.setStrength(0);
this.setDefense(0);
this.setDexterity(0);
this.setIntelligence(10);
this.setEvasion(0);
this.setEXP(100);
}
}
Hilfe mit was speziell? Dies ist viel zu weit gefasst, und Sie haben noch nicht einmal eine Spezifikation angegeben, was das "Class-Choice-Feature" beinhalten sollte. – Carcigenicate
Ich konnte nicht genau verstehen, was Sie wollen, aber Sie können switch/case verwenden und String zurückgeben, hängt von der Benutzerauswahl ab. –
Ich möchte eine Methode in der Klasse Character haben und wenn der Benutzer die Option 1 auswählt, wird er die Warriro-Klasse auswählen und die Instanz der Krieger-Klasse erstellen und an die Hauptstelle zurückgeben, damit ich sie benutzen kann. –