vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Konzept für OOP 
Autor: Streamfighter
Datum: 18.06.12 20:34

Hallo Leute,

Ich schreibe gerade an einer Map für ein Spiel. Die Map ist in ein Raster (einzelne Zellen) unterteilt.
Dazu habe ich eine Basisklasse BasisZelle geschrieben, die grundlegende Informationen enthält, wie z.B. Höhe oder Position des Rasterausschnitts. Für die verschiedenen Arten von Zellen habe ich mehrere Klassen(Wald,Gras) geschrieben, die alle von BasisZelle erben.
Jetzt zu meinem Problem: Während dem Spiel kann sich die Art einer Zelle ändern.

Public MustInherit Class BasisZelle
    Dim Position As Point
    Dim Hoehe As Integer
    Sub New(Position As Point, Hoehe As Integer)
        Me.Position = Position
        Me.Hoehe = Hoehe
    End Sub
End Class
 
 
Public Class Wald
    Inherits BasisZelle
    Dim Anzahl_Baeume As Integer
    Sub New(Position As Point, Hoehe As Integer)
        MyBase.New(Position, Hoehe)
    End Sub
End Class
 
 
Public Class Gras
    Inherits BasisZelle
    Dim Wuchshoehe As Integer
    Sub New(Position As Point, Hoehe As Integer)
        MyBase.New(Position, Hoehe)
    End Sub
End Class
 
 
Public Class Game
    Public Map(10, 10) As BasisZelle
 
    Sub New()
        GenerateMap()
        Map(0,0)= new Wald('?????
    End Sub
 
Sub Generate Map
        '...
        Map(0, 0) = New Wald(New Point(0, 0), 10)
        '...
    End Sub
End Class
Allerdings sollen die grundlegenden Eigenschaften immer gleich bleiben. (Also die aus der BasisZelle). Wenn ich die Art der Zelle ändere sollen sich nur spezifische Eigenschaften verändern, grundlegende sollen gleich bleiben.
Ich bin jetzt schon eine ganze Weile auf der Suche nach einer sauberen Lösung.Ich bin aber auf noch nichts sinnvolles gestoßen:
•Jede Spezifische Kasse könnte ein Sub bekommen:
Sub ToWald(...)
      Game.Map(Position.x,Position.Y)= new Wald(...)
End Sub
Was aber sehr unpraktisch ist, weil beim zufügen einer neuen Zellart alle bestehenden geändert werden müssen)
•Oder ich könnte die Basisinformationen vor der Änderung des Zellart abspeichern und dann übergeben.

Vllt fällt euch ja noch ne bessere Methode ein.

Beitrag wurde zuletzt am 18.06.12 um 20:36:51 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Konzept für OOP986Streamfighter18.06.12 20:34
Re: Konzept für OOP646ModeratorFZelle18.06.12 21:06
Re: Konzept für OOP614Micke19.06.12 08:30

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel