Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

23.08.2008, 11:31

Problem mit Koordinatensystem und Scrolling

Hallo,
ich will ein 2D Game coden, was so ähnlich ist wie TOU, ist ein Multiplayer Space Shooter.

Aber wie code ich in DX9 eine Art Koordinatensystem und bewege in dem "Unsichtbaren" bereich (der nicht im Bildschirmbereich sichtbar ist) Sprites, oder zeichne Surfaces? Hier einmal ein Screenshot von TOU, damit ihr versteht um was es geht:


(Link)


Also das rote Rechteck zeigt den Teil des "Bildes" den man am Bildschirm sieht, aber wie kann ich jetzt zum beispiel ein Schiff links oben auf dem bild bewegen? Wie lege ich da ein Koordinatensystem an? Wie ich scrolle (Pixelverschiebung), ist mir klar :D

Danke im Voraus ;)
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

23.08.2008, 11:35

Ich bin mir jetzt nicht ganz sicher, ob es das ist, was du meinst. Aber du kannst für die Koordinaten auch negative Werte haben. Sprich, wenn du jetzt einen Screen hast, der dir den Ausschnit von 0,0 bis 800, 600 zeigt, kannst du nach -50,-50 gehen, dort etwas hinsetzen oder auch bewegen.

EDIT:
Das Spiel erinnert mich an Worms. Sieht recht spassig aus.

3

23.08.2008, 13:40

So hab ich das eher nicht gemeint, ich brauch eigentlich nur zu wissen, wie man so ein koordinatensystem erstellt und verwaltet.
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

Anonymous

unregistriert

4

23.08.2008, 13:50

Arrows
Fragen wir mal so: Wie würdest du es denn machen? Wenn du einen Vorschlag hast können wir ihn mit dir gemeinsam "verfeinern", hat höheren Lerneffekt ;)

5

23.08.2008, 14:30

tja, bin leider momentan bei NULL ^^
ich brauch ja mal nur einen wirklich grundlegenden hinweis darauf wie man ein koordinatensystem anlegt das über den bildschirmbereich hinausgeht
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

23.08.2008, 14:43

Zitat von »"Arrows"«

tja, bin leider momentan bei NULL ^^
ich brauch ja mal nur einen wirklich grundlegenden hinweis darauf wie man ein koordinatensystem anlegt das über den bildschirmbereich hinausgeht


Für was denkst du, brauchst du was eigenens?
DirectX hat sein eigenes Koordinatensystem. Wenn du direkt auf den Screen zeichnest, fängt es links oben bei 0,0 an und geht dan einfach in X und Y Richtung weiter. (auch negativ).
Und ansonten hast du 0,0,0 im Raum, von wo es ebenfalls in alle Richtungen geht.

Hast du den schon mal ein wenig mit DirectX rumgespielt? So Dreiecke rendern usw. ? Dann sollte das eigentlich alles klar werden.

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

7

23.08.2008, 16:23

Wenn man mal von deinem Bild oben ausgeht könnte man ja sagen, oben links ist 0;0 und unten rechts ist (gemäß der Bildgröße) 476;358

Alle Objekte kannst du jetzt innerhalb dieser Grenzen bewegen bzw. festsetzen.
z.b. ein Raumschiff könnte die Position 20;60 haben

Wenn du jetzt nur den Ausschnitt 200;250 bis 300;330 auf den Bildschirm bringen willst dann musst du aus Bildschirmsicht 200;250 zu dem neuen 0-Punkt machen indem du von allen Koordinatenwerten 200;250 abziehst - für das Raumschiff von oben hieße das, dass seine Bildschirmkoordinaten -180;-190 sind - das Raumschiff liegt also anscheinend außerhalb vom Bildschirmbereich (es sei denn es ist so groß, dass ein kleiner Teil bis ins sichtbare Bild reinragt).


Wie du diese allgemeine Herangehensweise aber am besten in deinem Spiel umsetzt hängt davon ab, welche Techniken du verwendest usw...

8

23.08.2008, 18:42

Ok, also soweit ich das verstanden habe, hat jede 2D anwendung schon Koordinaten in alle Richtungen (inkl. negativ), die den null-punkt oben rechts haben

Ich spiel heut abend mal ein bisschen rum mit dx und falls ich noch fragen hab post ich sie hier rein ;)

Danke!
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

Bösewicht

unregistriert

9

23.08.2008, 21:40

Zitat von »"Arrows"«

Ok, also soweit ich das verstanden habe, hat jede 2D anwendung schon Koordinaten in alle Richtungen (inkl. negativ)


jop

Zitat von »"Arrows"«

die den null-punkt oben rechts haben


ne oben links

10

24.08.2008, 22:09

Zitat

ne oben links


ups ich meinte das andere rechts ^^



also ich hab noch ein paar offtopic - fragen (will deswegen kein neues thema eröffnen):

- Hab es geschafft dass das Schiff Raketen schießt, die Raketen sind dabei in einer <list>, um bei jedem Frame upgedated (also bewegt) zu werden. Wie kann ich jede Rakete ein paar Sekunden nach ihren Abschuss wieder löschen?

- Wie schaffe ich es, ein Sprite hinter oder vor das andere zu bringen (also quase in dem fall die z - Achse ;))
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

Werbeanzeige