Addition auf (Mathe)Klassen anwenden?
Übersicht

![]() |
M0rgensternBetreff: Addition auf (Mathe)Klassen anwenden? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute.
Ich weiß der Titel scheint im ersten Moment verwirrend und wahrscheinlich auch im zweiten. Ich erklärs ganz schnell: Ich habe gemerkt, dass man mit Vektoren für die Position von Objekten im Spiel besser fährt als mit X und Y Attributen. Deshalb bin ich dabei mir eine Vektoren Klasse zu schreiben (Ja die soll später auch so gut wie alles können). Jetzt bin ich auch ein Problem gestoßen: Bei C# gibt es diese Klasse schon und da kann man ganz einfach Vector1 + Vector2 schreiben. Meine Klasse sieht also (zum Teil) bisher so aus: BlitzMax: [AUSKLAPPEN] Type TVector2D Wenn ich dann später schreibe MyVec1 + MyVec2 soll er einfach die entsprechenden Komponenten addieren. Geht das irgendwie oder muss ich dem ganzen eine "add" Methode spendieren? So etwa: BlitzMax: [AUSKLAPPEN] Function Add:TVector2D(pVector:TVector2D) Noch eine kurze Frage: Kommt BMax mit Überladungen klar? lg, M0rgenstern |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also das mit Vector1+Vector2 geht soweit ich weiß nicht. BlitzMax hat zwar auch Strings, und mit denen kann man auch so arbeiten, aber ich bezweifle, dass sich so ein Status auf Userdefined Types übertragen lässt.
Überladung kann BlitzMax afaik auch nicht. Allerdings kann da der Datentyp Object aushelfen. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Methoden- oder Funktionsüberladung und Operatoren für Types definieren ist bei BlitzMax leider nicht drin, du wirst bei der Add Methode bleiben müssen. | ||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm.
Okay schade. Wie siehts mit der Überladung aus? Thunder: Wie soll OBject da helfen? Sorry, aber ich weiß nicht wie du das meinst. Lg, M0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt keine Überladung, liest du richtig? ![]() BlitzMax: [AUSKLAPPEN] Method Add:TVector2i( pVector:TVector2i ) So etwas in einem Type ist nicht möglich, das meintest du doch oder? |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja DaysShadow, so etwas meinte ich.
Schade eigentlich das wär wirklich super. Ich habe das schon gelesen, aber Zitat: Allerdings kann da der Datentyp Object aushelfen.
Darauf wollte ich hinaus, also wie er das meinte. Was er damit meint interessiert mich übrigens immernoch^^ Lg, M0rgenstern |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich meinte damit, dass sich Instanzen aus Userdefined Types und Stringobjekte nach Object casten lassen. Dadurch könntest du eine "Überladung" simulieren:
BlitzMax: [AUSKLAPPEN] Function f(o:Object) Funktioniert natürlich nicht für primitive Datentypen. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group