| |
VB.NET - Ein- und UmsteigerKonzept 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. | |
| 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 |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|