Gelöst: Koordinaten bei Draw3D

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Gelöst: Koordinaten bei Draw3D

BeitragFr, Sep 25, 2009 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Entschuldigung, wenn ich so blöde Fragen zu Draw3D stelle.
Aber ich komm mit den Koordinaten noch nicht ganz klar.
Ich habe für mein Spiel die Auflösung 1024*768 gewählt.

Aber ich versteh jetzt erhrlich gesagt nicht, wie das ganze aufgeteilt ist in Draw3D.

Ist der Nullpunkt jetzt in der Bildschirmmitte oder wo?
Und wie ist das aufgeteilt mit den Koordinaten? wo ist die Y-Koordinate negativ, bzw wo die X-Koordinate?

Ich will eigentlich nur eine Begrenzung für mein Spielfeld einbauen, dass der Spieler nicht rauslaufen kann.
Aber ich versteh das Koordinatensystem nicht.

Wäre wirklich nett wenn mir das mal jemand erklären könnte...

Lg, M0rgenstern
  • Zuletzt bearbeitet von M0rgenstern am Fr, Sep 25, 2009 20:34, insgesamt einmal bearbeitet

Nicdel

BeitragFr, Sep 25, 2009 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Links oben: -512 | -384
Rechts unten: 512 | 384
Mitte: 0 | 0

Es gibt aber auch eine Draw3D-Version, in der Links oben 0|0 ist.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

skey-z

BeitragFr, Sep 25, 2009 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mache es mir immer ganz einfach, die X/Y-Koordinate der linken oberen Ecke specihere ich mir in 2 Variablen und addiere bei den Objekten immer diese Koordinaten hinzu.

Ist zwar ein wenig mehr schreibarbeit, aber finde ich übersichtlicher
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

M0rgenstern

BeitragFr, Sep 25, 2009 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
@Nicdel

Iczh hab jetzt mal rumprobiert...
Bei mir ist es so:

Links unten: -512 | -384
Rechts oben: 512 | 384
Mitte 0|0

Also ist der negative Y-Breich unten und der negative X-Breich links.

Liegt das vllt an der neuen Draw3D Version (ich glaub ich hab 3.2) oder hab ich mich vertan oder so?

Lg, M0rgenstern

Edit:

Beziehungsweise: Warum Funktioniert folgender Code dann nicht? (Also ich kann mich nur auf der Y-Achse nach links und rechts bewegen)

Code: [AUSKLAPPEN]
If Spieler\Px# >= 490 Then Spieler\Px# = Spieler\PAltx#
   If Spieler\Px# <= -490 Then Spieler\Px# = Spieler\PAltx#
   If SPieler\Py# >= 450 Then Spieler\Py# = Spieler\PAlty#
   If Spieler\Py# >= -350 Then Spieler\Py# = Spieler\PAlty#


Lg, M0rgenstern
  • Zuletzt bearbeitet von M0rgenstern am Fr, Sep 25, 2009 20:31, insgesamt einmal bearbeitet

Nicdel

BeitragFr, Sep 25, 2009 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann auch sein, vllt. hab ich micht auch vertan...
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

M0rgenstern

BeitragFr, Sep 25, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey.
So Sorry.

Ist alles geklärt.

Hatte nen Zeichendreher und nen Zahlendreher drin.

So muss es aussehen:

Code: [AUSKLAPPEN]
If Spieler\Px# >= 490 Then Spieler\Px# = Spieler\PAltx#
   If Spieler\Px# <= -490 Then Spieler\Px# = Spieler\PAltx#
   If SPieler\Py# >= 350 Then Spieler\Py# = Spieler\PAlty#
   If Spieler\Py# <= -350 Then Spieler\Py# = Spieler\PAlty#


Lg, M0rgenstern

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Sep 25, 2009 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Als Frage in den Raum gestellt... Ist es wirklich so umständlich der mittlere Koordinatenursprung, oder ist es nur die Macht der Gewöhnung? Ich frage, weil anscheinend immer wieder Leute echte Probleme damit haben. Ich zum Beispiel hab mich sehr schnell daran gewöhnt. Wenn es wirklich so ein Problem ist, dann lässt sich dieser mit relativ einfachen Mitteln beheben, indem man das Bezugspivot in der X-Achse um 180° dreht und das ganze dann um die hälfte der Bildschirmauflösung nach links/oben verschiebt. Dann noch ein paar Variablenänderungen für die Buttons etc. machen den Rest.

Der einzige Grund warum ich es nicht generell eingebaut habe ist, dass ich es zumindest so besser finde. Schon allein weil die neue Draw3D2 ein etwas anderen Grundaufbau hat wo der Mittelbezug zumindest etwas deutlicher wird. Was mir vorschwebt ist, dass man es dann über eine Konstante =0/1 steuern könnte. Das würde aber auch bedeuten, dass der Rechenaufwand für bestimmte Sachen etwas größer wird.

Als Frage in den Raum gestellt...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Nicdel

BeitragFr, Sep 25, 2009 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Das der Ursprung in der Mitte liegt ist meiner Meinung nach völlig in Ordnung. Auch ich habe mich schnell daran gewöhnt Smile
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

M0rgenstern

BeitragFr, Sep 25, 2009 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich finde, wenn man das System einmal durchschaut hat, dann ist es relativ einfach.

Ich habs jetzt verstanden.
Und warum umständlich alles umstellen, wenn man sich so schnell dran gewöhnt.

Also ich finds okay.

Lg, M0rgenstern

Noobody

BeitragFr, Sep 25, 2009 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstand nie, warum der Ursprung in der Mitte liegt Razz

Die Umgewöhnung fand ich doch sehr extrem, zumal ja Mauskoordinaten etc. ja von links oben ausgehen. Klar gibt es dafür Variablen wie MouseX3D, allerdings stellt sich mir doch die Frage, warum der Ursprung überhaupt in der Mitte liegt? Bisherige Routinen muss man komplett umschreiben, damit sie mit dem neuen System zurechtkommen und leider geht es so nicht, einen bisherigen 2D-Code durch einfaches Abändern der Funktionsnamen auf 3D zu konvertieren, sondern es muss überall die Koordinatenberechnung neu gemacht werden.

Es mag sein, dass man sich irgendwann dran gewöhnt, allerdings könnte genausogut jemand noch eine andere Lib für Physik/Grafikeffekte/Wasauchimmer machen, wo der Ursprung dann rechts unten liegt und die positive X-Achse nach links zeigt - man gewöhnt sich ja dran.

Ich möchte dich deshalb darum bitten, in der nächsten Version das normale Koordinatensystem doch wenigstens optional zu machen - die verkehrten Achse und der versetzte Ursprung haben mir damals den letzten Nerv geraubt, als ich noch mit der Draw3D arbeitete und sind auch die Gründe, weshalb ich sie heute nicht mehr benutze Razz
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

da_poller

BeitragFr, Sep 25, 2009 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Noobody hat Folgendes geschrieben:
die verkehrten Achse und der versetzte Ursprung haben mir damals den letzten Nerv geraubt, als ich noch mit der Draw3D arbeitete und sind auch die Gründe, weshalb ich sie heute nicht mehr benutze Razz


der grund warum ich mit draw3d nie mehr als 2 kleine testprogramme geschrieben hab

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Sep 25, 2009 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja ''verkehrt'' ist definitiv der falsche Ausdruck als Aussage. Schon allein deshalb, weil die Draw3D das gleiche Koordinatensystem nutzt wie das in der Schule mit einem Geodreieck. Ich behaupte mal grundsätzlich das die Koordinaten eines Rechners falsch sind, da sie nur den einen Urunsinn haben, das die Anfänge der Programmierung nicht auf Grafikebene sondern mit Textzeilen begonnen wurde. Text liest sich halt so. Und als dann Später Grafikelemente hinzugekommen sind, hat man es einfach so gelassen statt es ''richtig'' zu machen. Nun, als dann die Rechner auch mit 3D umgehen können, hat man den Salat, nämlich ein Mischmasch aus 2D=links/oben+gespiegelter Y-Achse und 3D=Mitte mit richtiger Y-Achse.

Alles sehr suspekt. Wink

Da die Draw3D ja nicht kostenpflichtig ist, hab ich natürlich nur ein gemässigtes Interesse einer perfekten Draw3D. Dennoch hab ich es mir nun zum Ziel gesetzt die Draw3D2 mithilfe einer Konstante 0/1 umschaltbar zu machen. Viele Sachen lassen sich sehr leicht umstellen. Doch ob dann das ganze Funktionsspektrum 100%ig umschaltbar wird, bleibt abzuwarten. Wink

-

Danke für die Infos. Zur Zeit 2:2 sollte klar sein.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Noobody

BeitragFr, Sep 25, 2009 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
hectic hat Folgendes geschrieben:
Ich behaupte mal grundsätzlich das die Koordinaten eines Rechners falsch sind

Damit hast du grundsätzlich recht, wobei es eben wieder eine Sache der Gewöhnung ist - Programmierer arbeiten seit jeher mit diesem Koordinatensystem und sind auch sehr damit vertraut, daher fällt der Umstieg auf ein anderes System wiederum schwer.

hectic hat Folgendes geschrieben:
Da die Draw3D ja nicht kostenpflichtig ist, hab ich natürlich nur ein gemässigtes Interesse einer perfekten Draw3D

Das ist dein gutes Recht Wink
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Silver_Knee

BeitragFr, Sep 25, 2009 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Bin für die mitte. So für die Statistik.

Habe in 3D immer mit der Mitte gearbeitet. Niemand hat jemals behauptet, dass Convert 2D->D3D mal eben möglich sein sollte... gerade weil die D3D noch Anforderungen hat, wie Quadratische 2^x Bilder, die Anforderungen von 3D halt.

Habe irgendwann aus der umwandlung von Mousex zu Mousex3d ne funktion Get3DY und Get3DX gemacht und konnte mir damit für solche Konvertierungen Arbeit sparen. Konstante.... naja werde wohl keinen aufhalten können.

M0rgenstern

BeitragFr, Sep 25, 2009 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich weiß nicht.
Da wir in der Schule grade wieder mit dem KoSy arbeiten, bin ich momentan relativ gut damit vertraut (ganzrationale Funktionen... gebrochen rationale Funktionen etc...^^).

Und wenn ich mir das einfach vorstelle, dann ist das ja total einfach. SChön, dass du das erwähnt hast hectic.
Also, als ich am Anfang angefangen habe zu programmieren, Hab ich mich doch sehr an das "für mich) neue KoSy gewöhnen müssen (im Gegensatz zur Schule wars ja doch sehr ungewöhlich).
Von daher ist das KoSy von Draw3D eigentlich umgänglicher. Aber es ist gut zu wissen, dass du einfach dieses KoSy als Vorlage genommen hast. Jetzt versteh ich auch alles^^

Lg, M0rgenstern

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group