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

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

1

26.07.2010, 00:06

Zentrierung auf Spielkarte

Hallo zusammen.
Freunde und ich (wobei ich der einzige Programmierer bin) wollen ein Spiel entwickeln.
Es soll von der Ansicht ähnlich wie Pokemon sein (diese schräg von oben Ansicht) allerdings stellt sich bei der Zentrierung bzw. Positionierung der Spielfigur ein Problem für mich auf, eher ein Denk-problem als ein Programmierproblem, aber dennoch.
Wie kann ich es bewerkstelligen, dass die Spielfigur immer genau zentriert auf der Karte dargestellt wird?
Mit jedem Schritt soll die Karte ja auch in Länge des Schritts weiter gescrollt werden, ich dachte also darüber nach, die Karte demnach bei jedem Schritt zu scrollen und die Figur sozusagen immer auf der gleichen Position zu blitten, aber was meint ihr? Könnte das so funktionieren, oder habt ihr andere Ideen bzw. Denkanstöße?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

26.07.2010, 00:18

Das kann so gut funktionieren ja.
Ansonsten macht man das einfach mit einer Kamera, welche einfach an die Position über dem Spieler zentriert wird und den Spieler so verflogt. Das hat den Vorteil, dass man beliebig den Fokus ändern kann und auch ganz einfach einen anderen Spieler fokusieren kann.

3

26.07.2010, 00:49

(...) Ansicht ähnlich wie Pokemon (...)
Wenn ich mich recht entsinne, dann gibt es bei den neueren Pokemon-Spielen bestimmte Situation in denen die Kamera etwas nach vorne "fliegt", um etwas zu zeigen, dass noch nicht im sichtbaren Bereich des Spielers ist, aber schon jetzt zu sehn sein soll. In einem Adventure-Spiel - siehe z.B. The Legend of Zelda (ähnliche Kamerapositionierung) - könnte man so z.B. den Spieler im Voraus vor einer, vor dem Spieler liegenden, Falle warnen etc.

Das lässt sich mit der "Verfolgerkamera" (wie drakon das erleutert hat) leichter bewerkstelligen als mit scrollendem Unter- bzw. Hintergrund.

Gruß
SaRu_

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

4

26.07.2010, 01:05

Interessant, allerdings habe ich noch nie mit Kameras gearbeitet (ich schäme mich :o), was muss ich da denn explizit berücksichtigen?
Bzw. hat jemand ein Beispiel, vllt. sogar in Python?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

5

26.07.2010, 01:23

Ich gehe mal davon aus, dass du das Spiel in purem 2D machst.
Beim richigen 2D gibt es keine Kammerea, sondern nur bilder, die du auf den Backbuffer zeichnest.

Ich würde sagen, dass die idee so funktionieren sollte, denn ich würde es genauso machen. Einfach die Karte Scrollen, und den Spieler dabei nicht bewegen.

Falls du aber pseudo-2D programmieren willst, dann erleichtert dir die Kamera die Führung etwas. Auf jeden fall ist es eine ürlegung wert, das 2D Spiel in 3D zu prorammieren, und die Sprites auf flache objekte zu mappen.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

6

26.07.2010, 01:28

Nein, ich hatte schon vor, bei 2D zu bleiben, erstmal in dieser Szene festigen bevor ich zur nächsten Stufe voranschreite.
Also in 2D müsste ich für eine derartige Kameraführung tricksen oder? Z.B. Events abwarten und die Karte einen Sprung nach vorne machen lassen, den Spieler stoppen und dann zurück springen?

Bzw. Ich würde mich immer noch über Pseudo-Code freuen, welcher mir meine Ideen der scrollenden Karte in Code form erklärt :)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

7

26.07.2010, 01:48

Nein, ich hatte schon vor, bei 2D zu bleiben, erstmal in dieser Szene festigen bevor ich zur nächsten Stufe voranschreite.
Also in 2D müsste ich für eine derartige Kameraführung tricksen oder?
Du müsstest dafür nicht tricksen, sonderin einfach die Kammeraführung "per Hand" programmieren.
Das geht mit inversen Matrizen. Meine Kopfschmerzen sind grad verschwunden und ich könnte dir das ganze System erklären.

Kennst du dich mit Matrizen und Vectorgeometrie aus?

Aber mit dem ganzen Thema gehst du bestimmt schon zu weit in die 3D-Mathematik rein als dir lieb sein dürfte, wenn du unbedingt bei 2D bleiben willst.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Herror« (26.07.2010, 01:56)


Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

8

26.07.2010, 02:02

Mein Abitur liegt gerade hinter mir, Vektoren sind mir schon noch ein guter Begriff und sofern man die ganze Kamera - Engine schlank hält wäre ich gar nicht so abgeneigt es erklärt zu bekommen.
Ansonsten würde ich das ganze nämlich wirklich in simpler 2D Programmierung lösen müssen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

9

26.07.2010, 02:15

Vielleicht ist es zwar elegant, aber für meinen Geschmack wohl etwas mit Kanonen auf Spatzen geschossen.

Wenn du ein 2D Spiel programieren willst, dann is wohl der scrollende Hintergrund am einfachsten, insbesondere, wenn du noch nicht so viel Erfahrung in der Spieleprogrammierung sammeln konntest. Wenns dir im Nachhinein wirklich nicht ausreicht / nicht gefällt, dann kannst du später immer noch das Ganze auch etwas eleganter lösen. Aber gerade bei so Hobby-Projekten will man ja meist einfach und vor allem flott dazu kommen was auf den Bildschirm zu zaubern. Gerade wenn du der einzige Programmierer bist werden wohl die Anderen schnell ungeduldig, wenn du ihnen nur erzählen kannst, dass du dich bisher mit einer Kamera rumgeschlagen hast, aber man immer noch nichts sehen kann. ;)

Gruß
SaRu_

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

10

26.07.2010, 02:17

Vielleicht ist es zwar elegant, aber für meinen Geschmack wohl etwas mit Kanonen auf Spatzen geschossen.

Wenn du ein 2D Spiel programieren willst, dann is wohl der scrollende Hintergrund am einfachsten, insbesondere, wenn du noch nicht so viel Erfahrung in der Spieleprogrammierung sammeln konntest. Wenns dir im Nachhinein wirklich nicht ausreicht / nicht gefällt, dann kannst du später immer noch das Ganze auch etwas eleganter lösen. Aber gerade bei so Hobby-Projekten will man ja meist einfach und vor allem flott dazu kommen was auf den Bildschirm zu zaubern. Gerade wenn du der einzige Programmierer bist werden wohl die Anderen schnell ungeduldig, wenn du ihnen nur erzählen kannst, dass du dich bisher mit einer Kamera rumgeschlagen hast, aber man immer noch nichts sehen kann. ;)

Gruß
SaRu_

Ach, was das angeht geht's ja noch, mit Python und Pygame ist sowas eig. keine große Anstrengung :)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige