2D Vektoren
Übersicht

![]() |
M0rgensternBetreff: 2D Vektoren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute.
Ich habe eine Vektorenklasse gebastelt. Ich denke einfach, dass man mit Vektoren in Spielen besser arbeiten kann als immer mit X und Y Koordinaten. Aber auch allgemein ist es vielleicht mal nicht schlecht sowas "im Haus" zu haben. Also hier ist die Klasse (mit Kommentaren): BlitzMax: [AUSKLAPPEN] Type TVector2D 'A Vector Class which can do any Operation on 2D Vectors Und hier ist ein kleines Testprogramm: BlitzMax: [AUSKLAPPEN] SuperStrict Über Rückmeldung freu ich mich natürlich. Ich hoffe, dass es jemand gebrauchen kann. Lg, M0rgenstern |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wobei ich anmerken darf das bei so grundsätzlichen Sachen wie einer Vektor Klasse (ich glaube ich hab auch mal eine hier iwo gepostet)
jeder seine eigenen Vorlieben was den Umfang, Zugriff, etc angeht. Für wirklich rechenintensive Sachen wo jede Millisekunde zählt ist immer noch Float[2] am schnellsten. Anonsten sollte ein Vektor Objekt so klein wie möglich sein, ich glaube es ist nicht nötig den Betrag mitzuführen. Aber das sind nur Kleinigkeiten (: |
||
WIP: Vorx.Engine |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
da machst du schon get und set-methoden und vergisst bei der setx,y den absolutwert neu zu berechnen ![]() |
||
![]() |
Shinkiro1ehemals "Espada" |
![]() Antworten mit Zitat ![]() |
---|---|---|
An dieser Stelle möchte ich mal den Sinn von Gettern und Settern in Frage stellen, wenn diese wirklich nur dazu sind eine Field Variable zurückzugeben.
In BMax sind Fields ja sowieso public ... oder übersehe ich hier einen Punkt? |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aufrüstungen für Threadsicherheit. Und allgemeine Sauberkeit. | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit Get und Set bin ich so aus anderen Sprachen gewohnt und finde das eigentlich ganz schön, auch wenn es in BMax nicht so viel bringt, da man die Attribute nicht auf Public bzw Protected oder Private setzen kann.
@Silver_Knee: Ups. Werde ich heute Mittag direkt fixen. @ComNik: Klar sollte so klein wie möglich sein und für Spiele braucht man den Betrag auch nicht unbedingt aber wenn man mit Vektoren rechnen will, dann find ich das ganz schick. Gibts sonst noch Anregungen was man hinzufügen/verbessern könnte? Lg, M0rgenstern |
||
![]() |
Lastmayday |
![]() Antworten mit Zitat ![]() |
---|---|---|
M0rgenstern hat Folgendes geschrieben: [...]auch wenn es in BMax nicht so viel bringt, da man die Attribute nicht auf Public bzw Protected oder Private setzen kann. [...]
doch kann man. Code: [AUSKLAPPEN] Private
Description Private makes a Constant, Global variable or Function only accessible from within the current source file |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Private
Description Private makes a Constant, Global variable or Function only accessible from within the current source file within the current source file Es geht ja um Klassen. |
||
![]() |
M0rgensternBetreff: Update |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist die gefixte Klasse:
BlitzMax: [AUSKLAPPEN] Type TVector2D 'A Vector Class which can do any Operation on 2D Vectors @Macintosh: Wenn man aber jede Klasse in ne einzelne Datei packt, dann funktioniert das schon^^ Lg, M0rgenstern |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja, aber das ist unter BMax eher unüblich ^^ | ||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich mache das auch in BlitzMax immer, dass ich jede Klasse (bzw. Type) in eine einzelne Datei schreibe. Es ist erstens schöner, da man die Types dann alle mit einem Import einbinden kann und zweitens ist der Code viel besser wiederverwendbar. Außerdem Programmierst du dann meiner Meinung nach gleich "schöner" da du jeden Type als "einzelnen" Teil des Programms betrachtest.
Gruß, ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habs nur in wenigen projekten so, mit vielen dateien.
weil ich progee mit anderen zusammen, und der mag das garnicht ^^ |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ ich:
Mit Import einbinden? Warum das? Es ist viel einfacher mit Include einzubinden. Wenn du nämlich eine Klasse hast die auf eine andere zugreift dann ist das schon sone Sache. Außerdem: Wenn man Klassen ableitet und abhängigkeiten unter Klassen entstehen, dann passierts schnell dass man mit Import zyklisch importieren müsste. Mit Incldue sieht das anders aus. Lg, M0rgenstern |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich programmerie die Klasse dann so, das es zu keinen Zyklischen Imports kommt.
Gruß, Ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group