2016-07-08 10 views
-2
// in general, it could be potion, armor, weapon, etc. 
Item class { 
    // states 
    id 
    name 
    // behavior 
    set, get of states here.. 

    use() 
    // still thinking what is the other general behavior 
} 

// in general, it could be Gun,Sword,Wand, Bow (range,melee,magic) 
Weapon class extends Item{ 
    // gun - fire(); type: range (in the movie, the gun can be use as melee weapon too xD) 
    // sword - slash(); type: melee (in the movie, the sword can be thrown :) or use as magic wand?) 
    // wand - ?? 
    // mace - bash(); 
    // bow - shoot() ?? 
    // so what is the general behavior of this weapon? 
} 

Bag class {} // parent is Item, collection of items here 

// Human, Orc, etc 
Character class { 
    // states 
    Weapon 

    // behavior 
    attack(); 
    // still thinking what is the other behavior and states 
} 

// Swordsman, Magician, Archer, etc. 
Hero class extends Character{ 
} 

Der obige Code meine OOP Klassen der Rolle ist Spiel spielen, die ich entwickle, und ich habe harte Zeit Denken der allgemeinen Zustände und Verhalten jeder Klassen .Java OOP - Rollenspiel-Klassen in GENERAL

Problem

  • Wie erstelle ich diese Klassen (I Anfänger sind in OOP). Ich habe einige Verkapselungen gehört, polymorphish usw.
  • Ich weiß nicht, wie man richtig die Schnittstelle zu verwenden, abstrakte usw.
  • Denken an die allgemeinen Zustände und Verhalten von Klassen
  • Wie Sie in der Waffe sehen Klasse. Die Waffe, Schwert, Bogen kann als Nahkampf, Reichweite oder sogar Magie verwendet werden. Und sollte ich diesen WeaponType nennen? (Bereich, Nahkampf, Magie)
+1

Seitennotiz ist es "Klasse Foo" nicht "Foo Klasse" Vielleicht könnten Sie beginnen, indem Sie ein Tutorial lesen, wie https://docs.oracle.com/javase/tutorial/java/index.html, diese Frage ist zu weit gefasst wie ist –

+0

Sicher hast du das richtige tag?Das ist sicher kein Java-Quellcode ?! – GhostCat

+0

nur ein Tippfehler, sorry. – ronscript

Antwort

2

Lassen Sie uns Ihre Fragen Linie von

Linie beantworten

Wie erstelle ich diese Klassen (I Anfänger bin in OOP). Abstraction/Encapsulation/Polymerphsim/Vererbung Ich habe einige Verkapselungen gehört, polymorphish usw.

Sie können kein Spiel entwickeln, ohne eine Durch OOPS.Spend Verständnis einige Zeit verstehen zu müssen.

Ich weiß nicht, wie man richtig die Schnittstelle,

Vielleicht abstrakt usw. verwenden, wenn Sie wissen, was diese bedeuten, wann und zu entscheiden, wäre in der Lage, wie sie an alles, was Sie, wenn zu verwenden, würde sie brauchen.

Denken an die allgemeinen Zustände und Verhalten von Klassen Wie Sie in der Waffenklasse sehen können. Die Waffe, Schwert, Bogen kann als Nahkampf, Reichweite, oder sogar Magie verwendet werden. Und sollte ich diesen WeaponType nennen? (Bereich, Nahkampf, Magie)

In diesem Fall können Sie eine Schnittstelle namens Waffen mit ihren Typen haben als abstrakte methods.You sie erben können und machen die Waffe Eigenschaftsänderungen für jede Waffe usw. wie Angriffskraft, Stärke usw. Natürlich müssen Sie wieder mit OOPS-Konzepten fertig werden. Wenn Sie schnell lernen Start by watching this Video.

+0

danke für die Antwort! – ronscript

0

Für ein komplexes Design wie ein Spiel schlage ich Ihnen vor, bessere Schnittstellen und abstrakte Klassen zu studieren. Dann schlage ich vor, dass Sie ein UML-Diagramm des Modells Ihres Spiels zeichnen. Waffe kann eine Schnittstelle mit einer fire() -Methode sein und alle Waffen, die die Schnittstelle implementieren, haben ihre eigene fire() -Methode.

Für ein gutes Design schlage ich auch vor, Designmuster sehr gut zu lernen. Wenn Sie ein gutes Design Ihres Spiels machen, wird es in der Zukunft sehr einfach sein, Ihr Spiel mit neuen Funktionen zu erweitern!