Konstruktor für vererbung

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Ana

Betreff: Konstruktor für vererbung

BeitragSa, Dez 04, 2010 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallihallo,

ich möchte gerade eigentlich einen konstruktor von einem Type für einen extends von diesem Type verwenden.

Meines wissens gibs Konstruktor im eigentlich sinne nicht für Bmax oder? Also verwende ich dafür ein Funktion, kann ich den Type den sie mir zurück gibt dann noch nachträglich anpassen oder muss ich die für jede unterklasse neu schreiben?
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

mpmxyz

BeitragSa, Dez 04, 2010 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Du nutzt anscheinend die Variante mit der Create-Funktion.
Du kannst aber auch eine Init-Methode einführen, welche von den erbenden Klassen richtig verwendet/modifiziert wird:
BlitzMax: [AUSKLAPPEN]
Type TGameObject Abstract
Field _link:TLink
Field _x:Int,_y:Int,_img:TImage
Method InitGameObject(list:TList,x:Int,y:Int,img:TImage) '<- einmalige Namen in der Vererbungshierachie, damit es keine Probleme bei unterschiedlichen Parametern gibt
_link=list.AddLast()
_x=x
_y=y
_img=img
EndMethod
[...]
EndType

Type TEnemy Extends TGameObject
Global list:TList=New TList
Global image:TImage=LoadImage("gfx/Enemy.png")
Field _damage:Int
Field _hitpoints:Int
Method InitEnemy:TEnemy(x:Int,y:Int,damage:Int,hitpoints:Int)
InitGameObject(list,x,y,image)
_damage=damage
_hitpoints=hitpoints
Return Self 'Sinn dieses Rückgabewertes: siehe später
EndMethod
EndType

Local enemy:TEnemy=New TEnemy.InitEnemy(100,100,20,150)

Im Vergleich zu echten Konstruktoren gibt es hier nur ein bisschen mehr Schreibarbeit.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Ana

BeitragSa, Dez 04, 2010 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach super vielen Dank Smile
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BtbN

BeitragSo, Dez 05, 2010 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du keine Parameter brauchst, kannst du aber auch die New-Methode benutzen, und dir somit den umweg erspaaren.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group