Problem : Variablen werden vererbt

Status
Nicht offen für weitere Antworten.

baroque

Mitglied
Hi all,

ich habe ein Problem : Ich progge z.Z. an einem RPG, dort habe ich eine Klasse "Charakter" die diverse Variablen (Str, Agi, etc) enthält. Abgeleitet von dieser ist die Klasse "Monster", die ihre eigenen Werte für Str, Agi etc braucht. Leider starten meine Monster egal wie ich es drehe und wende immer mit den Startattributen des Charakters, selbst wenn ich sie dort als private deklariere. :bahnhof:

Hier mal die relevanten Stellen im Code :

Charakter.class :
Java:
public class Charakter
{


	private int level;
	private int HP_Max;
	private int MP_Max;
	private int STAM_Max;
	private int HP;
	private int MP;
	private int STAM;
	private int exp;
	private int exp_tnl;
	private int str;
	private int agi;
	private int intel;
	private int aspd;
	private int aspd_delay;
	private int extraDamage;
	private int lastAttackDamage;
	private int exp_old;




	Random rnd = new Random();



	public Charakter (int lv)
	{


		level = lv;
		exp = 0;
		str = 15;
		agi = 15;
		intel = 15;
		HP_Max = (5 + level) * (1 + str / 5);
		MP_Max = (1 + level / 2) * (1 + intel / 3);
		STAM_Max = (2 + level) * (1 + str / 10 + agi / 20);
		HP = HP_Max;
		MP = MP_Max;
		STAM = STAM_Max;
		extraDamage = 0;
		aspd = 50 + agi;
		
	}
.
.
.

Monster.class :

Java:
public class Monster extends Charakter
{
	private int level;
	private int HP_Max;
	private int MP_Max;
	private int STAM_Max;
	private int HP;
	private int MP;
	private int STAM;
	private int exp;
	private int exp_tnl;
	private int str;
	private int agi;
	private int intel;
	private int aspd;
	private int aspd_delay;
	private int extraDamage;
	private int lastAttackDamage;
	public int strbonus;
	private int agibonus;
	private int intelbonus;
	private int extraDamage2;



	Random rnd = new Random();

	private int exp_value;
	private String mobName;
	

	public Monster (int lv, int type)
	{
		super(lv);
		level = lv;
		exp_value = level / 2 + rnd.nextInt(level) + level ;
		this.str = 10000; /// Versuch 1, funzt nicht
		int agi = 140; /// Versuch 2, funzt nicht
		int intel = 1;
		
		
		if(type == 0)
		{
			mobName = "Ogre";
			str = (level + rnd.nextInt(level)) / 2 + 1;
			intel = rnd.nextInt(level) + 1;
			agi = rnd.nextInt(level) + rnd.nextInt(level) + 1;
			extraDamage2 += level;
		}
		else if (type == 1)
		{
			mobName = "Spider";
			str = level / 2 + 1;
			intel = level;
			agi = level + rnd.nextInt(level);
		}

		else if (type == 2)
		{
			mobName = "Dark Magus";
			str = rnd.nextInt(level) + 1;
			intel = 2 * level;
			agi = level;
		}
	}

Habe auch schon versucht, die Werte des Monsters durch eine Methode zu überschreiben - hilft nicht. Ob es über einen Konstruktor funktionieren würde weiss ich nicht, würde es aber nur sehr ungern so lösen..vielleicht fällt euch ja was ein, danke schonmal! :)
 
G

Gelöschtes Mitglied 5909

Gast
Ich glaub du hast den Sinn von vererbung nicht verstanden. Du solltest die werte von der Basisklasse verwenden, sonst existiert alles 2 mal. Habe noch kein Monster gesehen, dass 2 Level und 2 Gesundheiten gleichzeitig hat.
Solltest du sie doch 2 mal (!) brauchen musst du mit super arbeiten um die attribute etc der Basisklasse verwenden zu können.
 

baroque

Mitglied
Naja, das ist ja nicht ganz mein Problem - ich würde liebend gerne die Variablen der Basisklasse verwenden, wenn diese nicht aus irgendeinem mir nicht schlüssigen Grund auch tatsächlich dieselben Inhalte annehmen würden..die Neudefinitionen stehen da eher so als verzweifelter Versuch das Ganze durch Überschreiben doch so hinzukriegen wie ich mir das vorstelle. Mir wurde die OOP mit dem Beispiel Fahrrad erklärt, wo z.B. ein Mountainbike eine Subklasse von Fahrrad ist und einfach nur um einige Methoden erweitert wurde. Das heisst aber nicht dass alle Mountainbikes die da draussen so rumdüsen automatisch mit 12 km/h fahren nur weil es das Ursprungsobjekt Fahrrad tut, genau das passiert hier aber - wie ich es drehe und Wende ist der Wert für str vom Monster gleich mit dem vom Charakter. =/

Edit : Problem gefunden, tatsächlich hat das Löschen der ganzen Neudefinitionen geholfen nachdem ich eine bestimmte Update-Abfrage leicht geändert habe. :) Danke!
 
Zuletzt bearbeitet:

leibimatZe

Mitglied
Ich würde vlt nicht die Monster vom Charakter ableiten, schreib dir doch eine eigene Superklasse, welche allgemein Einheiten im Spiel beschreibt und leite dann den Charakter und die Monster davon ab, die Monster brauchen im Spiel normalerweise nciht die selben Sachen wie die Monster, beispiel die Erfahrungspunkteberechnung.

Ich sitz zur Zeit auch an nem RPG und hab eine Klasse die allgemeine Definition wie leben, stärke level etc enthält und davon sind dan Monster und der charakter abgeleitet.

Grüße :)
 
S

Spacerat

Gast
Da muss ich meinem Vorredner zustimmen. Ich hätte "Character" zur Superklasse gemacht und dann zunächst die Klassen "NonPlayer" und "Player" welche von "Character erben. Schliesslich eine Klasse "Monster", die letztendlich von "NonPlayer" erbt.
 
Zuletzt bearbeitet von einem Moderator:

baroque

Mitglied
Ja, das ist mir im Nachhinein auch aufgefallen und beim nächsten RPG werde ich es auch so machen - bei diesem Versuch (ist inzwischen um einiges umfangreicher geworden :) ) allerdings ist das ganze schon zu sehr miteinander verstrickt um es noch zu ändern. Macht nix, hab' draus gelernt. *g*
 

leibimatZe

Mitglied
Beim nächsten :) ich hab meins uach scho tausendmal komplett umgeworfen weil ich halt einfach erstmal alles halten will aber so dass ich es gut und einfach erweitern kann..
Erstmal Gedanken machen mit Zettel und Stift hilt da viel, hab mir alle attribute und die typen aufgeschrieben dann konnt ich schön überlegen wie die superklasse aussieht etc... da nimmst dir einiges an arbeit ab, so gehst gezielter ran an diesache und es wir einfacher zu implementieren :)
wie weit bistn grad und wie baustn das allgemein so auf ? is ne interessens frage nur weil ich ja auch an sowas sitz.
grüße
 

baroque

Mitglied
Schon, wenn das Projekt hier wirklich mein Zielprojekt wäre würde ich das wahrscheinlich auch so machen - aber erstmal ist es nicht mehr als ein Spielplatz, im Endeffekt quasi ein Lernprojekt. Ich lerne eher durch Trial&Error als durch Tutorials, von daher ist es okay für mich irgendwann neu anfangen zu müssen.. viel weiter bin ich noch nicht, sitze immer noch an der Kampfengine - habe aber ein paar entscheidende Verbesserungen vorgenommen, die Kämpfe finden nicht mehr automatisch statt sondern der Spieler hat die Kontrolle. Als nächstes kommt ein Skillsystem, ein paar frei verteilbare Attributspunkte pro Level und eventuell Charakterklassen. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B RPG - Problem : Instanzierte Variablen freigeben Spiele- und Multimedia-Programmierung 2
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
C Plugin Problem Spiele- und Multimedia-Programmierung 2
J JLayer Problem Spiele- und Multimedia-Programmierung 1
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G LIBGDX Texturen Problem Spiele- und Multimedia-Programmierung 1
G LIBGDX Problem beim resizen des Frames Spiele- und Multimedia-Programmierung 3
C AutoClicker Problem Spiele- und Multimedia-Programmierung 2
S OOP Logik Problem Spiele- und Multimedia-Programmierung 5
G LIBGDX Viewport Problem Spiele- und Multimedia-Programmierung 3
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
C Minecraft Minecraft Plugin Problem Spiele- und Multimedia-Programmierung 17
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
V Problem mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
W Generelles Problem: Entscheidungsfindung Spiele- und Multimedia-Programmierung 4
T Problem bei Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
C Vier Gewinnt Problem mit Ordnerstruktur Spiele- und Multimedia-Programmierung 2
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Sound Problem Spiele- und Multimedia-Programmierung 3
T Problem beim Aufbau des Spielfelds Spiele- und Multimedia-Programmierung 18
M Sound Engin Problem 2 Spiele- und Multimedia-Programmierung 2
J Problem bei der GUI - Zu viele Spielbretter Spiele- und Multimedia-Programmierung 2
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
0 Boxen übereinander stapelt Problem Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
R 2D platformer - enemy damage -> TIMER PROBLEM Spiele- und Multimedia-Programmierung 3
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
L Minecraft Minecraft Plugin programmieren (Craftbukkit 1.7.2) Problem Spiele- und Multimedia-Programmierung 4
B Minecraft mehr Ram zuweißen Problem Spiele- und Multimedia-Programmierung 0
K Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 3
Y Problem mit repaint() in run() Spiele- und Multimedia-Programmierung 2
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
T Problem mit Kollisionsabfrage der NPC Spiele- und Multimedia-Programmierung 1
J Minecraft Problem mit dem JRE - Minecraft Spiele- und Multimedia-Programmierung 3
TheSorm Problem mit 2 classen NullPointerException Spiele- und Multimedia-Programmierung 1
S Problem mit 4 gewinnt(MinMax Algorithmus) Spiele- und Multimedia-Programmierung 2
N Problem in der Main.class Spiele- und Multimedia-Programmierung 1
J Blöcke, Hitboxen, Koolisionsabfrage - Problem Spiele- und Multimedia-Programmierung 8
S Problem mit 3d-Polygon Spiele- und Multimedia-Programmierung 2
A Problem mit Sound Spiele- und Multimedia-Programmierung 5
C Nxt Duell Problem Spiele- und Multimedia-Programmierung 4
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
ruerob Problem bei Fade-Out von Sounds Spiele- und Multimedia-Programmierung 3
L [Slick2D] Problem bei Speicherfreigabe Spiele- und Multimedia-Programmierung 2
M Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 22
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
J Problem bei pixelgenauer Kollisionsabfrage Spiele- und Multimedia-Programmierung 10
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
R Problem bei Farbe ändern/4Gewinnt Spiele- und Multimedia-Programmierung 5
R StringIndexOutOfBoundsException - Problem Spiele- und Multimedia-Programmierung 2
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
A TileMap KeyListener - Problem Spiele- und Multimedia-Programmierung 2
J Problem mit Threads Spiele- und Multimedia-Programmierung 8
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Fu3L Problem mit 3D Noise Spiele- und Multimedia-Programmierung 4
L Problem beim Rätsellöser Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
T Problem bei LinkedList / JPanel Spiele- und Multimedia-Programmierung 4
T Problem mit ClassLoader und LWJGL Spiele- und Multimedia-Programmierung 5
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
Samake03 [Problem] layeredPane bzw. Viewport Spiele- und Multimedia-Programmierung 3
Helgon glTexParameter / glTexImage2D Problem Spiele- und Multimedia-Programmierung 11
T Jmonkey opengl problem Spiele- und Multimedia-Programmierung 13
M Problem mit Kamera (glMultMatrix (OpenGL/ LWJGL)/ Quaternionen) Spiele- und Multimedia-Programmierung 5
M Problem mit Gameserver / Datensynchronisation Spiele- und Multimedia-Programmierung 10
G Mein erstes minigame -> problem mit Methode Spiele- und Multimedia-Programmierung 3
X Geometry Wars Clone Problem Spiele- und Multimedia-Programmierung 4
H Problem mit JMonkeyEngine3 und OgreXML Spiele- und Multimedia-Programmierung 3
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
T Problem mit JnR-Steuerung / KeyListener Spiele- und Multimedia-Programmierung 6
D Problem Mit Miensweeper Clone & rekursive Methode Spiele- und Multimedia-Programmierung 4
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7
T Problem mit Speicherverbrauch Spiele- und Multimedia-Programmierung 5
S Programmstruktur Problem! Spiele- und Multimedia-Programmierung 8
BattleMaster246 Problem mit Jogl Spiele- und Multimedia-Programmierung 14
C MP3 Handler-Problem Spiele- und Multimedia-Programmierung 13
C [gelöst] MP3-Codec-Problem Spiele- und Multimedia-Programmierung 2
K Schiebepuzzle Array Zufallszahlen Problem Spiele- und Multimedia-Programmierung 8
J Java 3D Problem Spiele- und Multimedia-Programmierung 2
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
H Repaint-Problem mit Quaxlis Tutorial Spiele- und Multimedia-Programmierung 2
C Java Sound API Clip.Close() Problem Spiele- und Multimedia-Programmierung 1
K Problem beim Anzeigen von Bildern Spiele- und Multimedia-Programmierung 5
D Problem mit Überprüfung beim Lottospiel Spiele- und Multimedia-Programmierung 6

Ähnliche Java Themen

Neue Themen


Oben